; LLVM IR from thepowersgang/mrustc :: tools/mir_opt_test/parser.ll (ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)

; 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"

%struct.MirOptTestFile = type { %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr", %"class.std::vector" }
%"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::CratePtr" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl" }
%"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl" = type { %"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.46", %"class.std::vector.51", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.70", %"class.std::map.75", %"class.std::vector.80", %"struct.HIR::Crate::ImplGroup.85", %"class.std::map.96", %"class.std::map.101", %"class.std::vector.106", %"class.std::unordered_map.111", %"class.std::vector.106", %"class.std::unordered_map.130", %"class.std::vector.144", %"class.std::vector.149" }
%class.RcString = type { ptr }
%"class.HIR::Module" = type { %"class.std::vector.3", %"class.std::unordered_map", %"class.std::unordered_map.13", %"class.std::unordered_map.27", %"class.std::vector.41" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.13" = type { %"class.std::_Hashtable.14" }
%"class.std::_Hashtable.14" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.27" = type { %"class.std::_Hashtable.28" }
%"class.std::_Hashtable.28" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = 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 }
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup" = type { %"class.std::map", %"class.std::vector.59", %"class.std::vector.59" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_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 }
%"class.std::vector.59" = type { %"struct.std::_Vector_base.60" }
%"struct.std::_Vector_base.60" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::InherentCache" = type { %"class.std::map.64" }
%"class.std::map.64" = type { %"class.std::_Rb_tree.65" }
%"class.std::_Rb_tree.65" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.70" = type { %"class.std::_Rb_tree.71" }
%"class.std::_Rb_tree.71" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.75" = type { %"class.std::_Rb_tree.76" }
%"class.std::_Rb_tree.76" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup.85" = type { %"class.std::map.86", %"class.std::vector.91", %"class.std::vector.91" }
%"class.std::map.86" = type { %"class.std::_Rb_tree.87" }
%"class.std::_Rb_tree.87" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.96" = type { %"class.std::_Rb_tree.97" }
%"class.std::_Rb_tree.97" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.101" = type { %"class.std::_Rb_tree.102" }
%"class.std::_Rb_tree.102" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::unordered_map.111" = type { %"class.std::_Hashtable.112" }
%"class.std::_Hashtable.112" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.106" = type { %"struct.std::_Vector_base.107" }
%"struct.std::_Vector_base.107" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.130" = type { %"class.std::_Hashtable.131" }
%"class.std::_Hashtable.131" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.144" = type { %"struct.std::_Vector_base.145" }
%"struct.std::_Vector_base.145" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.149" = type { %"struct.std::_Vector_base.150" }
%"struct.std::_Vector_base.150" = 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 }
%class.Lexer = type { %class.TokenStream, %class.RcString, i32, i32, %"class.std::unique_ptr.161", ptr, i8, %struct.Codepoint, %"class.std::vector.169", i32, %"class.Ident::Hygiene" }
%class.TokenStream = type { ptr, i8, %class.Token, %"class.Ident::Hygiene", i32, %"class.std::vector.156", %struct.ParseState }
%class.Token = type { ptr, i32, %"class.Token::Data", %class.Position, %"class.Ident::Hygiene" }
%"class.Token::Data" = type { i32, %"union.Token::Data::DataUnion" }
%"union.Token::Data::DataUnion" = type { %"class.std::__cxx11::basic_string" }
%class.Position = type { %struct.Span, %class.RcString, i32, i32 }
%struct.Span = type { ptr }
%"class.std::vector.156" = type { %"struct.std::_Vector_base.157" }
%"struct.std::_Vector_base.157" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseState = type { i8, i8, i8, ptr, ptr, ptr }
%"class.std::unique_ptr.161" = type { %"struct.std::__uniq_ptr_data.162" }
%"struct.std::__uniq_ptr_data.162" = type { %"class.std::__uniq_ptr_impl.163" }
%"class.std::__uniq_ptr_impl.163" = type { %"class.std::tuple.164" }
%"class.std::tuple.164" = type { %"struct.std::_Tuple_impl.165" }
%"struct.std::_Tuple_impl.165" = type { %"struct.std::_Head_base.168" }
%"struct.std::_Head_base.168" = type { ptr }
%struct.Codepoint = type { i32 }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Ident::Hygiene" = type { %"class.std::unique_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.155" }
%"struct.std::_Head_base.155" = type { ptr }
%"class.std::map.174" = type { %"class.std::_Rb_tree.175" }
%"class.std::_Rb_tree.175" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const RcString, std::__cxx11::basic_string<char>>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const RcString, std::__cxx11::basic_string<char>>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::pair.179" = type { %class.RcString, %"class.std::__cxx11::basic_string" }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.HIR::Function" = type { i8, %"struct.HIR::Linkage", i32, %"class.HIR::TypeRef", %class.RcString, i8, i8, %"class.HIR::GenericParams", %"class.std::vector.201", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %"struct.HIR::Function::Markings" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.HIR::GenericParams" = type { %"class.std::vector.181", %"class.std::vector.186", %"class.std::vector.191", %"class.std::vector.196" }
%"class.std::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = 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.186" = type { %"struct.std::_Vector_base.187" }
%"struct.std::_Vector_base.187" = 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.191" = type { %"struct.std::_Vector_base.192" }
%"struct.std::_Vector_base.192" = 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.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = 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 }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::TypeRef" = type { ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.206", %"class.std::vector.206", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.206" = type { %"struct.std::_Vector_base.207" }
%"struct.std::_Vector_base.207" = 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.HIR::Function::Markings" = type { %"class.std::vector.211", i8, i32 }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::VisEnt" = type { %"class.HIR::Publicity", %"class.HIR::ValueItem" }
%"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::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.226" }
%struct.EncodedLiteral = type { %"class.std::vector.216", %"class.std::vector.221" }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = 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.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = 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.226" = type { %"class.std::_Rb_tree.227" }
%"class.std::_Rb_tree.227" = 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::pair.235" = type { %class.RcString, %"class.std::unique_ptr.237" }
%"class.std::unique_ptr.237" = type { %"struct.std::__uniq_ptr_data.238" }
%"struct.std::__uniq_ptr_data.238" = type { %"class.std::__uniq_ptr_impl.239" }
%"class.std::__uniq_ptr_impl.239" = type { %"class.std::tuple.240" }
%"class.std::tuple.240" = type { %"struct.std::_Tuple_impl.241" }
%"struct.std::_Tuple_impl.241" = type { %"struct.std::_Head_base.244" }
%"struct.std::_Head_base.244" = type { ptr }
%"struct.std::pair.232" = type <{ %"struct.std::__detail::_Node_iterator", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.MirOptTestFile::Test" = type { %"struct.HIR::SimplePath", %"struct.HIR::SimplePath" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.U128 = type { i64, i64 }
%struct.Reloc = type { i64, i64, %"class.std::unique_ptr.247", %"class.std::__cxx11::basic_string" }
%"class.std::unique_ptr.247" = type { %"struct.std::__uniq_ptr_data.248" }
%"struct.std::__uniq_ptr_data.248" = type { %"class.std::__uniq_ptr_impl.249" }
%"class.std::__uniq_ptr_impl.249" = type { %"class.std::tuple.250" }
%"class.std::tuple.250" = type { %"struct.std::_Tuple_impl.251" }
%"struct.std::_Tuple_impl.251" = type { %"struct.std::_Head_base.254" }
%"struct.std::_Head_base.254" = type { ptr }
%"class.HIR::Path" = type { %"class.HIR::Path::Data" }
%"class.HIR::Path::Data" = type { i32, %"union.HIR::Path::Data::DataUnion" }
%"union.HIR::Path::Data::DataUnion" = type { %"struct.HIR::Path::Data::Data_UfcsKnown" }
%"struct.HIR::Path::Data::Data_UfcsKnown" = type { %"class.HIR::TypeRef", %"class.HIR::GenericPath", %class.RcString, %"struct.HIR::PathParams", %"class.std::unique_ptr.258" }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::PathParams" = type { %class.ThinVector.255, %class.ThinVector.256, %class.ThinVector.257 }
%class.ThinVector.255 = type { ptr }
%class.ThinVector.256 = type { ptr }
%class.ThinVector.257 = type { ptr }
%"class.std::unique_ptr.258" = type { %"struct.std::__uniq_ptr_data.259" }
%"struct.std::__uniq_ptr_data.259" = type { %"class.std::__uniq_ptr_impl.260" }
%"class.std::__uniq_ptr_impl.260" = type { %"class.std::tuple.261" }
%"class.std::tuple.261" = type { %"struct.std::_Tuple_impl.262" }
%"struct.std::_Tuple_impl.262" = type { %"struct.std::_Head_base.265" }
%"struct.std::_Head_base.265" = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { i8 }
%"struct.std::pair.272" = type { %class.RcString, %"class.HIR::ExternCrate" }
%"class.HIR::ExternCrate" = type { %"class.HIR::CratePtr", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }
%"struct.std::pair.267" = type <{ %"struct.std::__detail::_Node_iterator.269", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.269" = type { %"struct.std::__detail::_Node_iterator_base.270" }
%"struct.std::__detail::_Node_iterator_base.270" = type { ptr }
%struct.TypeRepr = type { i64, i64, %"class.TypeRepr::VariantMode", %"class.std::vector.279" }
%"class.TypeRepr::VariantMode" = type { i32, %"union.TypeRepr::VariantMode::DataUnion" }
%"union.TypeRepr::VariantMode::DataUnion" = type { %"struct.TypeRepr::VariantMode::Data_Values" }
%"struct.TypeRepr::VariantMode::Data_Values" = type { %"struct.TypeRepr::FieldPath", %"class.std::vector.274" }
%"struct.TypeRepr::FieldPath" = type { i64, i64, %"class.std::vector.274" }
%"class.std::vector.274" = type { %"struct.std::_Vector_base.275" }
%"struct.std::_Vector_base.275" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.279" = type { %"struct.std::_Vector_base.280" }
%"struct.std::_Vector_base.280" = type { %"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl" }
%"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl" = type { %"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::ExternType" = type { %"struct.HIR::TraitMarkings" }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.284" }
%"class.std::map.284" = type { %"class.std::_Rb_tree.285" }
%"class.std::_Rb_tree.285" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::VisEnt.289" = 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.290", i8, %"class.std::unordered_map.315", %"class.std::unordered_map.329", %"class.std::unordered_multimap", %"class.std::unordered_map.356", i32, %"class.std::vector.290", %"struct.HIR::SimplePath" }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.315" = type { %"class.std::_Hashtable.316" }
%"class.std::_Hashtable.316" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.329" = type { %"class.std::_Hashtable.330" }
%"class.std::_Hashtable.330" = 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.343" }
%"class.std::_Hashtable.343" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.356" = type { %"class.std::_Hashtable.357" }
%"class.std::_Hashtable.357" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.290" = type { %"struct.std::_Vector_base.291" }
%"struct.std::_Vector_base.291" = 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.375" = type { %class.RcString, %"class.std::unique_ptr.377" }
%"class.std::unique_ptr.377" = type { %"struct.std::__uniq_ptr_data.378" }
%"struct.std::__uniq_ptr_data.378" = type { %"class.std::__uniq_ptr_impl.379" }
%"class.std::__uniq_ptr_impl.379" = type { %"class.std::tuple.380" }
%"class.std::tuple.380" = type { %"struct.std::_Tuple_impl.381" }
%"struct.std::_Tuple_impl.381" = type { %"struct.std::_Head_base.384" }
%"struct.std::_Head_base.384" = type { ptr }
%"struct.std::pair.370" = type <{ %"struct.std::__detail::_Node_iterator.372", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.372" = type { %"struct.std::__detail::_Node_iterator_base.373" }
%"struct.std::__detail::_Node_iterator_base.373" = type { ptr }
%class.anon.385 = type { i8 }
%class.anon.387 = type { i8 }
%class.anon.389 = type { i8 }
%"struct.TypeRepr::Field" = type { i64, %"class.HIR::TypeRef" }
%class.anon.391 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.392" = type { ptr }
%class.anon.393 = type { ptr }
%"class.std::vector.305" = type { %"struct.std::_Vector_base.306" }
%"struct.std::_Vector_base.306" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::VisEnt.394" = type { %"class.HIR::Publicity", %"class.HIR::TypeRef" }
%"class.HIR::Struct" = type <{ %"class.HIR::GenericParams", i32, [4 x i8], %"class.HIR::Struct::Data", i32, i32, %"struct.HIR::TraitMarkings", %"struct.HIR::StructMarkings", i32, [4 x i8] }>
%"class.HIR::Struct::Data" = type { i32, %"union.HIR::Struct::Data::DataUnion" }
%"union.HIR::Struct::Data::DataUnion" = type { %"class.std::vector.305" }
%"struct.HIR::StructMarkings" = type { i8, i32, i32, i32, i32, i32, i32, i8, i8, %class.U128 }
%class.anon.395 = type { ptr }
%"class.HIR::Union" = type { %"class.HIR::GenericParams", i32, %"class.std::vector.310", %"struct.HIR::TraitMarkings" }
%"class.std::vector.310" = type { %"struct.std::_Vector_base.311" }
%"struct.std::_Vector_base.311" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.396" = type { %class.RcString, %"struct.HIR::VisEnt.394" }
%class.anon.398 = type { ptr, ptr }
%class.anon.399 = type { ptr, ptr }
%class.anon.400 = type { ptr, ptr }
%struct.Ident = type { %"class.Ident::Hygiene", %class.RcString }
%"struct.std::pair.245" = type { %class.RcString, %"class.std::__cxx11::basic_string" }

@g_debug_indent_level = external global i32, align 4
@__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE = external hidden unnamed_addr constant [15 x i8], align 1
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN10ParseError10UnexpectedE = external constant ptr
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.6 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE(ptr dead_on_unwind noalias writable sret(%struct.MirOptTestFile) align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %1) #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i1, align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.HIR::CratePtr", align 8
  %10 = alloca %"class.HIR::Crate", align 8
  %11 = alloca %class.Lexer, align 8
  %12 = alloca %struct.ParseState, align 8
  %13 = alloca %class.Token, align 8
  %14 = alloca %"class.std::map.174", align 8
  %15 = alloca %class.Token, align 8
  %16 = alloca %class.Token, align 8
  %17 = alloca i1, align 1
  %18 = alloca %class.Token, align 8
  %19 = alloca %class.Token, align 8
  %20 = alloca i1, align 1
  %21 = alloca %class.RcString, align 8
  %22 = alloca %class.Token, align 8
  %23 = alloca %class.Token, align 8
  %24 = alloca i1, align 1
  %25 = alloca %class.Token, align 8
  %26 = alloca %class.Token, align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %class.Token, align 8
  %30 = alloca %class.Token, align 8
  %31 = alloca i1, align 1
  %32 = alloca %"struct.std::pair.179", align 8
  %33 = alloca %"struct.std::pair", align 8
  %34 = alloca %class.RcString, align 8
  %35 = alloca %"class.HIR::Function", align 8
  %36 = alloca %"struct.HIR::VisEnt", align 8
  %37 = alloca %"class.HIR::Function", align 8
  %38 = alloca i1, align 1
  %39 = alloca %"struct.std::pair.235", align 8
  %40 = alloca %"class.std::unique_ptr.237", align 8
  %41 = alloca %"struct.std::pair.232", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %44 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %45 = alloca ptr, align 8
  %46 = alloca %"struct.MirOptTestFile::Test", align 8
  %47 = alloca %"struct.HIR::SimplePath", align 8
  %48 = alloca %class.RcString, align 8
  %49 = alloca %"class.std::initializer_list", align 8
  %50 = alloca [1 x %class.RcString], align 8
  %51 = alloca ptr, align 8
  %52 = alloca %"struct.HIR::SimplePath", align 8
  %53 = alloca %class.RcString, align 8
  %54 = alloca %"class.std::initializer_list", align 8
  %55 = alloca [1 x %class.RcString], align 8
  %56 = alloca ptr, align 8
  %57 = alloca i8, align 1
  %58 = alloca %class.Token, align 8
  %59 = alloca %class.Token, align 8
  %60 = alloca i1, align 1
  %61 = alloca %class.RcString, align 8
  %62 = alloca %class.Token, align 8
  %63 = alloca %class.Token, align 8
  %64 = alloca i1, align 1
  %65 = alloca %"class.HIR::TypeRef", align 8
  %66 = alloca %class.Token, align 8
  %67 = alloca %class.Token, align 8
  %68 = alloca i1, align 1
  %69 = alloca %"class.HIR::Static", align 8
  %70 = alloca %"struct.HIR::Linkage", align 8
  %71 = alloca %"class.HIR::TypeRef", align 8
  %72 = alloca %"class.HIR::ExprPtr", align 8
  %73 = alloca %class.Token, align 8
  %74 = alloca %class.Token, align 8
  %75 = alloca i1, align 1
  %76 = alloca %class.Token, align 8
  %77 = alloca %class.Token, align 8
  %78 = alloca i1, align 1
  %79 = alloca %struct.EncodedLiteral, align 8
  %80 = alloca ptr, align 8
  %81 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %82 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %85 = alloca %class.Token, align 8
  %86 = alloca %class.Token, align 8
  %87 = alloca i1, align 1
  %88 = alloca %class.Token, align 8
  %89 = alloca %class.Token, align 8
  %90 = alloca i1, align 1
  %91 = alloca %class.U128, align 8
  %92 = alloca %class.Token, align 8
  %93 = alloca %class.Token, align 8
  %94 = alloca i1, align 1
  %95 = alloca %class.Token, align 8
  %96 = alloca %class.Token, align 8
  %97 = alloca i1, align 1
  %98 = alloca %class.U128, align 8
  %99 = alloca %class.Token, align 8
  %100 = alloca %class.Token, align 8
  %101 = alloca i1, align 1
  %102 = alloca %class.Token, align 8
  %103 = alloca %"struct.HIR::SimplePath", align 8
  %104 = alloca %class.RcString, align 8
  %105 = alloca %"class.std::initializer_list", align 8
  %106 = alloca [1 x %class.RcString], align 8
  %107 = alloca ptr, align 8
  %108 = alloca %struct.Reloc, align 8
  %109 = alloca %"class.HIR::Path", align 8
  %110 = alloca %"struct.HIR::SimplePath", align 8
  %111 = alloca %struct.Reloc, align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %struct.Span, align 8
  %114 = alloca %"class.std::function", align 8
  %115 = alloca %class.anon, align 1
  %116 = alloca i32, align 4
  %117 = alloca %class.Token, align 8
  %118 = alloca %class.Token, align 8
  %119 = alloca i1, align 1
  %120 = alloca %class.Token, align 8
  %121 = alloca %class.Token, align 8
  %122 = alloca i1, align 1
  %123 = alloca %"struct.HIR::VisEnt", align 8
  %124 = alloca %"class.HIR::Static", align 8
  %125 = alloca i1, align 1
  %126 = alloca %"struct.std::pair.235", align 8
  %127 = alloca %"class.std::unique_ptr.237", align 8
  %128 = alloca %"struct.std::pair.232", align 8
  %129 = alloca %class.Token, align 8
  %130 = alloca %class.Token, align 8
  %131 = alloca i1, align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %class.Token, align 8
  %134 = alloca %class.Token, align 8
  %135 = alloca i1, align 1
  %136 = alloca %"struct.std::pair.272", align 8
  %137 = alloca %class.RcString, align 8
  %138 = alloca %"class.HIR::ExternCrate", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca i1, align 1
  %141 = alloca %"struct.std::pair.267", align 8
  %142 = alloca %struct.TypeRepr, align 8
  %143 = alloca %class.Token, align 8
  %144 = alloca %class.Token, align 8
  %145 = alloca i1, align 1
  %146 = alloca %class.RcString, align 8
  %147 = alloca %class.Token, align 8
  %148 = alloca %class.Token, align 8
  %149 = alloca i1, align 1
  %150 = alloca %"class.HIR::ExternType", align 8
  %151 = alloca %"struct.HIR::VisEnt.289", align 8
  %152 = alloca %"class.HIR::ExternType", align 8
  %153 = alloca i1, align 1
  %154 = alloca %"struct.std::pair.375", align 8
  %155 = alloca %"class.std::unique_ptr.377", align 8
  %156 = alloca %"struct.std::pair.370", align 8
  %157 = alloca %class.Token, align 8
  %158 = alloca %class.Token, align 8
  %159 = alloca i1, align 1
  %160 = alloca %class.Token, align 8
  %161 = alloca %class.Token, align 8
  %162 = alloca i1, align 1
  %163 = alloca %class.Token, align 8
  %164 = alloca %class.Token, align 8
  %165 = alloca i1, align 1
  %166 = alloca %class.U128, align 8
  %167 = alloca %struct.Span, align 8
  %168 = alloca %"class.std::function", align 8
  %169 = alloca %class.anon.385, align 1
  %170 = alloca %class.Token, align 8
  %171 = alloca %class.Token, align 8
  %172 = alloca i1, align 1
  %173 = alloca %class.Token, align 8
  %174 = alloca %class.Token, align 8
  %175 = alloca i1, align 1
  %176 = alloca %class.Token, align 8
  %177 = alloca %class.Token, align 8
  %178 = alloca i1, align 1
  %179 = alloca %class.U128, align 8
  %180 = alloca %struct.Span, align 8
  %181 = alloca %"class.std::function", align 8
  %182 = alloca %class.anon.387, align 1
  %183 = alloca %class.Token, align 8
  %184 = alloca %class.Token, align 8
  %185 = alloca i1, align 1
  %186 = alloca %class.Token, align 8
  %187 = alloca %class.Token, align 8
  %188 = alloca i1, align 1
  %189 = alloca %class.U128, align 8
  %190 = alloca %struct.Span, align 8
  %191 = alloca %"class.std::function", align 8
  %192 = alloca %class.anon.389, align 1
  %193 = alloca %class.Token, align 8
  %194 = alloca %class.Token, align 8
  %195 = alloca i1, align 1
  %196 = alloca %"class.HIR::TypeRef", align 8
  %197 = alloca %class.Token, align 8
  %198 = alloca %class.Token, align 8
  %199 = alloca i1, align 1
  %200 = alloca %"struct.TypeRepr::Field", align 8
  %201 = alloca ptr, align 8
  %202 = alloca %struct.Span, align 8
  %203 = alloca %"class.std::function", align 8
  %204 = alloca %class.anon.391, align 8
  %205 = alloca %class.Token, align 8
  %206 = alloca %class.Token, align 8
  %207 = alloca i1, align 1
  %208 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %209 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %210 = alloca %class.anon.393, align 8
  %211 = alloca %"class.std::vector.305", align 8
  %212 = alloca ptr, align 8
  %213 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %214 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %215 = alloca ptr, align 8
  %216 = alloca %"struct.HIR::VisEnt.394", align 8
  %217 = alloca %"class.HIR::Struct", align 8
  %218 = alloca %"class.HIR::GenericParams", align 8
  %219 = alloca %"class.HIR::Struct::Data", align 8
  %220 = alloca %"class.std::vector.305", align 8
  %221 = alloca %"struct.HIR::VisEnt.289", align 8
  %222 = alloca %"class.HIR::Struct", align 8
  %223 = alloca i1, align 1
  %224 = alloca %"struct.std::pair.375", align 8
  %225 = alloca %"class.std::unique_ptr.377", align 8
  %226 = alloca %"struct.std::pair.370", align 8
  %227 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %228 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %229 = alloca %class.anon.395, align 8
  %230 = alloca %"class.HIR::Union", align 8
  %231 = alloca ptr, align 8
  %232 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %233 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %234 = alloca ptr, align 8
  %235 = alloca %"struct.std::pair.396", align 8
  %236 = alloca %class.RcString, align 8
  %237 = alloca %"struct.HIR::VisEnt.394", align 8
  %238 = alloca %"struct.HIR::VisEnt.289", align 8
  %239 = alloca %"class.HIR::Union", align 8
  %240 = alloca i1, align 1
  %241 = alloca %"struct.std::pair.375", align 8
  %242 = alloca %"class.std::unique_ptr.377", align 8
  %243 = alloca %"struct.std::pair.370", align 8
  %244 = alloca ptr, align 8
  %245 = alloca %struct.Span, align 8
  %246 = alloca %"class.std::function", align 8
  %247 = alloca %class.anon.398, align 8
  %248 = alloca ptr, align 8
  %249 = alloca %struct.Span, align 8
  %250 = alloca %"class.std::function", align 8
  %251 = alloca %class.anon.399, align 8
  %252 = alloca %class.Token, align 8
  %253 = alloca ptr, align 8
  %254 = alloca %struct.Span, align 8
  %255 = alloca %"class.std::function", align 8
  %256 = alloca %class.anon.400, align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  store i1 false, ptr %5, align 1
  call void @_ZN14MirOptTestFileC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #8
  %257 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %257)
          to label %258 unwind label %308

258:                                              ; preds = %2
  %259 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 0
  %260 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 944, i1 false)
  invoke void @_ZN3HIR5CrateC2Ev(ptr noundef nonnull align 8 dereferenceable(944) %10)
          to label %261 unwind label %312

261:                                              ; preds = %258
  invoke void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef %10)
          to label %262 unwind label %316

262:                                              ; preds = %261
  %263 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR8CratePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %265 unwind label %320

265:                                              ; preds = %262
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 256, ptr %11) #8
  %266 = load ptr, ptr %4, align 8, !tbaa !5
  %267 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %266)
          to label %268 unwind label %326

268:                                              ; preds = %265
  invoke void @_ZN10ParseStateC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %269 unwind label %326

269:                                              ; preds = %268
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %11, ptr noundef nonnull align 8 dereferenceable(32) %267, i32 noundef 0, ptr noundef byval(%struct.ParseState) align 8 %12)
          to label %270 unwind label %326

270:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 88, ptr %13) #8
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %271 unwind label %330

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %3418, %3416, %271
  %273 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 0)
          to label %274 unwind label %334

274:                                              ; preds = %272
  %275 = icmp ne i32 %273, 1
  br i1 %275, label %276, label %3420

276:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #8
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #8
  br label %277

277:                                              ; preds = %625, %276
  %278 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 21)
          to label %279 unwind label %338

279:                                              ; preds = %277
  br i1 %278, label %280, label %643

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 88, ptr %15) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %15, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %282 unwind label %342

282:                                              ; preds = %281
  %283 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %15)
          to label %284 unwind label %346

284:                                              ; preds = %282
  %285 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %283)
          to label %286 unwind label %346

286:                                              ; preds = %284
  %287 = icmp ne i32 %285, 29
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %15) #8
  br i1 %287, label %288, label %369

288:                                              ; preds = %286
  br label %289

289:                                              ; preds = %288
  %290 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %291 unwind label %338

291:                                              ; preds = %289
  br i1 %290, label %292, label %351

292:                                              ; preds = %291
  %293 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %293, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %295 unwind label %338

295:                                              ; preds = %292
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef @.str)
          to label %297 unwind label %338

297:                                              ; preds = %295
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef @.str.1)
          to label %299 unwind label %338

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef @.str.2)
          to label %301 unwind label %338

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %300, i32 noundef 50)
          to label %303 unwind label %338

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef @_ZSt3decRSt8ios_base)
          to label %305 unwind label %338

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %307 unwind label %338

307:                                              ; preds = %305
  br label %351

308:                                              ; preds = %2
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %7, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #8
  br label %3427

312:                                              ; preds = %258
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %7, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %8, align 4
  br label %325

316:                                              ; preds = %261
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %7, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %8, align 4
  br label %324

320:                                              ; preds = %262
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %7, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %8, align 4
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  br label %324

324:                                              ; preds = %320, %316
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %10) #8
  br label %325

325:                                              ; preds = %324, %312
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %3427

326:                                              ; preds = %269, %268, %265
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %7, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %8, align 4
  br label %3424

330:                                              ; preds = %270
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %7, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %8, align 4
  br label %3423

334:                                              ; preds = %272
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %7, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %8, align 4
  br label %3422

338:                                              ; preds = %2070, %1918, %1916, %1914, %1912, %1910, %1908, %1905, %1902, %1890, %858, %643, %396, %394, %392, %390, %388, %386, %383, %380, %305, %303, %301, %299, %297, %295, %292, %289, %277
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %7, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %8, align 4
  br label %3419

342:                                              ; preds = %281
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %7, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %8, align 4
  br label %350

346:                                              ; preds = %284, %282
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %7, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %350

350:                                              ; preds = %346, %342
  call void @llvm.lifetime.end.p0(i64 88, ptr %15) #8
  br label %3419

351:                                              ; preds = %307, %291
  br label %352

352:                                              ; preds = %351
  br label %353

353:                                              ; preds = %352
  store i1 true, ptr %17, align 1
  %354 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %16, i32 noundef 29)
          to label %355 unwind label %357

355:                                              ; preds = %353
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %354, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %16)
          to label %356 unwind label %361

356:                                              ; preds = %355
  store i1 false, ptr %17, align 1
  invoke void @__cxa_throw(ptr %354, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %361

357:                                              ; preds = %353
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %7, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %8, align 4
  br label %365

361:                                              ; preds = %356, %355
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %7, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #8
  br label %365

365:                                              ; preds = %361, %357
  %366 = load i1, ptr %17, align 1
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @__cxa_free_exception(ptr %354) #8
  br label %368

368:                                              ; preds = %367, %365
  br label %3419

369:                                              ; preds = %286
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 88, ptr %18) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %18, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %373 unwind label %399

373:                                              ; preds = %372
  %374 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %18)
          to label %375 unwind label %403

375:                                              ; preds = %373
  %376 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %374)
          to label %377 unwind label %403

377:                                              ; preds = %375
  %378 = icmp ne i32 %376, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  br i1 %378, label %379, label %426

379:                                              ; preds = %377
  br label %380

380:                                              ; preds = %379
  %381 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %382 unwind label %338

382:                                              ; preds = %380
  br i1 %381, label %383, label %408

383:                                              ; preds = %382
  %384 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %384, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %386 unwind label %338

386:                                              ; preds = %383
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef @.str)
          to label %388 unwind label %338

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef @.str.1)
          to label %390 unwind label %338

390:                                              ; preds = %388
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef @.str.2)
          to label %392 unwind label %338

392:                                              ; preds = %390
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %391, i32 noundef 51)
          to label %394 unwind label %338

394:                                              ; preds = %392
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef @_ZSt3decRSt8ios_base)
          to label %396 unwind label %338

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %398 unwind label %338

398:                                              ; preds = %396
  br label %408

399:                                              ; preds = %372
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %7, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %8, align 4
  br label %407

403:                                              ; preds = %375, %373
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %7, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %407

407:                                              ; preds = %403, %399
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  br label %3419

408:                                              ; preds = %398, %382
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  store i1 true, ptr %20, align 1
  %411 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %19, i32 noundef 14)
          to label %412 unwind label %414

412:                                              ; preds = %410
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %411, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %19)
          to label %413 unwind label %418

413:                                              ; preds = %412
  store i1 false, ptr %20, align 1
  invoke void @__cxa_throw(ptr %411, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %418

414:                                              ; preds = %410
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %7, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %8, align 4
  br label %422

418:                                              ; preds = %413, %412
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %7, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  br label %422

422:                                              ; preds = %418, %414
  %423 = load i1, ptr %20, align 1
  br i1 %423, label %424, label %425

424:                                              ; preds = %422
  call void @__cxa_free_exception(ptr %411) #8
  br label %425

425:                                              ; preds = %424, %422
  br label %3419

426:                                              ; preds = %377
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %429 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %430 unwind label %460

430:                                              ; preds = %428
  %431 = getelementptr inbounds %struct.Ident, ptr %429, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %431)
          to label %432 unwind label %460

432:                                              ; preds = %430
  br label %433

433:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 88, ptr %22) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %22, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %434 unwind label %464

434:                                              ; preds = %433
  %435 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %22)
          to label %436 unwind label %468

436:                                              ; preds = %434
  %437 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %435)
          to label %438 unwind label %468

438:                                              ; preds = %436
  %439 = icmp ne i32 %437, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %22) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %22) #8
  br i1 %439, label %440, label %495

440:                                              ; preds = %438
  br label %441

441:                                              ; preds = %440
  %442 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %443 unwind label %473

443:                                              ; preds = %441
  br i1 %442, label %444, label %477

444:                                              ; preds = %443
  %445 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %445, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %447 unwind label %473

447:                                              ; preds = %444
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %446, ptr noundef @.str)
          to label %449 unwind label %473

449:                                              ; preds = %447
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef @.str.1)
          to label %451 unwind label %473

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef @.str.2)
          to label %453 unwind label %473

453:                                              ; preds = %451
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %452, i32 noundef 53)
          to label %455 unwind label %473

455:                                              ; preds = %453
  %456 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %454, ptr noundef @_ZSt3decRSt8ios_base)
          to label %457 unwind label %473

457:                                              ; preds = %455
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %456, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %459 unwind label %473

459:                                              ; preds = %457
  br label %477

460:                                              ; preds = %430, %428
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %7, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %8, align 4
  br label %642

464:                                              ; preds = %433
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %7, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %8, align 4
  br label %472

468:                                              ; preds = %436, %434
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %7, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %22) #8
  br label %472

472:                                              ; preds = %468, %464
  call void @llvm.lifetime.end.p0(i64 88, ptr %22) #8
  br label %641

473:                                              ; preds = %522, %520, %518, %516, %514, %512, %509, %506, %457, %455, %453, %451, %449, %447, %444, %441
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %7, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %8, align 4
  br label %641

477:                                              ; preds = %459, %443
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  store i1 true, ptr %24, align 1
  %480 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %23, i32 noundef 50)
          to label %481 unwind label %483

481:                                              ; preds = %479
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %480, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %23)
          to label %482 unwind label %487

482:                                              ; preds = %481
  store i1 false, ptr %24, align 1
  invoke void @__cxa_throw(ptr %480, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %487

483:                                              ; preds = %479
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %7, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %8, align 4
  br label %491

487:                                              ; preds = %482, %481
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %7, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %23) #8
  br label %491

491:                                              ; preds = %487, %483
  %492 = load i1, ptr %24, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @__cxa_free_exception(ptr %480) #8
  br label %494

494:                                              ; preds = %493, %491
  br label %641

495:                                              ; preds = %438
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 88, ptr %25) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %25, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %499 unwind label %525

499:                                              ; preds = %498
  %500 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %25)
          to label %501 unwind label %529

501:                                              ; preds = %499
  %502 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %500)
          to label %503 unwind label %529

503:                                              ; preds = %501
  %504 = icmp ne i32 %502, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %25) #8
  br i1 %504, label %505, label %552

505:                                              ; preds = %503
  br label %506

506:                                              ; preds = %505
  %507 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %508 unwind label %473

508:                                              ; preds = %506
  br i1 %507, label %509, label %534

509:                                              ; preds = %508
  %510 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %510, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %512 unwind label %473

512:                                              ; preds = %509
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef @.str)
          to label %514 unwind label %473

514:                                              ; preds = %512
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %513, ptr noundef @.str.1)
          to label %516 unwind label %473

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %515, ptr noundef @.str.2)
          to label %518 unwind label %473

518:                                              ; preds = %516
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %517, i32 noundef 54)
          to label %520 unwind label %473

520:                                              ; preds = %518
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef @_ZSt3decRSt8ios_base)
          to label %522 unwind label %473

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %524 unwind label %473

524:                                              ; preds = %522
  br label %534

525:                                              ; preds = %498
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %7, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %8, align 4
  br label %533

529:                                              ; preds = %501, %499
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %7, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #8
  br label %533

533:                                              ; preds = %529, %525
  call void @llvm.lifetime.end.p0(i64 88, ptr %25) #8
  br label %641

534:                                              ; preds = %524, %508
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  store i1 true, ptr %27, align 1
  %537 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %26, i32 noundef 19)
          to label %538 unwind label %540

538:                                              ; preds = %536
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %537, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %26)
          to label %539 unwind label %544

539:                                              ; preds = %538
  store i1 false, ptr %27, align 1
  invoke void @__cxa_throw(ptr %537, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %544

540:                                              ; preds = %536
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %7, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %8, align 4
  br label %548

544:                                              ; preds = %539, %538
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %7, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #8
  br label %548

548:                                              ; preds = %544, %540
  %549 = load i1, ptr %27, align 1
  br i1 %549, label %550, label %551

550:                                              ; preds = %548
  call void @__cxa_free_exception(ptr %537) #8
  br label %551

551:                                              ; preds = %550, %548
  br label %641

552:                                              ; preds = %503
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  %555 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %556 unwind label %585

556:                                              ; preds = %554
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %555)
          to label %557 unwind label %585

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 88, ptr %29) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %29, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %559 unwind label %589

559:                                              ; preds = %558
  %560 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %29)
          to label %561 unwind label %593

561:                                              ; preds = %559
  %562 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %560)
          to label %563 unwind label %593

563:                                              ; preds = %561
  %564 = icmp ne i32 %562, 30
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %29) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %29) #8
  br i1 %564, label %565, label %620

565:                                              ; preds = %563
  br label %566

566:                                              ; preds = %565
  %567 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %568 unwind label %598

568:                                              ; preds = %566
  br i1 %567, label %569, label %602

569:                                              ; preds = %568
  %570 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %570, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %572 unwind label %598

572:                                              ; preds = %569
  %573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %571, ptr noundef @.str)
          to label %574 unwind label %598

574:                                              ; preds = %572
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %573, ptr noundef @.str.1)
          to label %576 unwind label %598

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef @.str.2)
          to label %578 unwind label %598

578:                                              ; preds = %576
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %577, i32 noundef 56)
          to label %580 unwind label %598

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef @_ZSt3decRSt8ios_base)
          to label %582 unwind label %598

582:                                              ; preds = %580
  %583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %581, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %584 unwind label %598

584:                                              ; preds = %582
  br label %602

585:                                              ; preds = %556, %554
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %7, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %8, align 4
  br label %640

589:                                              ; preds = %558
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %7, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %8, align 4
  br label %597

593:                                              ; preds = %561, %559
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %7, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %29) #8
  br label %597

597:                                              ; preds = %593, %589
  call void @llvm.lifetime.end.p0(i64 88, ptr %29) #8
  br label %639

598:                                              ; preds = %582, %580, %578, %576, %574, %572, %569, %566
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %7, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %8, align 4
  br label %639

602:                                              ; preds = %584, %568
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  store i1 true, ptr %31, align 1
  %605 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %30, i32 noundef 30)
          to label %606 unwind label %608

606:                                              ; preds = %604
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %605, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %30)
          to label %607 unwind label %612

607:                                              ; preds = %606
  store i1 false, ptr %31, align 1
  invoke void @__cxa_throw(ptr %605, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %612

608:                                              ; preds = %604
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %7, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %8, align 4
  br label %616

612:                                              ; preds = %607, %606
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %7, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #8
  br label %616

616:                                              ; preds = %612, %608
  %617 = load i1, ptr %31, align 1
  br i1 %617, label %618, label %619

618:                                              ; preds = %616
  call void @__cxa_free_exception(ptr %605) #8
  br label %619

619:                                              ; preds = %618, %616
  br label %639

620:                                              ; preds = %563
  br label %621

621:                                              ; preds = %620
  br label %622

622:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 40, ptr %32) #8
  invoke void @_ZSt9make_pairIR8RcStringRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind writable sret(%"struct.std::pair.179") align 8 %32, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %623 unwind label %630

623:                                              ; preds = %622
  %624 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE6insertIS9_IS0_S6_EEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull align 8 dereferenceable(40) %32)
          to label %625 unwind label %634

625:                                              ; preds = %623
  %626 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 0
  %627 = extractvalue { ptr, i8 } %624, 0
  store ptr %627, ptr %626, align 8
  %628 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 1
  %629 = extractvalue { ptr, i8 } %624, 1
  store i8 %629, ptr %628, align 8
  call void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %277, !llvm.loop !11

630:                                              ; preds = %622
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %7, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %8, align 4
  br label %638

634:                                              ; preds = %623
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %7, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #8
  br label %638

638:                                              ; preds = %634, %630
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #8
  br label %639

639:                                              ; preds = %638, %619, %598, %597
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %640

640:                                              ; preds = %639, %585
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %641

641:                                              ; preds = %640, %551, %533, %494, %473, %472
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  br label %642

642:                                              ; preds = %641, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %3419

643:                                              ; preds = %279
  %644 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 88)
          to label %645 unwind label %338

645:                                              ; preds = %643
  br i1 %644, label %646, label %858

646:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  invoke void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %647 unwind label %676

647:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 352, ptr %35) #8
  invoke void @_ZN12_GLOBAL__N_114parse_functionER11TokenStreamR8RcString(ptr dead_on_unwind writable sret(%"class.HIR::Function") align 8 %35, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %648 unwind label %680

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 384, ptr %36) #8
  %649 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %36, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %649)
          to label %650 unwind label %684

650:                                              ; preds = %648
  store i1 true, ptr %38, align 1
  %651 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %36, i32 0, i32 1
  invoke void @_ZN3HIR8FunctionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(352) %37, ptr noundef nonnull align 8 dereferenceable(352) %35)
          to label %652 unwind label %688

652:                                              ; preds = %650
  invoke void @_ZN3HIR9ValueItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(368) %651, ptr noundef %37)
          to label %653 unwind label %692

653:                                              ; preds = %652
  store i1 false, ptr %38, align 1
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %37) #8
  %654 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %655 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %654)
          to label %656 unwind label %700

656:                                              ; preds = %653
  %657 = getelementptr inbounds %"class.HIR::Crate", ptr %655, i32 0, i32 2
  %658 = getelementptr inbounds %"class.HIR::Module", ptr %657, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.237") align 8 %40, ptr noundef nonnull align 8 dereferenceable(384) %36)
          to label %659 unwind label %704

659:                                              ; preds = %656
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.235") align 8 %39, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %660 unwind label %708

660:                                              ; preds = %659
  %661 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %658, ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %662 unwind label %712

662:                                              ; preds = %660
  %663 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 0
  %664 = extractvalue { ptr, i8 } %661, 0
  store ptr %664, ptr %663, align 8
  %665 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 1
  %666 = extractvalue { ptr, i8 } %661, 1
  store i8 %666, ptr %665, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store ptr %14, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %667 = load ptr, ptr %42, align 8, !tbaa !5
  %668 = call ptr @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %667) #8
  %669 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %43, i32 0, i32 0
  store ptr %668, ptr %669, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %670 = load ptr, ptr %42, align 8, !tbaa !5
  %671 = call ptr @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %670) #8
  %672 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %44, i32 0, i32 0
  store ptr %671, ptr %672, align 8
  br label %673

673:                                              ; preds = %850, %662
  %674 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br i1 %674, label %718, label %675

675:                                              ; preds = %673
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %853

676:                                              ; preds = %646
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %7, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %8, align 4
  br label %857

680:                                              ; preds = %647
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %7, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %8, align 4
  br label %856

684:                                              ; preds = %648
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %7, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %8, align 4
  br label %855

688:                                              ; preds = %650
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %7, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %8, align 4
  br label %696

692:                                              ; preds = %652
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %7, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %8, align 4
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %37) #8
  br label %696

696:                                              ; preds = %692, %688
  %697 = load i1, ptr %38, align 1
  br i1 %697, label %698, label %699

698:                                              ; preds = %696
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %649) #8
  br label %699

699:                                              ; preds = %698, %696
  br label %855

700:                                              ; preds = %653
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %7, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %8, align 4
  br label %854

704:                                              ; preds = %656
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %7, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %8, align 4
  br label %717

708:                                              ; preds = %659
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %7, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %8, align 4
  br label %716

712:                                              ; preds = %660
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %7, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  br label %716

716:                                              ; preds = %712, %708
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %717

717:                                              ; preds = %716, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  br label %854

718:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %719 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  store ptr %719, ptr %45, align 8, !tbaa !5
  %720 = load ptr, ptr %45, align 8, !tbaa !5
  %721 = getelementptr inbounds %"struct.std::pair.245", ptr %720, i32 0, i32 0
  %722 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %721, ptr noundef @.str.3)
          to label %723 unwind label %768

723:                                              ; preds = %718
  br i1 %722, label %724, label %848

724:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #8
  invoke void @_ZN14MirOptTestFile4TestC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %725 unwind label %772

725:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef @.str.4)
          to label %726 unwind label %776

726:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  store ptr %50, ptr %51, align 8
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %727 unwind label %780

727:                                              ; preds = %726
  %728 = getelementptr inbounds %"class.std::initializer_list", ptr %49, i32 0, i32 0
  store ptr %50, ptr %728, align 8, !tbaa !13
  %729 = getelementptr inbounds %"class.std::initializer_list", ptr %49, i32 0, i32 1
  store i64 1, ptr %729, align 8, !tbaa !16
  %730 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 0
  %731 = load ptr, ptr %730, align 8
  %732 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 1
  %733 = load i64, ptr %732, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %48, ptr %731, i64 %733)
          to label %734 unwind label %791

734:                                              ; preds = %727
  %735 = getelementptr inbounds %"struct.MirOptTestFile::Test", ptr %46, i32 0, i32 0
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %737 unwind label %795

737:                                              ; preds = %734
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  %738 = getelementptr inbounds [1 x %class.RcString], ptr %50, i32 0, i32 0
  %739 = getelementptr inbounds %class.RcString, ptr %738, i64 1
  br label %740

740:                                              ; preds = %740, %737
  %741 = phi ptr [ %739, %737 ], [ %742, %740 ]
  %742 = getelementptr inbounds %class.RcString, ptr %741, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %742) #8
  %743 = icmp eq ptr %742, %738
  br i1 %743, label %744, label %740

744:                                              ; preds = %740
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef @.str.4)
          to label %745 unwind label %809

745:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  store ptr %55, ptr %56, align 8
  %746 = load ptr, ptr %45, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.std::pair.245", ptr %746, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(32) %747)
          to label %748 unwind label %813

748:                                              ; preds = %745
  %749 = getelementptr inbounds %"class.std::initializer_list", ptr %54, i32 0, i32 0
  store ptr %55, ptr %749, align 8, !tbaa !13
  %750 = getelementptr inbounds %"class.std::initializer_list", ptr %54, i32 0, i32 1
  store i64 1, ptr %750, align 8, !tbaa !16
  %751 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %752 = load ptr, ptr %751, align 8
  %753 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %754 = load i64, ptr %753, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef %53, ptr %752, i64 %754)
          to label %755 unwind label %824

755:                                              ; preds = %748
  %756 = getelementptr inbounds %"struct.MirOptTestFile::Test", ptr %46, i32 0, i32 1
  %757 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %756, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %758 unwind label %828

758:                                              ; preds = %755
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  %759 = getelementptr inbounds [1 x %class.RcString], ptr %55, i32 0, i32 0
  %760 = getelementptr inbounds %class.RcString, ptr %759, i64 1
  br label %761

761:                                              ; preds = %761, %758
  %762 = phi ptr [ %760, %758 ], [ %763, %761 ]
  %763 = getelementptr inbounds %class.RcString, ptr %762, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %763) #8
  %764 = icmp eq ptr %763, %759
  br i1 %764, label %765, label %761

765:                                              ; preds = %761
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  %766 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 2
  invoke void @_ZNSt6vectorIN14MirOptTestFile4TestESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %766, ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %767 unwind label %842

767:                                              ; preds = %765
  call void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #8
  br label %849

768:                                              ; preds = %718
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %7, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %8, align 4
  br label %852

772:                                              ; preds = %724
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %7, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %8, align 4
  br label %847

776:                                              ; preds = %725
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %7, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %8, align 4
  br label %808

780:                                              ; preds = %726
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %7, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %8, align 4
  %784 = load ptr, ptr %51, align 8
  %785 = icmp eq ptr %50, %784
  br i1 %785, label %790, label %786

786:                                              ; preds = %786, %780
  %787 = phi ptr [ %784, %780 ], [ %788, %786 ]
  %788 = getelementptr inbounds %class.RcString, ptr %787, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %788) #8
  %789 = icmp eq ptr %788, %50
  br i1 %789, label %790, label %786

790:                                              ; preds = %786, %780
  br label %807

791:                                              ; preds = %727
  %792 = landingpad { ptr, i32 }
          cleanup
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %7, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %8, align 4
  br label %799

795:                                              ; preds = %734
  %796 = landingpad { ptr, i32 }
          cleanup
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %7, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %8, align 4
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %799

799:                                              ; preds = %795, %791
  %800 = getelementptr inbounds [1 x %class.RcString], ptr %50, i32 0, i32 0
  %801 = getelementptr inbounds %class.RcString, ptr %800, i64 1
  br label %802

802:                                              ; preds = %802, %799
  %803 = phi ptr [ %801, %799 ], [ %804, %802 ]
  %804 = getelementptr inbounds %class.RcString, ptr %803, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %804) #8
  %805 = icmp eq ptr %804, %800
  br i1 %805, label %806, label %802

806:                                              ; preds = %802
  br label %807

807:                                              ; preds = %806, %790
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %808

808:                                              ; preds = %807, %776
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %846

809:                                              ; preds = %744
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %7, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %8, align 4
  br label %841

813:                                              ; preds = %745
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %7, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %8, align 4
  %817 = load ptr, ptr %56, align 8
  %818 = icmp eq ptr %55, %817
  br i1 %818, label %823, label %819

819:                                              ; preds = %819, %813
  %820 = phi ptr [ %817, %813 ], [ %821, %819 ]
  %821 = getelementptr inbounds %class.RcString, ptr %820, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %821) #8
  %822 = icmp eq ptr %821, %55
  br i1 %822, label %823, label %819

823:                                              ; preds = %819, %813
  br label %840

824:                                              ; preds = %748
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %7, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %8, align 4
  br label %832

828:                                              ; preds = %755
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %7, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %8, align 4
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br label %832

832:                                              ; preds = %828, %824
  %833 = getelementptr inbounds [1 x %class.RcString], ptr %55, i32 0, i32 0
  %834 = getelementptr inbounds %class.RcString, ptr %833, i64 1
  br label %835

835:                                              ; preds = %835, %832
  %836 = phi ptr [ %834, %832 ], [ %837, %835 ]
  %837 = getelementptr inbounds %class.RcString, ptr %836, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %837) #8
  %838 = icmp eq ptr %837, %833
  br i1 %838, label %839, label %835

839:                                              ; preds = %835
  br label %840

840:                                              ; preds = %839, %823
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %841

841:                                              ; preds = %840, %809
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %846

842:                                              ; preds = %765
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %7, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %8, align 4
  br label %846

846:                                              ; preds = %842, %841, %808
  call void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #8
  br label %847

847:                                              ; preds = %846, %772
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #8
  br label %852

848:                                              ; preds = %723
  br label %849

849:                                              ; preds = %848, %767
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %850

850:                                              ; preds = %849
  %851 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %673

852:                                              ; preds = %847, %768
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %854

853:                                              ; preds = %675
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %36) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %36) #8
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %35) #8
  call void @llvm.lifetime.end.p0(i64 352, ptr %35) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %3415

854:                                              ; preds = %852, %717, %700
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %36) #8
  br label %855

855:                                              ; preds = %854, %699, %684
  call void @llvm.lifetime.end.p0(i64 384, ptr %36) #8
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %35) #8
  br label %856

856:                                              ; preds = %855, %680
  call void @llvm.lifetime.end.p0(i64 352, ptr %35) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br label %857

857:                                              ; preds = %856, %676
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %3419

858:                                              ; preds = %645
  %859 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 80)
          to label %860 unwind label %338

860:                                              ; preds = %858
  br i1 %859, label %861, label %1890

861:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #8
  %862 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 78)
          to label %863 unwind label %892

863:                                              ; preds = %861
  %864 = zext i1 %862 to i8
  store i8 %864, ptr %57, align 1, !tbaa !17
  br label %865

865:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 88, ptr %58) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %58, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %866 unwind label %896

866:                                              ; preds = %865
  %867 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %58)
          to label %868 unwind label %900

868:                                              ; preds = %866
  %869 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %867)
          to label %870 unwind label %900

870:                                              ; preds = %868
  %871 = icmp ne i32 %869, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %58) #8
  br i1 %871, label %872, label %923

872:                                              ; preds = %870
  br label %873

873:                                              ; preds = %872
  %874 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %875 unwind label %892

875:                                              ; preds = %873
  br i1 %874, label %876, label %905

876:                                              ; preds = %875
  %877 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %877, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %879 unwind label %892

879:                                              ; preds = %876
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %878, ptr noundef @.str)
          to label %881 unwind label %892

881:                                              ; preds = %879
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %880, ptr noundef @.str.1)
          to label %883 unwind label %892

883:                                              ; preds = %881
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %882, ptr noundef @.str.2)
          to label %885 unwind label %892

885:                                              ; preds = %883
  %886 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %884, i32 noundef 93)
          to label %887 unwind label %892

887:                                              ; preds = %885
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef @_ZSt3decRSt8ios_base)
          to label %889 unwind label %892

889:                                              ; preds = %887
  %890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %888, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %891 unwind label %892

891:                                              ; preds = %889
  br label %905

892:                                              ; preds = %889, %887, %885, %883, %881, %879, %876, %873, %861
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %7, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %8, align 4
  br label %1889

896:                                              ; preds = %865
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %7, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %8, align 4
  br label %904

900:                                              ; preds = %868, %866
  %901 = landingpad { ptr, i32 }
          cleanup
  %902 = extractvalue { ptr, i32 } %901, 0
  store ptr %902, ptr %7, align 8
  %903 = extractvalue { ptr, i32 } %901, 1
  store i32 %903, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #8
  br label %904

904:                                              ; preds = %900, %896
  call void @llvm.lifetime.end.p0(i64 88, ptr %58) #8
  br label %1889

905:                                              ; preds = %891, %875
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906
  store i1 true, ptr %60, align 1
  %908 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %59, i32 noundef 14)
          to label %909 unwind label %911

909:                                              ; preds = %907
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %908, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %59)
          to label %910 unwind label %915

910:                                              ; preds = %909
  store i1 false, ptr %60, align 1
  invoke void @__cxa_throw(ptr %908, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %915

911:                                              ; preds = %907
  %912 = landingpad { ptr, i32 }
          cleanup
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %7, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %8, align 4
  br label %919

915:                                              ; preds = %910, %909
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %7, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %59) #8
  br label %919

919:                                              ; preds = %915, %911
  %920 = load i1, ptr %60, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %919
  call void @__cxa_free_exception(ptr %908) #8
  br label %922

922:                                              ; preds = %921, %919
  br label %1889

923:                                              ; preds = %870
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  %926 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %927 unwind label %957

927:                                              ; preds = %925
  %928 = getelementptr inbounds %struct.Ident, ptr %926, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %928)
          to label %929 unwind label %957

929:                                              ; preds = %927
  br label %930

930:                                              ; preds = %929
  call void @llvm.lifetime.start.p0(i64 88, ptr %62) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %62, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %931 unwind label %961

931:                                              ; preds = %930
  %932 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %62)
          to label %933 unwind label %965

933:                                              ; preds = %931
  %934 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %932)
          to label %935 unwind label %965

935:                                              ; preds = %933
  %936 = icmp ne i32 %934, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %62) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %62) #8
  br i1 %936, label %937, label %992

937:                                              ; preds = %935
  br label %938

938:                                              ; preds = %937
  %939 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %940 unwind label %970

940:                                              ; preds = %938
  br i1 %939, label %941, label %974

941:                                              ; preds = %940
  %942 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %942, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %944 unwind label %970

944:                                              ; preds = %941
  %945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %943, ptr noundef @.str)
          to label %946 unwind label %970

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %945, ptr noundef @.str.1)
          to label %948 unwind label %970

948:                                              ; preds = %946
  %949 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %947, ptr noundef @.str.2)
          to label %950 unwind label %970

950:                                              ; preds = %948
  %951 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %949, i32 noundef 95)
          to label %952 unwind label %970

952:                                              ; preds = %950
  %953 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %951, ptr noundef @_ZSt3decRSt8ios_base)
          to label %954 unwind label %970

954:                                              ; preds = %952
  %955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %953, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %956 unwind label %970

956:                                              ; preds = %954
  br label %974

957:                                              ; preds = %927, %925
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %7, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %8, align 4
  br label %1888

961:                                              ; preds = %930
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %7, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %8, align 4
  br label %969

965:                                              ; preds = %933, %931
  %966 = landingpad { ptr, i32 }
          cleanup
  %967 = extractvalue { ptr, i32 } %966, 0
  store ptr %967, ptr %7, align 8
  %968 = extractvalue { ptr, i32 } %966, 1
  store i32 %968, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %62) #8
  br label %969

969:                                              ; preds = %965, %961
  call void @llvm.lifetime.end.p0(i64 88, ptr %62) #8
  br label %1887

970:                                              ; preds = %954, %952, %950, %948, %946, %944, %941, %938
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %7, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %8, align 4
  br label %1887

974:                                              ; preds = %956, %940
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  store i1 true, ptr %64, align 1
  %977 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %63, i32 noundef 33)
          to label %978 unwind label %980

978:                                              ; preds = %976
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %977, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %63)
          to label %979 unwind label %984

979:                                              ; preds = %978
  store i1 false, ptr %64, align 1
  invoke void @__cxa_throw(ptr %977, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %984

980:                                              ; preds = %976
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %7, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %8, align 4
  br label %988

984:                                              ; preds = %979, %978
  %985 = landingpad { ptr, i32 }
          cleanup
  %986 = extractvalue { ptr, i32 } %985, 0
  store ptr %986, ptr %7, align 8
  %987 = extractvalue { ptr, i32 } %985, 1
  store i32 %987, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %63) #8
  br label %988

988:                                              ; preds = %984, %980
  %989 = load i1, ptr %64, align 1
  br i1 %989, label %990, label %991

990:                                              ; preds = %988
  call void @__cxa_free_exception(ptr %977) #8
  br label %991

991:                                              ; preds = %990, %988
  br label %1887

992:                                              ; preds = %935
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  invoke void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %65, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %995 unwind label %1023

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  call void @llvm.lifetime.start.p0(i64 88, ptr %66) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %66, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %997 unwind label %1027

997:                                              ; preds = %996
  %998 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %66)
          to label %999 unwind label %1031

999:                                              ; preds = %997
  %1000 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %998)
          to label %1001 unwind label %1031

1001:                                             ; preds = %999
  %1002 = icmp ne i32 %1000, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %66) #8
  br i1 %1002, label %1003, label %1058

1003:                                             ; preds = %1001
  br label %1004

1004:                                             ; preds = %1003
  %1005 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1006 unwind label %1036

1006:                                             ; preds = %1004
  br i1 %1005, label %1007, label %1040

1007:                                             ; preds = %1006
  %1008 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1009 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1008, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1010 unwind label %1036

1010:                                             ; preds = %1007
  %1011 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1009, ptr noundef @.str)
          to label %1012 unwind label %1036

1012:                                             ; preds = %1010
  %1013 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1011, ptr noundef @.str.1)
          to label %1014 unwind label %1036

1014:                                             ; preds = %1012
  %1015 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1013, ptr noundef @.str.2)
          to label %1016 unwind label %1036

1016:                                             ; preds = %1014
  %1017 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1015, i32 noundef 97)
          to label %1018 unwind label %1036

1018:                                             ; preds = %1016
  %1019 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1017, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1020 unwind label %1036

1020:                                             ; preds = %1018
  %1021 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1019, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1022 unwind label %1036

1022:                                             ; preds = %1020
  br label %1040

1023:                                             ; preds = %994
  %1024 = landingpad { ptr, i32 }
          cleanup
  %1025 = extractvalue { ptr, i32 } %1024, 0
  store ptr %1025, ptr %7, align 8
  %1026 = extractvalue { ptr, i32 } %1024, 1
  store i32 %1026, ptr %8, align 4
  br label %1886

1027:                                             ; preds = %996
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %7, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %8, align 4
  br label %1035

1031:                                             ; preds = %999, %997
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %7, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #8
  br label %1035

1035:                                             ; preds = %1031, %1027
  call void @llvm.lifetime.end.p0(i64 88, ptr %66) #8
  br label %1885

1036:                                             ; preds = %1020, %1018, %1016, %1014, %1012, %1010, %1007, %1004
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %7, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %8, align 4
  br label %1885

1040:                                             ; preds = %1022, %1006
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041
  store i1 true, ptr %68, align 1
  %1043 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %67, i32 noundef 50)
          to label %1044 unwind label %1046

1044:                                             ; preds = %1042
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1043, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %67)
          to label %1045 unwind label %1050

1045:                                             ; preds = %1044
  store i1 false, ptr %68, align 1
  invoke void @__cxa_throw(ptr %1043, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1050

1046:                                             ; preds = %1042
  %1047 = landingpad { ptr, i32 }
          cleanup
  %1048 = extractvalue { ptr, i32 } %1047, 0
  store ptr %1048, ptr %7, align 8
  %1049 = extractvalue { ptr, i32 } %1047, 1
  store i32 %1049, ptr %8, align 4
  br label %1054

1050:                                             ; preds = %1045, %1044
  %1051 = landingpad { ptr, i32 }
          cleanup
  %1052 = extractvalue { ptr, i32 } %1051, 0
  store ptr %1052, ptr %7, align 8
  %1053 = extractvalue { ptr, i32 } %1051, 1
  store i32 %1053, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %67) #8
  br label %1054

1054:                                             ; preds = %1050, %1046
  %1055 = load i1, ptr %68, align 1
  br i1 %1055, label %1056, label %1057

1056:                                             ; preds = %1054
  call void @__cxa_free_exception(ptr %1043) #8
  br label %1057

1057:                                             ; preds = %1056, %1054
  br label %1885

1058:                                             ; preds = %1001
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 360, ptr %69) #8
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 72, i1 false)
  call void @_ZN3HIR7LinkageC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %70) #8
  %1061 = load i8, ptr %57, align 1, !tbaa !17, !range !19, !noundef !20
  %1062 = trunc i8 %1061 to i1
  invoke void @_ZN3HIR7TypeRefC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %1063 unwind label %1096

1063:                                             ; preds = %1060
  invoke void @_ZN3HIR7ExprPtrC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %72)
          to label %1064 unwind label %1100

1064:                                             ; preds = %1063
  invoke void @_ZN3HIR6StaticC2ENS_7LinkageEbNS_7TypeRefENS_7ExprPtrE(ptr noundef nonnull align 8 dereferenceable(360) %69, ptr noundef %70, i1 noundef zeroext %1062, ptr noundef %71, ptr noundef %72)
          to label %1065 unwind label %1104

1065:                                             ; preds = %1064
  call void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %72) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  call void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %70) #8
  %1066 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 70)
          to label %1067 unwind label %1110

1067:                                             ; preds = %1065
  br i1 %1066, label %1068, label %1150

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 88, ptr %73) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %73, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1070 unwind label %1114

1070:                                             ; preds = %1069
  %1071 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %73)
          to label %1072 unwind label %1118

1072:                                             ; preds = %1070
  %1073 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1071)
          to label %1074 unwind label %1118

1074:                                             ; preds = %1072
  %1075 = icmp ne i32 %1073, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %73) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %73) #8
  br i1 %1075, label %1076, label %1141

1076:                                             ; preds = %1074
  br label %1077

1077:                                             ; preds = %1076
  %1078 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1079 unwind label %1110

1079:                                             ; preds = %1077
  br i1 %1078, label %1080, label %1123

1080:                                             ; preds = %1079
  %1081 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1082 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1081, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1083 unwind label %1110

1083:                                             ; preds = %1080
  %1084 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1082, ptr noundef @.str)
          to label %1085 unwind label %1110

1085:                                             ; preds = %1083
  %1086 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1084, ptr noundef @.str.1)
          to label %1087 unwind label %1110

1087:                                             ; preds = %1085
  %1088 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1086, ptr noundef @.str.2)
          to label %1089 unwind label %1110

1089:                                             ; preds = %1087
  %1090 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1088, i32 noundef 102)
          to label %1091 unwind label %1110

1091:                                             ; preds = %1089
  %1092 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1090, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1093 unwind label %1110

1093:                                             ; preds = %1091
  %1094 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1092, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1095 unwind label %1110

1095:                                             ; preds = %1093
  br label %1123

1096:                                             ; preds = %1060
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %7, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %8, align 4
  br label %1109

1100:                                             ; preds = %1063
  %1101 = landingpad { ptr, i32 }
          cleanup
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %7, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %8, align 4
  br label %1108

1104:                                             ; preds = %1064
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %7, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %8, align 4
  call void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %72) #8
  br label %1108

1108:                                             ; preds = %1104, %1100
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  br label %1109

1109:                                             ; preds = %1108, %1096
  call void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %70) #8
  br label %1884

1110:                                             ; preds = %1796, %1794, %1792, %1790, %1788, %1786, %1783, %1780, %1175, %1173, %1171, %1169, %1167, %1165, %1162, %1159, %1145, %1143, %1093, %1091, %1089, %1087, %1085, %1083, %1080, %1077, %1065
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %7, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %8, align 4
  br label %1883

1114:                                             ; preds = %1069
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %7, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %8, align 4
  br label %1122

1118:                                             ; preds = %1072, %1070
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %7, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %73) #8
  br label %1122

1122:                                             ; preds = %1118, %1114
  call void @llvm.lifetime.end.p0(i64 88, ptr %73) #8
  br label %1883

1123:                                             ; preds = %1095, %1079
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

1125:                                             ; preds = %1124
  store i1 true, ptr %75, align 1
  %1126 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %74, i32 noundef 19)
          to label %1127 unwind label %1129

1127:                                             ; preds = %1125
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1126, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %74)
          to label %1128 unwind label %1133

1128:                                             ; preds = %1127
  store i1 false, ptr %75, align 1
  invoke void @__cxa_throw(ptr %1126, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1133

1129:                                             ; preds = %1125
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %7, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %8, align 4
  br label %1137

1133:                                             ; preds = %1128, %1127
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %7, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %74) #8
  br label %1137

1137:                                             ; preds = %1133, %1129
  %1138 = load i1, ptr %75, align 1
  br i1 %1138, label %1139, label %1140

1139:                                             ; preds = %1137
  call void @__cxa_free_exception(ptr %1126) #8
  br label %1140

1140:                                             ; preds = %1139, %1137
  br label %1883

1141:                                             ; preds = %1074
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  %1144 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1145 unwind label %1110

1145:                                             ; preds = %1143
  %1146 = getelementptr inbounds %"class.HIR::Static", ptr %69, i32 0, i32 1
  %1147 = getelementptr inbounds %"struct.HIR::Linkage", ptr %1146, i32 0, i32 1
  %1148 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1147, ptr noundef nonnull align 8 dereferenceable(32) %1144)
          to label %1149 unwind label %1110

1149:                                             ; preds = %1145
  br label %1771

1150:                                             ; preds = %1067
  br label %1151

1151:                                             ; preds = %1150
  call void @llvm.lifetime.start.p0(i64 88, ptr %76) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %76, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1152 unwind label %1178

1152:                                             ; preds = %1151
  %1153 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %76)
          to label %1154 unwind label %1182

1154:                                             ; preds = %1152
  %1155 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1153)
          to label %1156 unwind label %1182

1156:                                             ; preds = %1154
  %1157 = icmp ne i32 %1155, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %76) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %76) #8
  br i1 %1157, label %1158, label %1205

1158:                                             ; preds = %1156
  br label %1159

1159:                                             ; preds = %1158
  %1160 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1161 unwind label %1110

1161:                                             ; preds = %1159
  br i1 %1160, label %1162, label %1187

1162:                                             ; preds = %1161
  %1163 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1163, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1165 unwind label %1110

1165:                                             ; preds = %1162
  %1166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1164, ptr noundef @.str)
          to label %1167 unwind label %1110

1167:                                             ; preds = %1165
  %1168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1166, ptr noundef @.str.1)
          to label %1169 unwind label %1110

1169:                                             ; preds = %1167
  %1170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1168, ptr noundef @.str.2)
          to label %1171 unwind label %1110

1171:                                             ; preds = %1169
  %1172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1170, i32 noundef 106)
          to label %1173 unwind label %1110

1173:                                             ; preds = %1171
  %1174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1172, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1175 unwind label %1110

1175:                                             ; preds = %1173
  %1176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1174, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1177 unwind label %1110

1177:                                             ; preds = %1175
  br label %1187

1178:                                             ; preds = %1151
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %7, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %8, align 4
  br label %1186

1182:                                             ; preds = %1154, %1152
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %7, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %76) #8
  br label %1186

1186:                                             ; preds = %1182, %1178
  call void @llvm.lifetime.end.p0(i64 88, ptr %76) #8
  br label %1883

1187:                                             ; preds = %1177, %1161
  br label %1188

1188:                                             ; preds = %1187
  br label %1189

1189:                                             ; preds = %1188
  store i1 true, ptr %78, align 1
  %1190 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %77, i32 noundef 19)
          to label %1191 unwind label %1193

1191:                                             ; preds = %1189
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1190, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %77)
          to label %1192 unwind label %1197

1192:                                             ; preds = %1191
  store i1 false, ptr %78, align 1
  invoke void @__cxa_throw(ptr %1190, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1197

1193:                                             ; preds = %1189
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %7, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %8, align 4
  br label %1201

1197:                                             ; preds = %1192, %1191
  %1198 = landingpad { ptr, i32 }
          cleanup
  %1199 = extractvalue { ptr, i32 } %1198, 0
  store ptr %1199, ptr %7, align 8
  %1200 = extractvalue { ptr, i32 } %1198, 1
  store i32 %1200, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %77) #8
  br label %1201

1201:                                             ; preds = %1197, %1193
  %1202 = load i1, ptr %78, align 1
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1201
  call void @__cxa_free_exception(ptr %1190) #8
  br label %1204

1204:                                             ; preds = %1203, %1201
  br label %1883

1205:                                             ; preds = %1156
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206
  call void @llvm.lifetime.start.p0(i64 48, ptr %79) #8
  call void @_ZN14EncodedLiteralC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %79) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %1208 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1209 unwind label %1219

1209:                                             ; preds = %1207
  store ptr %1208, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  %1210 = load ptr, ptr %80, align 8, !tbaa !5
  %1211 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %1210) #8
  %1212 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %81, i32 0, i32 0
  store ptr %1211, ptr %1212, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #8
  %1213 = load ptr, ptr %80, align 8, !tbaa !5
  %1214 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %1213) #8
  %1215 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %82, i32 0, i32 0
  store ptr %1214, ptr %1215, align 8
  br label %1216

1216:                                             ; preds = %1229, %1209
  %1217 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br i1 %1217, label %1223, label %1218

1218:                                             ; preds = %1216
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %1236

1219:                                             ; preds = %1207
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %7, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %8, align 4
  br label %1235

1223:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #8
  %1224 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  %1225 = load i8, ptr %1224, align 1, !tbaa !21
  store i8 %1225, ptr %83, align 1, !tbaa !21
  %1226 = getelementptr inbounds %struct.EncodedLiteral, ptr %79, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #8
  %1227 = load i8, ptr %83, align 1, !tbaa !21
  store i8 %1227, ptr %84, align 1, !tbaa !21
  invoke void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24) %1226, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %1228 unwind label %1231

1228:                                             ; preds = %1223
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  br label %1229

1229:                                             ; preds = %1228
  %1230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %1216

1231:                                             ; preds = %1223
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %7, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %1235

1235:                                             ; preds = %1231, %1219
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %1770

1236:                                             ; preds = %1218
  %1237 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 25)
          to label %1238 unwind label %1272

1238:                                             ; preds = %1236
  br i1 %1237, label %1239, label %1766

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1705, %1703, %1239
  %1241 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 0)
          to label %1242 unwind label %1272

1242:                                             ; preds = %1240
  %1243 = icmp ne i32 %1241, 26
  br i1 %1243, label %1244, label %1708

1244:                                             ; preds = %1242
  br label %1245

1245:                                             ; preds = %1244
  call void @llvm.lifetime.start.p0(i64 88, ptr %85) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %85, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1246 unwind label %1276

1246:                                             ; preds = %1245
  %1247 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %85)
          to label %1248 unwind label %1280

1248:                                             ; preds = %1246
  %1249 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1247)
          to label %1250 unwind label %1280

1250:                                             ; preds = %1248
  %1251 = icmp ne i32 %1249, 70
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %85) #8
  br i1 %1251, label %1252, label %1303

1252:                                             ; preds = %1250
  br label %1253

1253:                                             ; preds = %1252
  %1254 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1255 unwind label %1272

1255:                                             ; preds = %1253
  br i1 %1254, label %1256, label %1285

1256:                                             ; preds = %1255
  %1257 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1257, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1259 unwind label %1272

1259:                                             ; preds = %1256
  %1260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1258, ptr noundef @.str)
          to label %1261 unwind label %1272

1261:                                             ; preds = %1259
  %1262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1260, ptr noundef @.str.1)
          to label %1263 unwind label %1272

1263:                                             ; preds = %1261
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1262, ptr noundef @.str.2)
          to label %1265 unwind label %1272

1265:                                             ; preds = %1263
  %1266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1264, i32 noundef 112)
          to label %1267 unwind label %1272

1267:                                             ; preds = %1265
  %1268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1266, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1269 unwind label %1272

1269:                                             ; preds = %1267
  %1270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1268, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1271 unwind label %1272

1271:                                             ; preds = %1269
  br label %1285

1272:                                             ; preds = %1733, %1731, %1729, %1727, %1725, %1723, %1720, %1717, %1330, %1328, %1326, %1324, %1322, %1320, %1317, %1314, %1269, %1267, %1265, %1263, %1261, %1259, %1256, %1253, %1240, %1236
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %7, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %8, align 4
  br label %1770

1276:                                             ; preds = %1245
  %1277 = landingpad { ptr, i32 }
          cleanup
  %1278 = extractvalue { ptr, i32 } %1277, 0
  store ptr %1278, ptr %7, align 8
  %1279 = extractvalue { ptr, i32 } %1277, 1
  store i32 %1279, ptr %8, align 4
  br label %1284

1280:                                             ; preds = %1248, %1246
  %1281 = landingpad { ptr, i32 }
          cleanup
  %1282 = extractvalue { ptr, i32 } %1281, 0
  store ptr %1282, ptr %7, align 8
  %1283 = extractvalue { ptr, i32 } %1281, 1
  store i32 %1283, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #8
  br label %1284

1284:                                             ; preds = %1280, %1276
  call void @llvm.lifetime.end.p0(i64 88, ptr %85) #8
  br label %1770

1285:                                             ; preds = %1271, %1255
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286
  store i1 true, ptr %87, align 1
  %1288 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %86, i32 noundef 70)
          to label %1289 unwind label %1291

1289:                                             ; preds = %1287
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1288, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %86)
          to label %1290 unwind label %1295

1290:                                             ; preds = %1289
  store i1 false, ptr %87, align 1
  invoke void @__cxa_throw(ptr %1288, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1295

1291:                                             ; preds = %1287
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %7, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %8, align 4
  br label %1299

1295:                                             ; preds = %1290, %1289
  %1296 = landingpad { ptr, i32 }
          cleanup
  %1297 = extractvalue { ptr, i32 } %1296, 0
  store ptr %1297, ptr %7, align 8
  %1298 = extractvalue { ptr, i32 } %1296, 1
  store i32 %1298, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %86) #8
  br label %1299

1299:                                             ; preds = %1295, %1291
  %1300 = load i1, ptr %87, align 1
  br i1 %1300, label %1301, label %1302

1301:                                             ; preds = %1299
  call void @__cxa_free_exception(ptr %1288) #8
  br label %1302

1302:                                             ; preds = %1301, %1299
  br label %1770

1303:                                             ; preds = %1250
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

1306:                                             ; preds = %1305
  call void @llvm.lifetime.start.p0(i64 88, ptr %88) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %88, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1307 unwind label %1333

1307:                                             ; preds = %1306
  %1308 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %88)
          to label %1309 unwind label %1337

1309:                                             ; preds = %1307
  %1310 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1308)
          to label %1311 unwind label %1337

1311:                                             ; preds = %1309
  %1312 = icmp ne i32 %1310, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %88) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %88) #8
  br i1 %1312, label %1313, label %1360

1313:                                             ; preds = %1311
  br label %1314

1314:                                             ; preds = %1313
  %1315 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1316 unwind label %1272

1316:                                             ; preds = %1314
  br i1 %1315, label %1317, label %1342

1317:                                             ; preds = %1316
  %1318 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1318, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1320 unwind label %1272

1320:                                             ; preds = %1317
  %1321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1319, ptr noundef @.str)
          to label %1322 unwind label %1272

1322:                                             ; preds = %1320
  %1323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1321, ptr noundef @.str.1)
          to label %1324 unwind label %1272

1324:                                             ; preds = %1322
  %1325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1323, ptr noundef @.str.2)
          to label %1326 unwind label %1272

1326:                                             ; preds = %1324
  %1327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1325, i32 noundef 113)
          to label %1328 unwind label %1272

1328:                                             ; preds = %1326
  %1329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1327, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1330 unwind label %1272

1330:                                             ; preds = %1328
  %1331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1329, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1332 unwind label %1272

1332:                                             ; preds = %1330
  br label %1342

1333:                                             ; preds = %1306
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %7, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %8, align 4
  br label %1341

1337:                                             ; preds = %1309, %1307
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %7, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %88) #8
  br label %1341

1341:                                             ; preds = %1337, %1333
  call void @llvm.lifetime.end.p0(i64 88, ptr %88) #8
  br label %1770

1342:                                             ; preds = %1332, %1316
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343
  store i1 true, ptr %90, align 1
  %1345 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %89, i32 noundef 16)
          to label %1346 unwind label %1348

1346:                                             ; preds = %1344
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1345, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %89)
          to label %1347 unwind label %1352

1347:                                             ; preds = %1346
  store i1 false, ptr %90, align 1
  invoke void @__cxa_throw(ptr %1345, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1352

1348:                                             ; preds = %1344
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %7, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %8, align 4
  br label %1356

1352:                                             ; preds = %1347, %1346
  %1353 = landingpad { ptr, i32 }
          cleanup
  %1354 = extractvalue { ptr, i32 } %1353, 0
  store ptr %1354, ptr %7, align 8
  %1355 = extractvalue { ptr, i32 } %1353, 1
  store i32 %1355, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %89) #8
  br label %1356

1356:                                             ; preds = %1352, %1348
  %1357 = load i1, ptr %90, align 1
  br i1 %1357, label %1358, label %1359

1358:                                             ; preds = %1356
  call void @__cxa_free_exception(ptr %1345) #8
  br label %1359

1359:                                             ; preds = %1358, %1356
  br label %1770

1360:                                             ; preds = %1311
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #8
  %1363 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1364 unwind label %1396

1364:                                             ; preds = %1362
  %1365 = getelementptr inbounds { i64, i64 }, ptr %91, i32 0, i32 0
  %1366 = extractvalue { i64, i64 } %1363, 0
  store i64 %1366, ptr %1365, align 8
  %1367 = getelementptr inbounds { i64, i64 }, ptr %91, i32 0, i32 1
  %1368 = extractvalue { i64, i64 } %1363, 1
  store i64 %1368, ptr %1367, align 8
  br label %1369

1369:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 88, ptr %92) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %92, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1370 unwind label %1400

1370:                                             ; preds = %1369
  %1371 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %92)
          to label %1372 unwind label %1404

1372:                                             ; preds = %1370
  %1373 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1371)
          to label %1374 unwind label %1404

1374:                                             ; preds = %1372
  %1375 = icmp ne i32 %1373, 41
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %92) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %92) #8
  br i1 %1375, label %1376, label %1427

1376:                                             ; preds = %1374
  br label %1377

1377:                                             ; preds = %1376
  %1378 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1379 unwind label %1396

1379:                                             ; preds = %1377
  br i1 %1378, label %1380, label %1409

1380:                                             ; preds = %1379
  %1381 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1381, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1383 unwind label %1396

1383:                                             ; preds = %1380
  %1384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1382, ptr noundef @.str)
          to label %1385 unwind label %1396

1385:                                             ; preds = %1383
  %1386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1384, ptr noundef @.str.1)
          to label %1387 unwind label %1396

1387:                                             ; preds = %1385
  %1388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1386, ptr noundef @.str.2)
          to label %1389 unwind label %1396

1389:                                             ; preds = %1387
  %1390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1388, i32 noundef 115)
          to label %1391 unwind label %1396

1391:                                             ; preds = %1389
  %1392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1390, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1393 unwind label %1396

1393:                                             ; preds = %1391
  %1394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1392, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1395 unwind label %1396

1395:                                             ; preds = %1393
  br label %1409

1396:                                             ; preds = %1454, %1452, %1450, %1448, %1446, %1444, %1441, %1438, %1393, %1391, %1389, %1387, %1385, %1383, %1380, %1377, %1362
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %7, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %8, align 4
  br label %1707

1400:                                             ; preds = %1369
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %7, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %8, align 4
  br label %1408

1404:                                             ; preds = %1372, %1370
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %7, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %92) #8
  br label %1408

1408:                                             ; preds = %1404, %1400
  call void @llvm.lifetime.end.p0(i64 88, ptr %92) #8
  br label %1707

1409:                                             ; preds = %1395, %1379
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  store i1 true, ptr %94, align 1
  %1412 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %93, i32 noundef 41)
          to label %1413 unwind label %1415

1413:                                             ; preds = %1411
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1412, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %93)
          to label %1414 unwind label %1419

1414:                                             ; preds = %1413
  store i1 false, ptr %94, align 1
  invoke void @__cxa_throw(ptr %1412, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1419

1415:                                             ; preds = %1411
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %7, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %8, align 4
  br label %1423

1419:                                             ; preds = %1414, %1413
  %1420 = landingpad { ptr, i32 }
          cleanup
  %1421 = extractvalue { ptr, i32 } %1420, 0
  store ptr %1421, ptr %7, align 8
  %1422 = extractvalue { ptr, i32 } %1420, 1
  store i32 %1422, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #8
  br label %1423

1423:                                             ; preds = %1419, %1415
  %1424 = load i1, ptr %94, align 1
  br i1 %1424, label %1425, label %1426

1425:                                             ; preds = %1423
  call void @__cxa_free_exception(ptr %1412) #8
  br label %1426

1426:                                             ; preds = %1425, %1423
  br label %1707

1427:                                             ; preds = %1374
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 88, ptr %95) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %95, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1431 unwind label %1457

1431:                                             ; preds = %1430
  %1432 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %95)
          to label %1433 unwind label %1461

1433:                                             ; preds = %1431
  %1434 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1432)
          to label %1435 unwind label %1461

1435:                                             ; preds = %1433
  %1436 = icmp ne i32 %1434, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %95) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %95) #8
  br i1 %1436, label %1437, label %1484

1437:                                             ; preds = %1435
  br label %1438

1438:                                             ; preds = %1437
  %1439 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1440 unwind label %1396

1440:                                             ; preds = %1438
  br i1 %1439, label %1441, label %1466

1441:                                             ; preds = %1440
  %1442 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1443 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1442, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1444 unwind label %1396

1444:                                             ; preds = %1441
  %1445 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1443, ptr noundef @.str)
          to label %1446 unwind label %1396

1446:                                             ; preds = %1444
  %1447 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1445, ptr noundef @.str.1)
          to label %1448 unwind label %1396

1448:                                             ; preds = %1446
  %1449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1447, ptr noundef @.str.2)
          to label %1450 unwind label %1396

1450:                                             ; preds = %1448
  %1451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1449, i32 noundef 116)
          to label %1452 unwind label %1396

1452:                                             ; preds = %1450
  %1453 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1451, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1454 unwind label %1396

1454:                                             ; preds = %1452
  %1455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1453, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1456 unwind label %1396

1456:                                             ; preds = %1454
  br label %1466

1457:                                             ; preds = %1430
  %1458 = landingpad { ptr, i32 }
          cleanup
  %1459 = extractvalue { ptr, i32 } %1458, 0
  store ptr %1459, ptr %7, align 8
  %1460 = extractvalue { ptr, i32 } %1458, 1
  store i32 %1460, ptr %8, align 4
  br label %1465

1461:                                             ; preds = %1433, %1431
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %7, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %95) #8
  br label %1465

1465:                                             ; preds = %1461, %1457
  call void @llvm.lifetime.end.p0(i64 88, ptr %95) #8
  br label %1707

1466:                                             ; preds = %1456, %1440
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467
  store i1 true, ptr %97, align 1
  %1469 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %96, i32 noundef 16)
          to label %1470 unwind label %1472

1470:                                             ; preds = %1468
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1469, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %96)
          to label %1471 unwind label %1476

1471:                                             ; preds = %1470
  store i1 false, ptr %97, align 1
  invoke void @__cxa_throw(ptr %1469, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1476

1472:                                             ; preds = %1468
  %1473 = landingpad { ptr, i32 }
          cleanup
  %1474 = extractvalue { ptr, i32 } %1473, 0
  store ptr %1474, ptr %7, align 8
  %1475 = extractvalue { ptr, i32 } %1473, 1
  store i32 %1475, ptr %8, align 4
  br label %1480

1476:                                             ; preds = %1471, %1470
  %1477 = landingpad { ptr, i32 }
          cleanup
  %1478 = extractvalue { ptr, i32 } %1477, 0
  store ptr %1478, ptr %7, align 8
  %1479 = extractvalue { ptr, i32 } %1477, 1
  store i32 %1479, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %96) #8
  br label %1480

1480:                                             ; preds = %1476, %1472
  %1481 = load i1, ptr %97, align 1
  br i1 %1481, label %1482, label %1483

1482:                                             ; preds = %1480
  call void @__cxa_free_exception(ptr %1469) #8
  br label %1483

1483:                                             ; preds = %1482, %1480
  br label %1707

1484:                                             ; preds = %1435
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #8
  %1487 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1488 unwind label %1520

1488:                                             ; preds = %1486
  %1489 = getelementptr inbounds { i64, i64 }, ptr %98, i32 0, i32 0
  %1490 = extractvalue { i64, i64 } %1487, 0
  store i64 %1490, ptr %1489, align 8
  %1491 = getelementptr inbounds { i64, i64 }, ptr %98, i32 0, i32 1
  %1492 = extractvalue { i64, i64 } %1487, 1
  store i64 %1492, ptr %1491, align 8
  br label %1493

1493:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 88, ptr %99) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %99, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1494 unwind label %1524

1494:                                             ; preds = %1493
  %1495 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %99)
          to label %1496 unwind label %1528

1496:                                             ; preds = %1494
  %1497 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1495)
          to label %1498 unwind label %1528

1498:                                             ; preds = %1496
  %1499 = icmp ne i32 %1497, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %99) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %99) #8
  br i1 %1499, label %1500, label %1551

1500:                                             ; preds = %1498
  br label %1501

1501:                                             ; preds = %1500
  %1502 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1503 unwind label %1520

1503:                                             ; preds = %1501
  br i1 %1502, label %1504, label %1533

1504:                                             ; preds = %1503
  %1505 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1505, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1507 unwind label %1520

1507:                                             ; preds = %1504
  %1508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1506, ptr noundef @.str)
          to label %1509 unwind label %1520

1509:                                             ; preds = %1507
  %1510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1508, ptr noundef @.str.1)
          to label %1511 unwind label %1520

1511:                                             ; preds = %1509
  %1512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1510, ptr noundef @.str.2)
          to label %1513 unwind label %1520

1513:                                             ; preds = %1511
  %1514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1512, i32 noundef 118)
          to label %1515 unwind label %1520

1515:                                             ; preds = %1513
  %1516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1514, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1517 unwind label %1520

1517:                                             ; preds = %1515
  %1518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1516, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1519 unwind label %1520

1519:                                             ; preds = %1517
  br label %1533

1520:                                             ; preds = %1698, %1681, %1647, %1558, %1517, %1515, %1513, %1511, %1509, %1507, %1504, %1501, %1486
  %1521 = landingpad { ptr, i32 }
          cleanup
  %1522 = extractvalue { ptr, i32 } %1521, 0
  store ptr %1522, ptr %7, align 8
  %1523 = extractvalue { ptr, i32 } %1521, 1
  store i32 %1523, ptr %8, align 4
  br label %1706

1524:                                             ; preds = %1493
  %1525 = landingpad { ptr, i32 }
          cleanup
  %1526 = extractvalue { ptr, i32 } %1525, 0
  store ptr %1526, ptr %7, align 8
  %1527 = extractvalue { ptr, i32 } %1525, 1
  store i32 %1527, ptr %8, align 4
  br label %1532

1528:                                             ; preds = %1496, %1494
  %1529 = landingpad { ptr, i32 }
          cleanup
  %1530 = extractvalue { ptr, i32 } %1529, 0
  store ptr %1530, ptr %7, align 8
  %1531 = extractvalue { ptr, i32 } %1529, 1
  store i32 %1531, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %99) #8
  br label %1532

1532:                                             ; preds = %1528, %1524
  call void @llvm.lifetime.end.p0(i64 88, ptr %99) #8
  br label %1706

1533:                                             ; preds = %1519, %1503
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

1535:                                             ; preds = %1534
  store i1 true, ptr %101, align 1
  %1536 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %100, i32 noundef 50)
          to label %1537 unwind label %1539

1537:                                             ; preds = %1535
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1536, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %100)
          to label %1538 unwind label %1543

1538:                                             ; preds = %1537
  store i1 false, ptr %101, align 1
  invoke void @__cxa_throw(ptr %1536, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1543

1539:                                             ; preds = %1535
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %7, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %8, align 4
  br label %1547

1543:                                             ; preds = %1538, %1537
  %1544 = landingpad { ptr, i32 }
          cleanup
  %1545 = extractvalue { ptr, i32 } %1544, 0
  store ptr %1545, ptr %7, align 8
  %1546 = extractvalue { ptr, i32 } %1544, 1
  store i32 %1546, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #8
  br label %1547

1547:                                             ; preds = %1543, %1539
  %1548 = load i1, ptr %101, align 1
  br i1 %1548, label %1549, label %1550

1549:                                             ; preds = %1547
  call void @__cxa_free_exception(ptr %1536) #8
  br label %1550

1550:                                             ; preds = %1549, %1547
  br label %1706

1551:                                             ; preds = %1498
  br label %1552

1552:                                             ; preds = %1551
  br label %1553

1553:                                             ; preds = %1552
  call void @llvm.lifetime.start.p0(i64 88, ptr %102) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %102, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1554 unwind label %1591

1554:                                             ; preds = %1553
  %1555 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %102)
          to label %1556 unwind label %1595

1556:                                             ; preds = %1554
  %1557 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1555)
          to label %1558 unwind label %1595

1558:                                             ; preds = %1556
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %102) #8
  %1559 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1560 unwind label %1520

1560:                                             ; preds = %1558
  %1561 = icmp eq i32 %1559, 14
  br i1 %1561, label %1562, label %1647

1562:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef @.str.4)
          to label %1563 unwind label %1600

1563:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  store ptr %106, ptr %107, align 8
  %1564 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1565 unwind label %1604

1565:                                             ; preds = %1563
  %1566 = getelementptr inbounds %struct.Ident, ptr %1564, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 8 dereferenceable(8) %1566)
          to label %1567 unwind label %1604

1567:                                             ; preds = %1565
  %1568 = getelementptr inbounds %"class.std::initializer_list", ptr %105, i32 0, i32 0
  store ptr %106, ptr %1568, align 8, !tbaa !13
  %1569 = getelementptr inbounds %"class.std::initializer_list", ptr %105, i32 0, i32 1
  store i64 1, ptr %1569, align 8, !tbaa !16
  %1570 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 0
  %1571 = load ptr, ptr %1570, align 8
  %1572 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 1
  %1573 = load i64, ptr %1572, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef %104, ptr %1571, i64 %1573)
          to label %1574 unwind label %1615

1574:                                             ; preds = %1567
  %1575 = getelementptr inbounds [1 x %class.RcString], ptr %106, i32 0, i32 0
  %1576 = getelementptr inbounds %class.RcString, ptr %1575, i64 1
  br label %1577

1577:                                             ; preds = %1577, %1574
  %1578 = phi ptr [ %1576, %1574 ], [ %1579, %1577 ]
  %1579 = getelementptr inbounds %class.RcString, ptr %1578, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %1579) #8
  %1580 = icmp eq ptr %1579, %1575
  br i1 %1580, label %1581, label %1577

1581:                                             ; preds = %1577
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  %1582 = getelementptr inbounds %struct.EncodedLiteral, ptr %79, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 56, ptr %108) #8
  %1583 = invoke noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1584 unwind label %1627

1584:                                             ; preds = %1581
  %1585 = invoke noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %1586 unwind label %1627

1586:                                             ; preds = %1584
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1587 unwind label %1627

1587:                                             ; preds = %1586
  invoke void @_ZN3HIR4PathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(88) %109, ptr noundef %110)
          to label %1588 unwind label %1631

1588:                                             ; preds = %1587
  invoke void @_ZN5Reloc9new_namedEmmN3HIR4PathE(ptr dead_on_unwind writable sret(%struct.Reloc) align 8 %108, i64 noundef %1583, i64 noundef %1585, ptr noundef %109)
          to label %1589 unwind label %1635

1589:                                             ; preds = %1588
  invoke void @_ZNSt6vectorI5RelocSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1582, ptr noundef nonnull align 8 dereferenceable(56) %108)
          to label %1590 unwind label %1639

1590:                                             ; preds = %1589
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %108) #8
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %109) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %108) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1698

1591:                                             ; preds = %1553
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %7, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %8, align 4
  br label %1599

1595:                                             ; preds = %1556, %1554
  %1596 = landingpad { ptr, i32 }
          cleanup
  %1597 = extractvalue { ptr, i32 } %1596, 0
  store ptr %1597, ptr %7, align 8
  %1598 = extractvalue { ptr, i32 } %1596, 1
  store i32 %1598, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #8
  br label %1599

1599:                                             ; preds = %1595, %1591
  call void @llvm.lifetime.end.p0(i64 88, ptr %102) #8
  br label %1706

1600:                                             ; preds = %1562
  %1601 = landingpad { ptr, i32 }
          cleanup
  %1602 = extractvalue { ptr, i32 } %1601, 0
  store ptr %1602, ptr %7, align 8
  %1603 = extractvalue { ptr, i32 } %1601, 1
  store i32 %1603, ptr %8, align 4
  br label %1646

1604:                                             ; preds = %1565, %1563
  %1605 = landingpad { ptr, i32 }
          cleanup
  %1606 = extractvalue { ptr, i32 } %1605, 0
  store ptr %1606, ptr %7, align 8
  %1607 = extractvalue { ptr, i32 } %1605, 1
  store i32 %1607, ptr %8, align 4
  %1608 = load ptr, ptr %107, align 8
  %1609 = icmp eq ptr %106, %1608
  br i1 %1609, label %1614, label %1610

1610:                                             ; preds = %1610, %1604
  %1611 = phi ptr [ %1608, %1604 ], [ %1612, %1610 ]
  %1612 = getelementptr inbounds %class.RcString, ptr %1611, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %1612) #8
  %1613 = icmp eq ptr %1612, %106
  br i1 %1613, label %1614, label %1610

1614:                                             ; preds = %1610, %1604
  br label %1626

1615:                                             ; preds = %1567
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %7, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %8, align 4
  %1619 = getelementptr inbounds [1 x %class.RcString], ptr %106, i32 0, i32 0
  %1620 = getelementptr inbounds %class.RcString, ptr %1619, i64 1
  br label %1621

1621:                                             ; preds = %1621, %1615
  %1622 = phi ptr [ %1620, %1615 ], [ %1623, %1621 ]
  %1623 = getelementptr inbounds %class.RcString, ptr %1622, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %1623) #8
  %1624 = icmp eq ptr %1623, %1619
  br i1 %1624, label %1625, label %1621

1625:                                             ; preds = %1621
  br label %1626

1626:                                             ; preds = %1625, %1614
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  br label %1646

1627:                                             ; preds = %1586, %1584, %1581
  %1628 = landingpad { ptr, i32 }
          cleanup
  %1629 = extractvalue { ptr, i32 } %1628, 0
  store ptr %1629, ptr %7, align 8
  %1630 = extractvalue { ptr, i32 } %1628, 1
  store i32 %1630, ptr %8, align 4
  br label %1645

1631:                                             ; preds = %1587
  %1632 = landingpad { ptr, i32 }
          cleanup
  %1633 = extractvalue { ptr, i32 } %1632, 0
  store ptr %1633, ptr %7, align 8
  %1634 = extractvalue { ptr, i32 } %1632, 1
  store i32 %1634, ptr %8, align 4
  br label %1644

1635:                                             ; preds = %1588
  %1636 = landingpad { ptr, i32 }
          cleanup
  %1637 = extractvalue { ptr, i32 } %1636, 0
  store ptr %1637, ptr %7, align 8
  %1638 = extractvalue { ptr, i32 } %1636, 1
  store i32 %1638, ptr %8, align 4
  br label %1643

1639:                                             ; preds = %1589
  %1640 = landingpad { ptr, i32 }
          cleanup
  %1641 = extractvalue { ptr, i32 } %1640, 0
  store ptr %1641, ptr %7, align 8
  %1642 = extractvalue { ptr, i32 } %1640, 1
  store i32 %1642, ptr %8, align 4
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %108) #8
  br label %1643

1643:                                             ; preds = %1639, %1635
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %109) #8
  br label %1644

1644:                                             ; preds = %1643, %1631
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #8
  br label %1645

1645:                                             ; preds = %1644, %1627
  call void @llvm.lifetime.end.p0(i64 56, ptr %108) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  br label %1646

1646:                                             ; preds = %1645, %1626, %1600
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1706

1647:                                             ; preds = %1560
  %1648 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1649 unwind label %1520

1649:                                             ; preds = %1647
  %1650 = icmp eq i32 %1648, 19
  br i1 %1650, label %1651, label %1676

1651:                                             ; preds = %1649
  %1652 = getelementptr inbounds %struct.EncodedLiteral, ptr %79, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 56, ptr %111) #8
  %1653 = invoke noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1654 unwind label %1662

1654:                                             ; preds = %1651
  %1655 = invoke noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %1656 unwind label %1662

1656:                                             ; preds = %1654
  %1657 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1658 unwind label %1662

1658:                                             ; preds = %1656
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %1657)
          to label %1659 unwind label %1662

1659:                                             ; preds = %1658
  invoke void @_ZN5Reloc9new_bytesEmmNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%struct.Reloc) align 8 %111, i64 noundef %1653, i64 noundef %1655, ptr noundef %112)
          to label %1660 unwind label %1666

1660:                                             ; preds = %1659
  invoke void @_ZNSt6vectorI5RelocSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1652, ptr noundef nonnull align 8 dereferenceable(56) %111)
          to label %1661 unwind label %1670

1661:                                             ; preds = %1660
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %111) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %111) #8
  br label %1697

1662:                                             ; preds = %1658, %1656, %1654, %1651
  %1663 = landingpad { ptr, i32 }
          cleanup
  %1664 = extractvalue { ptr, i32 } %1663, 0
  store ptr %1664, ptr %7, align 8
  %1665 = extractvalue { ptr, i32 } %1663, 1
  store i32 %1665, ptr %8, align 4
  br label %1675

1666:                                             ; preds = %1659
  %1667 = landingpad { ptr, i32 }
          cleanup
  %1668 = extractvalue { ptr, i32 } %1667, 0
  store ptr %1668, ptr %7, align 8
  %1669 = extractvalue { ptr, i32 } %1667, 1
  store i32 %1669, ptr %8, align 4
  br label %1674

1670:                                             ; preds = %1660
  %1671 = landingpad { ptr, i32 }
          cleanup
  %1672 = extractvalue { ptr, i32 } %1671, 0
  store ptr %1672, ptr %7, align 8
  %1673 = extractvalue { ptr, i32 } %1671, 1
  store i32 %1673, ptr %8, align 4
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %111) #8
  br label %1674

1674:                                             ; preds = %1670, %1666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %1675

1675:                                             ; preds = %1674, %1662
  call void @llvm.lifetime.end.p0(i64 56, ptr %111) #8
  br label %1706

1676:                                             ; preds = %1649
  br label %1677

1677:                                             ; preds = %1676
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %113, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1678 unwind label %1682

1678:                                             ; preds = %1677
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %113, i32 noundef 0, ptr noundef %114)
          to label %1679 unwind label %1686

1679:                                             ; preds = %1678
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  %1680 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1680, ptr noundef @.str.5)
          to label %1681 unwind label %1691

1681:                                             ; preds = %1679
  invoke void @__cxa_throw(ptr %1680, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %1520

1682:                                             ; preds = %1677
  %1683 = landingpad { ptr, i32 }
          cleanup
  %1684 = extractvalue { ptr, i32 } %1683, 0
  store ptr %1684, ptr %7, align 8
  %1685 = extractvalue { ptr, i32 } %1683, 1
  store i32 %1685, ptr %8, align 4
  br label %1690

1686:                                             ; preds = %1678
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %7, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #8
  br label %1690

1690:                                             ; preds = %1686, %1682
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  br label %1706

1691:                                             ; preds = %1679
  %1692 = landingpad { ptr, i32 }
          cleanup
  %1693 = extractvalue { ptr, i32 } %1692, 0
  store ptr %1693, ptr %7, align 8
  %1694 = extractvalue { ptr, i32 } %1692, 1
  store i32 %1694, ptr %8, align 4
  call void @__cxa_free_exception(ptr %1680) #8
  br label %1706

1695:                                             ; No predecessors!
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696, %1661
  br label %1698

1698:                                             ; preds = %1697, %1590
  %1699 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 31)
          to label %1700 unwind label %1520

1700:                                             ; preds = %1698
  br i1 %1699, label %1702, label %1701

1701:                                             ; preds = %1700
  store i32 50, ptr %116, align 4
  br label %1703, !llvm.loop !22

1702:                                             ; preds = %1700
  store i32 0, ptr %116, align 4
  br label %1703

1703:                                             ; preds = %1702, %1701
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #8
  %1704 = load i32, ptr %116, align 4
  switch i32 %1704, label %3433 [
    i32 0, label %1705
    i32 50, label %1240
  ]

1705:                                             ; preds = %1703
  br label %1240, !llvm.loop !22

1706:                                             ; preds = %1691, %1690, %1675, %1646, %1599, %1550, %1532, %1520
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  br label %1707

1707:                                             ; preds = %1706, %1483, %1465, %1426, %1408, %1396
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #8
  br label %1770

1708:                                             ; preds = %1242
  br label %1709

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 88, ptr %117) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %117, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1710 unwind label %1736

1710:                                             ; preds = %1709
  %1711 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %117)
          to label %1712 unwind label %1740

1712:                                             ; preds = %1710
  %1713 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1711)
          to label %1714 unwind label %1740

1714:                                             ; preds = %1712
  %1715 = icmp ne i32 %1713, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %117) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %117) #8
  br i1 %1715, label %1716, label %1763

1716:                                             ; preds = %1714
  br label %1717

1717:                                             ; preds = %1716
  %1718 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1719 unwind label %1272

1719:                                             ; preds = %1717
  br i1 %1718, label %1720, label %1745

1720:                                             ; preds = %1719
  %1721 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1721, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1723 unwind label %1272

1723:                                             ; preds = %1720
  %1724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1722, ptr noundef @.str)
          to label %1725 unwind label %1272

1725:                                             ; preds = %1723
  %1726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1724, ptr noundef @.str.1)
          to label %1727 unwind label %1272

1727:                                             ; preds = %1725
  %1728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1726, ptr noundef @.str.2)
          to label %1729 unwind label %1272

1729:                                             ; preds = %1727
  %1730 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1728, i32 noundef 135)
          to label %1731 unwind label %1272

1731:                                             ; preds = %1729
  %1732 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1730, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1733 unwind label %1272

1733:                                             ; preds = %1731
  %1734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1732, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1735 unwind label %1272

1735:                                             ; preds = %1733
  br label %1745

1736:                                             ; preds = %1709
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %7, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %8, align 4
  br label %1744

1740:                                             ; preds = %1712, %1710
  %1741 = landingpad { ptr, i32 }
          cleanup
  %1742 = extractvalue { ptr, i32 } %1741, 0
  store ptr %1742, ptr %7, align 8
  %1743 = extractvalue { ptr, i32 } %1741, 1
  store i32 %1743, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %117) #8
  br label %1744

1744:                                             ; preds = %1740, %1736
  call void @llvm.lifetime.end.p0(i64 88, ptr %117) #8
  br label %1770

1745:                                             ; preds = %1735, %1719
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746
  store i1 true, ptr %119, align 1
  %1748 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %118, i32 noundef 26)
          to label %1749 unwind label %1751

1749:                                             ; preds = %1747
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1748, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %118)
          to label %1750 unwind label %1755

1750:                                             ; preds = %1749
  store i1 false, ptr %119, align 1
  invoke void @__cxa_throw(ptr %1748, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1755

1751:                                             ; preds = %1747
  %1752 = landingpad { ptr, i32 }
          cleanup
  %1753 = extractvalue { ptr, i32 } %1752, 0
  store ptr %1753, ptr %7, align 8
  %1754 = extractvalue { ptr, i32 } %1752, 1
  store i32 %1754, ptr %8, align 4
  br label %1759

1755:                                             ; preds = %1750, %1749
  %1756 = landingpad { ptr, i32 }
          cleanup
  %1757 = extractvalue { ptr, i32 } %1756, 0
  store ptr %1757, ptr %7, align 8
  %1758 = extractvalue { ptr, i32 } %1756, 1
  store i32 %1758, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %118) #8
  br label %1759

1759:                                             ; preds = %1755, %1751
  %1760 = load i1, ptr %119, align 1
  br i1 %1760, label %1761, label %1762

1761:                                             ; preds = %1759
  call void @__cxa_free_exception(ptr %1748) #8
  br label %1762

1762:                                             ; preds = %1761, %1759
  br label %1770

1763:                                             ; preds = %1714
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

1766:                                             ; preds = %1765, %1238
  %1767 = getelementptr inbounds %"class.HIR::Static", ptr %69, i32 0, i32 5
  %1768 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN14EncodedLiteralaSEOS_(ptr noundef nonnull align 8 dereferenceable(48) %1767, ptr noundef nonnull align 8 dereferenceable(48) %79) #8
  %1769 = getelementptr inbounds %"class.HIR::Static", ptr %69, i32 0, i32 6
  store i8 1, ptr %1769, align 8, !tbaa !23
  call void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %79) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %79) #8
  br label %1771

1770:                                             ; preds = %1762, %1744, %1707, %1359, %1341, %1302, %1284, %1272, %1235
  call void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %79) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %79) #8
  br label %1883

1771:                                             ; preds = %1766, %1149
  br label %1772

1772:                                             ; preds = %1771
  call void @llvm.lifetime.start.p0(i64 88, ptr %120) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %120, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1773 unwind label %1799

1773:                                             ; preds = %1772
  %1774 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %120)
          to label %1775 unwind label %1803

1775:                                             ; preds = %1773
  %1776 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1774)
          to label %1777 unwind label %1803

1777:                                             ; preds = %1775
  %1778 = icmp ne i32 %1776, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %120) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %120) #8
  br i1 %1778, label %1779, label %1826

1779:                                             ; preds = %1777
  br label %1780

1780:                                             ; preds = %1779
  %1781 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1782 unwind label %1110

1782:                                             ; preds = %1780
  br i1 %1781, label %1783, label %1808

1783:                                             ; preds = %1782
  %1784 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1784, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1786 unwind label %1110

1786:                                             ; preds = %1783
  %1787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1785, ptr noundef @.str)
          to label %1788 unwind label %1110

1788:                                             ; preds = %1786
  %1789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1787, ptr noundef @.str.1)
          to label %1790 unwind label %1110

1790:                                             ; preds = %1788
  %1791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1789, ptr noundef @.str.2)
          to label %1792 unwind label %1110

1792:                                             ; preds = %1790
  %1793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1791, i32 noundef 141)
          to label %1794 unwind label %1110

1794:                                             ; preds = %1792
  %1795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1793, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1796 unwind label %1110

1796:                                             ; preds = %1794
  %1797 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1795, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1798 unwind label %1110

1798:                                             ; preds = %1796
  br label %1808

1799:                                             ; preds = %1772
  %1800 = landingpad { ptr, i32 }
          cleanup
  %1801 = extractvalue { ptr, i32 } %1800, 0
  store ptr %1801, ptr %7, align 8
  %1802 = extractvalue { ptr, i32 } %1800, 1
  store i32 %1802, ptr %8, align 4
  br label %1807

1803:                                             ; preds = %1775, %1773
  %1804 = landingpad { ptr, i32 }
          cleanup
  %1805 = extractvalue { ptr, i32 } %1804, 0
  store ptr %1805, ptr %7, align 8
  %1806 = extractvalue { ptr, i32 } %1804, 1
  store i32 %1806, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %120) #8
  br label %1807

1807:                                             ; preds = %1803, %1799
  call void @llvm.lifetime.end.p0(i64 88, ptr %120) #8
  br label %1883

1808:                                             ; preds = %1798, %1782
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

1810:                                             ; preds = %1809
  store i1 true, ptr %122, align 1
  %1811 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %121, i32 noundef 32)
          to label %1812 unwind label %1814

1812:                                             ; preds = %1810
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1811, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %121)
          to label %1813 unwind label %1818

1813:                                             ; preds = %1812
  store i1 false, ptr %122, align 1
  invoke void @__cxa_throw(ptr %1811, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1818

1814:                                             ; preds = %1810
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = extractvalue { ptr, i32 } %1815, 0
  store ptr %1816, ptr %7, align 8
  %1817 = extractvalue { ptr, i32 } %1815, 1
  store i32 %1817, ptr %8, align 4
  br label %1822

1818:                                             ; preds = %1813, %1812
  %1819 = landingpad { ptr, i32 }
          cleanup
  %1820 = extractvalue { ptr, i32 } %1819, 0
  store ptr %1820, ptr %7, align 8
  %1821 = extractvalue { ptr, i32 } %1819, 1
  store i32 %1821, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #8
  br label %1822

1822:                                             ; preds = %1818, %1814
  %1823 = load i1, ptr %122, align 1
  br i1 %1823, label %1824, label %1825

1824:                                             ; preds = %1822
  call void @__cxa_free_exception(ptr %1811) #8
  br label %1825

1825:                                             ; preds = %1824, %1822
  br label %1883

1826:                                             ; preds = %1777
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 384, ptr %123) #8
  %1829 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %123, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %1829)
          to label %1830 unwind label %1847

1830:                                             ; preds = %1828
  store i1 true, ptr %125, align 1
  %1831 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %123, i32 0, i32 1
  invoke void @_ZN3HIR6StaticC2EOS0_(ptr noundef nonnull align 8 dereferenceable(360) %124, ptr noundef nonnull align 8 dereferenceable(360) %69)
          to label %1832 unwind label %1851

1832:                                             ; preds = %1830
  invoke void @_ZN3HIR9ValueItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(368) %1831, ptr noundef %124)
          to label %1833 unwind label %1855

1833:                                             ; preds = %1832
  store i1 false, ptr %125, align 1
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %124) #8
  %1834 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %1835 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1834)
          to label %1836 unwind label %1863

1836:                                             ; preds = %1833
  %1837 = getelementptr inbounds %"class.HIR::Crate", ptr %1835, i32 0, i32 2
  %1838 = getelementptr inbounds %"class.HIR::Module", ptr %1837, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.237") align 8 %127, ptr noundef nonnull align 8 dereferenceable(384) %123)
          to label %1839 unwind label %1867

1839:                                             ; preds = %1836
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.235") align 8 %126, ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %127)
          to label %1840 unwind label %1871

1840:                                             ; preds = %1839
  %1841 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1838, ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %1842 unwind label %1875

1842:                                             ; preds = %1840
  %1843 = getelementptr inbounds { ptr, i8 }, ptr %128, i32 0, i32 0
  %1844 = extractvalue { ptr, i8 } %1841, 0
  store ptr %1844, ptr %1843, align 8
  %1845 = getelementptr inbounds { ptr, i8 }, ptr %128, i32 0, i32 1
  %1846 = extractvalue { ptr, i8 } %1841, 1
  store i8 %1846, ptr %1845, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %123) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %123) #8
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %69) #8
  call void @llvm.lifetime.end.p0(i64 360, ptr %69) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  br label %3414

1847:                                             ; preds = %1828
  %1848 = landingpad { ptr, i32 }
          cleanup
  %1849 = extractvalue { ptr, i32 } %1848, 0
  store ptr %1849, ptr %7, align 8
  %1850 = extractvalue { ptr, i32 } %1848, 1
  store i32 %1850, ptr %8, align 4
  br label %1882

1851:                                             ; preds = %1830
  %1852 = landingpad { ptr, i32 }
          cleanup
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %7, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %8, align 4
  br label %1859

1855:                                             ; preds = %1832
  %1856 = landingpad { ptr, i32 }
          cleanup
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %7, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %8, align 4
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %124) #8
  br label %1859

1859:                                             ; preds = %1855, %1851
  %1860 = load i1, ptr %125, align 1
  br i1 %1860, label %1861, label %1862

1861:                                             ; preds = %1859
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1829) #8
  br label %1862

1862:                                             ; preds = %1861, %1859
  br label %1882

1863:                                             ; preds = %1833
  %1864 = landingpad { ptr, i32 }
          cleanup
  %1865 = extractvalue { ptr, i32 } %1864, 0
  store ptr %1865, ptr %7, align 8
  %1866 = extractvalue { ptr, i32 } %1864, 1
  store i32 %1866, ptr %8, align 4
  br label %1881

1867:                                             ; preds = %1836
  %1868 = landingpad { ptr, i32 }
          cleanup
  %1869 = extractvalue { ptr, i32 } %1868, 0
  store ptr %1869, ptr %7, align 8
  %1870 = extractvalue { ptr, i32 } %1868, 1
  store i32 %1870, ptr %8, align 4
  br label %1880

1871:                                             ; preds = %1839
  %1872 = landingpad { ptr, i32 }
          cleanup
  %1873 = extractvalue { ptr, i32 } %1872, 0
  store ptr %1873, ptr %7, align 8
  %1874 = extractvalue { ptr, i32 } %1872, 1
  store i32 %1874, ptr %8, align 4
  br label %1879

1875:                                             ; preds = %1840
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %7, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #8
  br label %1879

1879:                                             ; preds = %1875, %1871
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  br label %1880

1880:                                             ; preds = %1879, %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  br label %1881

1881:                                             ; preds = %1880, %1863
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %123) #8
  br label %1882

1882:                                             ; preds = %1881, %1862, %1847
  call void @llvm.lifetime.end.p0(i64 384, ptr %123) #8
  br label %1883

1883:                                             ; preds = %1882, %1825, %1807, %1770, %1204, %1186, %1140, %1122, %1110
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %69) #8
  br label %1884

1884:                                             ; preds = %1883, %1109
  call void @llvm.lifetime.end.p0(i64 360, ptr %69) #8
  br label %1885

1885:                                             ; preds = %1884, %1057, %1036, %1035
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  br label %1886

1886:                                             ; preds = %1885, %1023
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  br label %1887

1887:                                             ; preds = %1886, %991, %970, %969
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  br label %1888

1888:                                             ; preds = %1887, %957
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %1889

1889:                                             ; preds = %1888, %922, %904, %892
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  br label %3419

1890:                                             ; preds = %860
  %1891 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 83)
          to label %1892 unwind label %338

1892:                                             ; preds = %1890
  br i1 %1891, label %1893, label %2070

1893:                                             ; preds = %1892
  br label %1894

1894:                                             ; preds = %1893
  call void @llvm.lifetime.start.p0(i64 88, ptr %129) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %129, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1895 unwind label %1921

1895:                                             ; preds = %1894
  %1896 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %129)
          to label %1897 unwind label %1925

1897:                                             ; preds = %1895
  %1898 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1896)
          to label %1899 unwind label %1925

1899:                                             ; preds = %1897
  %1900 = icmp ne i32 %1898, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %129) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %129) #8
  br i1 %1900, label %1901, label %1948

1901:                                             ; preds = %1899
  br label %1902

1902:                                             ; preds = %1901
  %1903 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1904 unwind label %338

1904:                                             ; preds = %1902
  br i1 %1903, label %1905, label %1930

1905:                                             ; preds = %1904
  %1906 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1906, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1908 unwind label %338

1908:                                             ; preds = %1905
  %1909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1907, ptr noundef @.str)
          to label %1910 unwind label %338

1910:                                             ; preds = %1908
  %1911 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1909, ptr noundef @.str.1)
          to label %1912 unwind label %338

1912:                                             ; preds = %1910
  %1913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1911, ptr noundef @.str.2)
          to label %1914 unwind label %338

1914:                                             ; preds = %1912
  %1915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1913, i32 noundef 151)
          to label %1916 unwind label %338

1916:                                             ; preds = %1914
  %1917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1915, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1918 unwind label %338

1918:                                             ; preds = %1916
  %1919 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1917, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1920 unwind label %338

1920:                                             ; preds = %1918
  br label %1930

1921:                                             ; preds = %1894
  %1922 = landingpad { ptr, i32 }
          cleanup
  %1923 = extractvalue { ptr, i32 } %1922, 0
  store ptr %1923, ptr %7, align 8
  %1924 = extractvalue { ptr, i32 } %1922, 1
  store i32 %1924, ptr %8, align 4
  br label %1929

1925:                                             ; preds = %1897, %1895
  %1926 = landingpad { ptr, i32 }
          cleanup
  %1927 = extractvalue { ptr, i32 } %1926, 0
  store ptr %1927, ptr %7, align 8
  %1928 = extractvalue { ptr, i32 } %1926, 1
  store i32 %1928, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %129) #8
  br label %1929

1929:                                             ; preds = %1925, %1921
  call void @llvm.lifetime.end.p0(i64 88, ptr %129) #8
  br label %3419

1930:                                             ; preds = %1920, %1904
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  store i1 true, ptr %131, align 1
  %1933 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %130, i32 noundef 19)
          to label %1934 unwind label %1936

1934:                                             ; preds = %1932
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1933, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %130)
          to label %1935 unwind label %1940

1935:                                             ; preds = %1934
  store i1 false, ptr %131, align 1
  invoke void @__cxa_throw(ptr %1933, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %1940

1936:                                             ; preds = %1932
  %1937 = landingpad { ptr, i32 }
          cleanup
  %1938 = extractvalue { ptr, i32 } %1937, 0
  store ptr %1938, ptr %7, align 8
  %1939 = extractvalue { ptr, i32 } %1937, 1
  store i32 %1939, ptr %8, align 4
  br label %1944

1940:                                             ; preds = %1935, %1934
  %1941 = landingpad { ptr, i32 }
          cleanup
  %1942 = extractvalue { ptr, i32 } %1941, 0
  store ptr %1942, ptr %7, align 8
  %1943 = extractvalue { ptr, i32 } %1941, 1
  store i32 %1943, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #8
  br label %1944

1944:                                             ; preds = %1940, %1936
  %1945 = load i1, ptr %131, align 1
  br i1 %1945, label %1946, label %1947

1946:                                             ; preds = %1944
  call void @__cxa_free_exception(ptr %1933) #8
  br label %1947

1947:                                             ; preds = %1946, %1944
  br label %3419

1948:                                             ; preds = %1899
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #8
  %1951 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %1952 unwind label %1981

1952:                                             ; preds = %1950
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %1951)
          to label %1953 unwind label %1981

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 88, ptr %133) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %133, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %1955 unwind label %1985

1955:                                             ; preds = %1954
  %1956 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %133)
          to label %1957 unwind label %1989

1957:                                             ; preds = %1955
  %1958 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1956)
          to label %1959 unwind label %1989

1959:                                             ; preds = %1957
  %1960 = icmp ne i32 %1958, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %133) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %133) #8
  br i1 %1960, label %1961, label %2016

1961:                                             ; preds = %1959
  br label %1962

1962:                                             ; preds = %1961
  %1963 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1964 unwind label %1994

1964:                                             ; preds = %1962
  br i1 %1963, label %1965, label %1998

1965:                                             ; preds = %1964
  %1966 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1967 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1966, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1968 unwind label %1994

1968:                                             ; preds = %1965
  %1969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1967, ptr noundef @.str)
          to label %1970 unwind label %1994

1970:                                             ; preds = %1968
  %1971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1969, ptr noundef @.str.1)
          to label %1972 unwind label %1994

1972:                                             ; preds = %1970
  %1973 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1971, ptr noundef @.str.2)
          to label %1974 unwind label %1994

1974:                                             ; preds = %1972
  %1975 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1973, i32 noundef 153)
          to label %1976 unwind label %1994

1976:                                             ; preds = %1974
  %1977 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1975, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1978 unwind label %1994

1978:                                             ; preds = %1976
  %1979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1977, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1980 unwind label %1994

1980:                                             ; preds = %1978
  br label %1998

1981:                                             ; preds = %1952, %1950
  %1982 = landingpad { ptr, i32 }
          cleanup
  %1983 = extractvalue { ptr, i32 } %1982, 0
  store ptr %1983, ptr %7, align 8
  %1984 = extractvalue { ptr, i32 } %1982, 1
  store i32 %1984, ptr %8, align 4
  br label %2069

1985:                                             ; preds = %1954
  %1986 = landingpad { ptr, i32 }
          cleanup
  %1987 = extractvalue { ptr, i32 } %1986, 0
  store ptr %1987, ptr %7, align 8
  %1988 = extractvalue { ptr, i32 } %1986, 1
  store i32 %1988, ptr %8, align 4
  br label %1993

1989:                                             ; preds = %1957, %1955
  %1990 = landingpad { ptr, i32 }
          cleanup
  %1991 = extractvalue { ptr, i32 } %1990, 0
  store ptr %1991, ptr %7, align 8
  %1992 = extractvalue { ptr, i32 } %1990, 1
  store i32 %1992, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %133) #8
  br label %1993

1993:                                             ; preds = %1989, %1985
  call void @llvm.lifetime.end.p0(i64 88, ptr %133) #8
  br label %2068

1994:                                             ; preds = %2018, %1978, %1976, %1974, %1972, %1970, %1968, %1965, %1962
  %1995 = landingpad { ptr, i32 }
          cleanup
  %1996 = extractvalue { ptr, i32 } %1995, 0
  store ptr %1996, ptr %7, align 8
  %1997 = extractvalue { ptr, i32 } %1995, 1
  store i32 %1997, ptr %8, align 4
  br label %2068

1998:                                             ; preds = %1980, %1964
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  store i1 true, ptr %135, align 1
  %2001 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %134, i32 noundef 32)
          to label %2002 unwind label %2004

2002:                                             ; preds = %2000
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2001, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %134)
          to label %2003 unwind label %2008

2003:                                             ; preds = %2002
  store i1 false, ptr %135, align 1
  invoke void @__cxa_throw(ptr %2001, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2008

2004:                                             ; preds = %2000
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %7, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %8, align 4
  br label %2012

2008:                                             ; preds = %2003, %2002
  %2009 = landingpad { ptr, i32 }
          cleanup
  %2010 = extractvalue { ptr, i32 } %2009, 0
  store ptr %2010, ptr %7, align 8
  %2011 = extractvalue { ptr, i32 } %2009, 1
  store i32 %2011, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %134) #8
  br label %2012

2012:                                             ; preds = %2008, %2004
  %2013 = load i1, ptr %135, align 1
  br i1 %2013, label %2014, label %2015

2014:                                             ; preds = %2012
  call void @__cxa_free_exception(ptr %2001) #8
  br label %2015

2015:                                             ; preds = %2014, %2012
  br label %2068

2016:                                             ; preds = %1959
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

2018:                                             ; preds = %2017
  %2019 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %2020 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %2019)
          to label %2021 unwind label %1994

2021:                                             ; preds = %2018
  %2022 = getelementptr inbounds %"class.HIR::Crate", ptr %2020, i32 0, i32 16
  call void @llvm.lifetime.start.p0(i64 80, ptr %136) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #8
  invoke void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137)
          to label %2023 unwind label %2037

2023:                                             ; preds = %2021
  call void @llvm.lifetime.start.p0(i64 72, ptr %138) #8
  %2024 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %138, i32 0, i32 0
  invoke void @_ZN3HIR8CratePtrC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2024)
          to label %2025 unwind label %2041

2025:                                             ; preds = %2023
  store i1 true, ptr %140, align 1
  %2026 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %138, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2026, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %2027 unwind label %2045

2027:                                             ; preds = %2025
  %2028 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %138, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2028, ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %2029 unwind label %2049

2029:                                             ; preds = %2027
  store i1 false, ptr %140, align 1
  invoke void @_ZSt9make_pairI8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.272") align 8 %136, ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(72) %138)
          to label %2030 unwind label %2053

2030:                                             ; preds = %2029
  %2031 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56) %2022, ptr noundef nonnull align 8 dereferenceable(80) %136)
          to label %2032 unwind label %2057

2032:                                             ; preds = %2030
  %2033 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 0
  %2034 = extractvalue { ptr, i8 } %2031, 0
  store ptr %2034, ptr %2033, align 8
  %2035 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 1
  %2036 = extractvalue { ptr, i8 } %2031, 1
  store i8 %2036, ptr %2035, align 8
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %136) #8
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %138) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr %138) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %136) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %3413

2037:                                             ; preds = %2021
  %2038 = landingpad { ptr, i32 }
          cleanup
  %2039 = extractvalue { ptr, i32 } %2038, 0
  store ptr %2039, ptr %7, align 8
  %2040 = extractvalue { ptr, i32 } %2038, 1
  store i32 %2040, ptr %8, align 4
  br label %2067

2041:                                             ; preds = %2023
  %2042 = landingpad { ptr, i32 }
          cleanup
  %2043 = extractvalue { ptr, i32 } %2042, 0
  store ptr %2043, ptr %7, align 8
  %2044 = extractvalue { ptr, i32 } %2042, 1
  store i32 %2044, ptr %8, align 4
  br label %2066

2045:                                             ; preds = %2025
  %2046 = landingpad { ptr, i32 }
          cleanup
  %2047 = extractvalue { ptr, i32 } %2046, 0
  store ptr %2047, ptr %7, align 8
  %2048 = extractvalue { ptr, i32 } %2046, 1
  store i32 %2048, ptr %8, align 4
  br label %2062

2049:                                             ; preds = %2027
  %2050 = landingpad { ptr, i32 }
          cleanup
  %2051 = extractvalue { ptr, i32 } %2050, 0
  store ptr %2051, ptr %7, align 8
  %2052 = extractvalue { ptr, i32 } %2050, 1
  store i32 %2052, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2026) #8
  br label %2062

2053:                                             ; preds = %2029
  %2054 = landingpad { ptr, i32 }
          cleanup
  %2055 = extractvalue { ptr, i32 } %2054, 0
  store ptr %2055, ptr %7, align 8
  %2056 = extractvalue { ptr, i32 } %2054, 1
  store i32 %2056, ptr %8, align 4
  br label %2061

2057:                                             ; preds = %2030
  %2058 = landingpad { ptr, i32 }
          cleanup
  %2059 = extractvalue { ptr, i32 } %2058, 0
  store ptr %2059, ptr %7, align 8
  %2060 = extractvalue { ptr, i32 } %2058, 1
  store i32 %2060, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %136) #8
  br label %2061

2061:                                             ; preds = %2057, %2053
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %138) #8
  br label %2062

2062:                                             ; preds = %2061, %2049, %2045
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  %2063 = load i1, ptr %140, align 1
  br i1 %2063, label %2064, label %2065

2064:                                             ; preds = %2062
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2024) #8
  br label %2065

2065:                                             ; preds = %2064, %2062
  br label %2066

2066:                                             ; preds = %2065, %2041
  call void @llvm.lifetime.end.p0(i64 72, ptr %138) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #8
  br label %2067

2067:                                             ; preds = %2066, %2037
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %136) #8
  br label %2068

2068:                                             ; preds = %2067, %2015, %1994, %1993
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %2069

2069:                                             ; preds = %2068, %1981
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %3419

2070:                                             ; preds = %1892
  %2071 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 91)
          to label %2072 unwind label %338

2072:                                             ; preds = %2070
  br i1 %2071, label %2073, label %3370

2073:                                             ; preds = %2072
  call void @llvm.lifetime.start.p0(i64 112, ptr %142) #8
  invoke void @_ZN8TypeReprC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %142)
          to label %2074 unwind label %2102

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074
  call void @llvm.lifetime.start.p0(i64 88, ptr %143) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %143, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2076 unwind label %2106

2076:                                             ; preds = %2075
  %2077 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %143)
          to label %2078 unwind label %2110

2078:                                             ; preds = %2076
  %2079 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2077)
          to label %2080 unwind label %2110

2080:                                             ; preds = %2078
  %2081 = icmp ne i32 %2079, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %143) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %143) #8
  br i1 %2081, label %2082, label %2137

2082:                                             ; preds = %2080
  br label %2083

2083:                                             ; preds = %2082
  %2084 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2085 unwind label %2115

2085:                                             ; preds = %2083
  br i1 %2084, label %2086, label %2119

2086:                                             ; preds = %2085
  %2087 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2088 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2087, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2089 unwind label %2115

2089:                                             ; preds = %2086
  %2090 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2088, ptr noundef @.str)
          to label %2091 unwind label %2115

2091:                                             ; preds = %2089
  %2092 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2090, ptr noundef @.str.1)
          to label %2093 unwind label %2115

2093:                                             ; preds = %2091
  %2094 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2092, ptr noundef @.str.2)
          to label %2095 unwind label %2115

2095:                                             ; preds = %2093
  %2096 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2094, i32 noundef 164)
          to label %2097 unwind label %2115

2097:                                             ; preds = %2095
  %2098 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2096, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2099 unwind label %2115

2099:                                             ; preds = %2097
  %2100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2098, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2101 unwind label %2115

2101:                                             ; preds = %2099
  br label %2119

2102:                                             ; preds = %2073
  %2103 = landingpad { ptr, i32 }
          cleanup
  %2104 = extractvalue { ptr, i32 } %2103, 0
  store ptr %2104, ptr %7, align 8
  %2105 = extractvalue { ptr, i32 } %2103, 1
  store i32 %2105, ptr %8, align 4
  br label %3369

2106:                                             ; preds = %2075
  %2107 = landingpad { ptr, i32 }
          cleanup
  %2108 = extractvalue { ptr, i32 } %2107, 0
  store ptr %2108, ptr %7, align 8
  %2109 = extractvalue { ptr, i32 } %2107, 1
  store i32 %2109, ptr %8, align 4
  br label %2114

2110:                                             ; preds = %2078, %2076
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %7, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %143) #8
  br label %2114

2114:                                             ; preds = %2110, %2106
  call void @llvm.lifetime.end.p0(i64 88, ptr %143) #8
  br label %3368

2115:                                             ; preds = %2099, %2097, %2095, %2093, %2091, %2089, %2086, %2083
  %2116 = landingpad { ptr, i32 }
          cleanup
  %2117 = extractvalue { ptr, i32 } %2116, 0
  store ptr %2117, ptr %7, align 8
  %2118 = extractvalue { ptr, i32 } %2116, 1
  store i32 %2118, ptr %8, align 4
  br label %3368

2119:                                             ; preds = %2101, %2085
  br label %2120

2120:                                             ; preds = %2119
  br label %2121

2121:                                             ; preds = %2120
  store i1 true, ptr %145, align 1
  %2122 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %144, i32 noundef 14)
          to label %2123 unwind label %2125

2123:                                             ; preds = %2121
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2122, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %144)
          to label %2124 unwind label %2129

2124:                                             ; preds = %2123
  store i1 false, ptr %145, align 1
  invoke void @__cxa_throw(ptr %2122, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2129

2125:                                             ; preds = %2121
  %2126 = landingpad { ptr, i32 }
          cleanup
  %2127 = extractvalue { ptr, i32 } %2126, 0
  store ptr %2127, ptr %7, align 8
  %2128 = extractvalue { ptr, i32 } %2126, 1
  store i32 %2128, ptr %8, align 4
  br label %2133

2129:                                             ; preds = %2124, %2123
  %2130 = landingpad { ptr, i32 }
          cleanup
  %2131 = extractvalue { ptr, i32 } %2130, 0
  store ptr %2131, ptr %7, align 8
  %2132 = extractvalue { ptr, i32 } %2130, 1
  store i32 %2132, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %144) #8
  br label %2133

2133:                                             ; preds = %2129, %2125
  %2134 = load i1, ptr %145, align 1
  br i1 %2134, label %2135, label %2136

2135:                                             ; preds = %2133
  call void @__cxa_free_exception(ptr %2122) #8
  br label %2136

2136:                                             ; preds = %2135, %2133
  br label %3368

2137:                                             ; preds = %2080
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #8
  %2140 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %2141 unwind label %2175

2141:                                             ; preds = %2139
  %2142 = getelementptr inbounds %struct.Ident, ptr %2140, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %2142)
          to label %2143 unwind label %2175

2143:                                             ; preds = %2141
  %2144 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 0)
          to label %2145 unwind label %2179

2145:                                             ; preds = %2143
  %2146 = icmp eq i32 %2144, 32
  br i1 %2146, label %2147, label %2261

2147:                                             ; preds = %2145
  br label %2148

2148:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 88, ptr %147) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %147, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2149 unwind label %2183

2149:                                             ; preds = %2148
  %2150 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %147)
          to label %2151 unwind label %2187

2151:                                             ; preds = %2149
  %2152 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2150)
          to label %2153 unwind label %2187

2153:                                             ; preds = %2151
  %2154 = icmp ne i32 %2152, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %147) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %147) #8
  br i1 %2154, label %2155, label %2210

2155:                                             ; preds = %2153
  br label %2156

2156:                                             ; preds = %2155
  %2157 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2158 unwind label %2179

2158:                                             ; preds = %2156
  br i1 %2157, label %2159, label %2192

2159:                                             ; preds = %2158
  %2160 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2160, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2162 unwind label %2179

2162:                                             ; preds = %2159
  %2163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2161, ptr noundef @.str)
          to label %2164 unwind label %2179

2164:                                             ; preds = %2162
  %2165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2163, ptr noundef @.str.1)
          to label %2166 unwind label %2179

2166:                                             ; preds = %2164
  %2167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2165, ptr noundef @.str.2)
          to label %2168 unwind label %2179

2168:                                             ; preds = %2166
  %2169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2167, i32 noundef 167)
          to label %2170 unwind label %2179

2170:                                             ; preds = %2168
  %2171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2169, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2172 unwind label %2179

2172:                                             ; preds = %2170
  %2173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2171, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2174 unwind label %2179

2174:                                             ; preds = %2172
  br label %2192

2175:                                             ; preds = %2141, %2139
  %2176 = landingpad { ptr, i32 }
          cleanup
  %2177 = extractvalue { ptr, i32 } %2176, 0
  store ptr %2177, ptr %7, align 8
  %2178 = extractvalue { ptr, i32 } %2176, 1
  store i32 %2178, ptr %8, align 4
  br label %3367

2179:                                             ; preds = %2400, %2398, %2396, %2394, %2392, %2390, %2387, %2384, %2343, %2341, %2339, %2337, %2335, %2333, %2330, %2327, %2286, %2284, %2282, %2280, %2278, %2276, %2273, %2270, %2172, %2170, %2168, %2166, %2164, %2162, %2159, %2156, %2143
  %2180 = landingpad { ptr, i32 }
          cleanup
  %2181 = extractvalue { ptr, i32 } %2180, 0
  store ptr %2181, ptr %7, align 8
  %2182 = extractvalue { ptr, i32 } %2180, 1
  store i32 %2182, ptr %8, align 4
  br label %3366

2183:                                             ; preds = %2148
  %2184 = landingpad { ptr, i32 }
          cleanup
  %2185 = extractvalue { ptr, i32 } %2184, 0
  store ptr %2185, ptr %7, align 8
  %2186 = extractvalue { ptr, i32 } %2184, 1
  store i32 %2186, ptr %8, align 4
  br label %2191

2187:                                             ; preds = %2151, %2149
  %2188 = landingpad { ptr, i32 }
          cleanup
  %2189 = extractvalue { ptr, i32 } %2188, 0
  store ptr %2189, ptr %7, align 8
  %2190 = extractvalue { ptr, i32 } %2188, 1
  store i32 %2190, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %147) #8
  br label %2191

2191:                                             ; preds = %2187, %2183
  call void @llvm.lifetime.end.p0(i64 88, ptr %147) #8
  br label %3366

2192:                                             ; preds = %2174, %2158
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

2194:                                             ; preds = %2193
  store i1 true, ptr %149, align 1
  %2195 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %148, i32 noundef 32)
          to label %2196 unwind label %2198

2196:                                             ; preds = %2194
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2195, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %148)
          to label %2197 unwind label %2202

2197:                                             ; preds = %2196
  store i1 false, ptr %149, align 1
  invoke void @__cxa_throw(ptr %2195, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2202

2198:                                             ; preds = %2194
  %2199 = landingpad { ptr, i32 }
          cleanup
  %2200 = extractvalue { ptr, i32 } %2199, 0
  store ptr %2200, ptr %7, align 8
  %2201 = extractvalue { ptr, i32 } %2199, 1
  store i32 %2201, ptr %8, align 4
  br label %2206

2202:                                             ; preds = %2197, %2196
  %2203 = landingpad { ptr, i32 }
          cleanup
  %2204 = extractvalue { ptr, i32 } %2203, 0
  store ptr %2204, ptr %7, align 8
  %2205 = extractvalue { ptr, i32 } %2203, 1
  store i32 %2205, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %148) #8
  br label %2206

2206:                                             ; preds = %2202, %2198
  %2207 = load i1, ptr %149, align 1
  br i1 %2207, label %2208, label %2209

2208:                                             ; preds = %2206
  call void @__cxa_free_exception(ptr %2195) #8
  br label %2209

2209:                                             ; preds = %2208, %2206
  br label %3366

2210:                                             ; preds = %2153
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

2212:                                             ; preds = %2211
  call void @llvm.lifetime.start.p0(i64 56, ptr %150) #8
  call void @_ZN3HIR10ExternTypeC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %150) #8
  call void @llvm.lifetime.start.p0(i64 424, ptr %151) #8
  %2213 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %151, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %2213)
          to label %2214 unwind label %2230

2214:                                             ; preds = %2212
  store i1 true, ptr %153, align 1
  %2215 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %151, i32 0, i32 1
  call void @_ZN3HIR10ExternTypeC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %152, ptr noundef nonnull align 8 dereferenceable(56) %150) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_10ExternTypeE(ptr noundef nonnull align 8 dereferenceable(408) %2215, ptr noundef %152)
          to label %2216 unwind label %2234

2216:                                             ; preds = %2214
  store i1 false, ptr %153, align 1
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %152) #8
  %2217 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %2218 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %2217)
          to label %2219 unwind label %2241

2219:                                             ; preds = %2216
  %2220 = getelementptr inbounds %"class.HIR::Crate", ptr %2218, i32 0, i32 2
  %2221 = getelementptr inbounds %"class.HIR::Module", ptr %2220, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.377") align 8 %155, ptr noundef nonnull align 8 dereferenceable(424) %151)
          to label %2222 unwind label %2245

2222:                                             ; preds = %2219
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.375") align 8 %154, ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %2223 unwind label %2249

2223:                                             ; preds = %2222
  %2224 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %2221, ptr noundef nonnull align 8 dereferenceable(16) %154)
          to label %2225 unwind label %2253

2225:                                             ; preds = %2223
  %2226 = getelementptr inbounds { ptr, i8 }, ptr %156, i32 0, i32 0
  %2227 = extractvalue { ptr, i8 } %2224, 0
  store ptr %2227, ptr %2226, align 8
  %2228 = getelementptr inbounds { ptr, i8 }, ptr %156, i32 0, i32 1
  %2229 = extractvalue { ptr, i8 } %2224, 1
  store i8 %2229, ptr %2228, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #8
  store i32 2, ptr %116, align 4
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %151) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr %151) #8
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %150) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %150) #8
  br label %3361

2230:                                             ; preds = %2212
  %2231 = landingpad { ptr, i32 }
          cleanup
  %2232 = extractvalue { ptr, i32 } %2231, 0
  store ptr %2232, ptr %7, align 8
  %2233 = extractvalue { ptr, i32 } %2231, 1
  store i32 %2233, ptr %8, align 4
  br label %2260

2234:                                             ; preds = %2214
  %2235 = landingpad { ptr, i32 }
          cleanup
  %2236 = extractvalue { ptr, i32 } %2235, 0
  store ptr %2236, ptr %7, align 8
  %2237 = extractvalue { ptr, i32 } %2235, 1
  store i32 %2237, ptr %8, align 4
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %152) #8
  %2238 = load i1, ptr %153, align 1
  br i1 %2238, label %2239, label %2240

2239:                                             ; preds = %2234
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2213) #8
  br label %2240

2240:                                             ; preds = %2239, %2234
  br label %2260

2241:                                             ; preds = %2216
  %2242 = landingpad { ptr, i32 }
          cleanup
  %2243 = extractvalue { ptr, i32 } %2242, 0
  store ptr %2243, ptr %7, align 8
  %2244 = extractvalue { ptr, i32 } %2242, 1
  store i32 %2244, ptr %8, align 4
  br label %2259

2245:                                             ; preds = %2219
  %2246 = landingpad { ptr, i32 }
          cleanup
  %2247 = extractvalue { ptr, i32 } %2246, 0
  store ptr %2247, ptr %7, align 8
  %2248 = extractvalue { ptr, i32 } %2246, 1
  store i32 %2248, ptr %8, align 4
  br label %2258

2249:                                             ; preds = %2222
  %2250 = landingpad { ptr, i32 }
          cleanup
  %2251 = extractvalue { ptr, i32 } %2250, 0
  store ptr %2251, ptr %7, align 8
  %2252 = extractvalue { ptr, i32 } %2250, 1
  store i32 %2252, ptr %8, align 4
  br label %2257

2253:                                             ; preds = %2223
  %2254 = landingpad { ptr, i32 }
          cleanup
  %2255 = extractvalue { ptr, i32 } %2254, 0
  store ptr %2255, ptr %7, align 8
  %2256 = extractvalue { ptr, i32 } %2254, 1
  store i32 %2256, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #8
  br label %2257

2257:                                             ; preds = %2253, %2249
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #8
  br label %2258

2258:                                             ; preds = %2257, %2245
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #8
  br label %2259

2259:                                             ; preds = %2258, %2241
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %151) #8
  br label %2260

2260:                                             ; preds = %2259, %2240, %2230
  call void @llvm.lifetime.end.p0(i64 424, ptr %151) #8
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %150) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %150) #8
  br label %3366

2261:                                             ; preds = %2145
  br label %2262

2262:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 88, ptr %157) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %157, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2263 unwind label %2289

2263:                                             ; preds = %2262
  %2264 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %157)
          to label %2265 unwind label %2293

2265:                                             ; preds = %2263
  %2266 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2264)
          to label %2267 unwind label %2293

2267:                                             ; preds = %2265
  %2268 = icmp ne i32 %2266, 25
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %157) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %157) #8
  br i1 %2268, label %2269, label %2316

2269:                                             ; preds = %2267
  br label %2270

2270:                                             ; preds = %2269
  %2271 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2272 unwind label %2179

2272:                                             ; preds = %2270
  br i1 %2271, label %2273, label %2298

2273:                                             ; preds = %2272
  %2274 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2274, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2276 unwind label %2179

2276:                                             ; preds = %2273
  %2277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2275, ptr noundef @.str)
          to label %2278 unwind label %2179

2278:                                             ; preds = %2276
  %2279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2277, ptr noundef @.str.1)
          to label %2280 unwind label %2179

2280:                                             ; preds = %2278
  %2281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2279, ptr noundef @.str.2)
          to label %2282 unwind label %2179

2282:                                             ; preds = %2280
  %2283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2281, i32 noundef 178)
          to label %2284 unwind label %2179

2284:                                             ; preds = %2282
  %2285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2283, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2286 unwind label %2179

2286:                                             ; preds = %2284
  %2287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2285, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2288 unwind label %2179

2288:                                             ; preds = %2286
  br label %2298

2289:                                             ; preds = %2262
  %2290 = landingpad { ptr, i32 }
          cleanup
  %2291 = extractvalue { ptr, i32 } %2290, 0
  store ptr %2291, ptr %7, align 8
  %2292 = extractvalue { ptr, i32 } %2290, 1
  store i32 %2292, ptr %8, align 4
  br label %2297

2293:                                             ; preds = %2265, %2263
  %2294 = landingpad { ptr, i32 }
          cleanup
  %2295 = extractvalue { ptr, i32 } %2294, 0
  store ptr %2295, ptr %7, align 8
  %2296 = extractvalue { ptr, i32 } %2294, 1
  store i32 %2296, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %157) #8
  br label %2297

2297:                                             ; preds = %2293, %2289
  call void @llvm.lifetime.end.p0(i64 88, ptr %157) #8
  br label %3366

2298:                                             ; preds = %2288, %2272
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  store i1 true, ptr %159, align 1
  %2301 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %158, i32 noundef 25)
          to label %2302 unwind label %2304

2302:                                             ; preds = %2300
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2301, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %158)
          to label %2303 unwind label %2308

2303:                                             ; preds = %2302
  store i1 false, ptr %159, align 1
  invoke void @__cxa_throw(ptr %2301, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2308

2304:                                             ; preds = %2300
  %2305 = landingpad { ptr, i32 }
          cleanup
  %2306 = extractvalue { ptr, i32 } %2305, 0
  store ptr %2306, ptr %7, align 8
  %2307 = extractvalue { ptr, i32 } %2305, 1
  store i32 %2307, ptr %8, align 4
  br label %2312

2308:                                             ; preds = %2303, %2302
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %7, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %158) #8
  br label %2312

2312:                                             ; preds = %2308, %2304
  %2313 = load i1, ptr %159, align 1
  br i1 %2313, label %2314, label %2315

2314:                                             ; preds = %2312
  call void @__cxa_free_exception(ptr %2301) #8
  br label %2315

2315:                                             ; preds = %2314, %2312
  br label %3366

2316:                                             ; preds = %2267
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318
  call void @llvm.lifetime.start.p0(i64 88, ptr %160) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %160, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2320 unwind label %2346

2320:                                             ; preds = %2319
  %2321 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %160)
          to label %2322 unwind label %2350

2322:                                             ; preds = %2320
  %2323 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2321)
          to label %2324 unwind label %2350

2324:                                             ; preds = %2322
  %2325 = icmp ne i32 %2323, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %160) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %160) #8
  br i1 %2325, label %2326, label %2373

2326:                                             ; preds = %2324
  br label %2327

2327:                                             ; preds = %2326
  %2328 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2329 unwind label %2179

2329:                                             ; preds = %2327
  br i1 %2328, label %2330, label %2355

2330:                                             ; preds = %2329
  %2331 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2331, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2333 unwind label %2179

2333:                                             ; preds = %2330
  %2334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2332, ptr noundef @.str)
          to label %2335 unwind label %2179

2335:                                             ; preds = %2333
  %2336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2334, ptr noundef @.str.1)
          to label %2337 unwind label %2179

2337:                                             ; preds = %2335
  %2338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2336, ptr noundef @.str.2)
          to label %2339 unwind label %2179

2339:                                             ; preds = %2337
  %2340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2338, i32 noundef 179)
          to label %2341 unwind label %2179

2341:                                             ; preds = %2339
  %2342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2340, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2343 unwind label %2179

2343:                                             ; preds = %2341
  %2344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2342, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2345 unwind label %2179

2345:                                             ; preds = %2343
  br label %2355

2346:                                             ; preds = %2319
  %2347 = landingpad { ptr, i32 }
          cleanup
  %2348 = extractvalue { ptr, i32 } %2347, 0
  store ptr %2348, ptr %7, align 8
  %2349 = extractvalue { ptr, i32 } %2347, 1
  store i32 %2349, ptr %8, align 4
  br label %2354

2350:                                             ; preds = %2322, %2320
  %2351 = landingpad { ptr, i32 }
          cleanup
  %2352 = extractvalue { ptr, i32 } %2351, 0
  store ptr %2352, ptr %7, align 8
  %2353 = extractvalue { ptr, i32 } %2351, 1
  store i32 %2353, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %160) #8
  br label %2354

2354:                                             ; preds = %2350, %2346
  call void @llvm.lifetime.end.p0(i64 88, ptr %160) #8
  br label %3366

2355:                                             ; preds = %2345, %2329
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  store i1 true, ptr %162, align 1
  %2358 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %161, i32 noundef 14)
          to label %2359 unwind label %2361

2359:                                             ; preds = %2357
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2358, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %161)
          to label %2360 unwind label %2365

2360:                                             ; preds = %2359
  store i1 false, ptr %162, align 1
  invoke void @__cxa_throw(ptr %2358, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2365

2361:                                             ; preds = %2357
  %2362 = landingpad { ptr, i32 }
          cleanup
  %2363 = extractvalue { ptr, i32 } %2362, 0
  store ptr %2363, ptr %7, align 8
  %2364 = extractvalue { ptr, i32 } %2362, 1
  store i32 %2364, ptr %8, align 4
  br label %2369

2365:                                             ; preds = %2360, %2359
  %2366 = landingpad { ptr, i32 }
          cleanup
  %2367 = extractvalue { ptr, i32 } %2366, 0
  store ptr %2367, ptr %7, align 8
  %2368 = extractvalue { ptr, i32 } %2366, 1
  store i32 %2368, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %161) #8
  br label %2369

2369:                                             ; preds = %2365, %2361
  %2370 = load i1, ptr %162, align 1
  br i1 %2370, label %2371, label %2372

2371:                                             ; preds = %2369
  call void @__cxa_free_exception(ptr %2358) #8
  br label %2372

2372:                                             ; preds = %2371, %2369
  br label %3366

2373:                                             ; preds = %2324
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375
  call void @llvm.lifetime.start.p0(i64 88, ptr %163) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %163, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2377 unwind label %2403

2377:                                             ; preds = %2376
  %2378 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %163)
          to label %2379 unwind label %2407

2379:                                             ; preds = %2377
  %2380 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2378)
          to label %2381 unwind label %2407

2381:                                             ; preds = %2379
  %2382 = icmp ne i32 %2380, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %163) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %163) #8
  br i1 %2382, label %2383, label %2430

2383:                                             ; preds = %2381
  br label %2384

2384:                                             ; preds = %2383
  %2385 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2386 unwind label %2179

2386:                                             ; preds = %2384
  br i1 %2385, label %2387, label %2412

2387:                                             ; preds = %2386
  %2388 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2388, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2390 unwind label %2179

2390:                                             ; preds = %2387
  %2391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2389, ptr noundef @.str)
          to label %2392 unwind label %2179

2392:                                             ; preds = %2390
  %2393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2391, ptr noundef @.str.1)
          to label %2394 unwind label %2179

2394:                                             ; preds = %2392
  %2395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2393, ptr noundef @.str.2)
          to label %2396 unwind label %2179

2396:                                             ; preds = %2394
  %2397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2395, i32 noundef 180)
          to label %2398 unwind label %2179

2398:                                             ; preds = %2396
  %2399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2397, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2400 unwind label %2179

2400:                                             ; preds = %2398
  %2401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2399, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2402 unwind label %2179

2402:                                             ; preds = %2400
  br label %2412

2403:                                             ; preds = %2376
  %2404 = landingpad { ptr, i32 }
          cleanup
  %2405 = extractvalue { ptr, i32 } %2404, 0
  store ptr %2405, ptr %7, align 8
  %2406 = extractvalue { ptr, i32 } %2404, 1
  store i32 %2406, ptr %8, align 4
  br label %2411

2407:                                             ; preds = %2379, %2377
  %2408 = landingpad { ptr, i32 }
          cleanup
  %2409 = extractvalue { ptr, i32 } %2408, 0
  store ptr %2409, ptr %7, align 8
  %2410 = extractvalue { ptr, i32 } %2408, 1
  store i32 %2410, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %163) #8
  br label %2411

2411:                                             ; preds = %2407, %2403
  call void @llvm.lifetime.end.p0(i64 88, ptr %163) #8
  br label %3366

2412:                                             ; preds = %2402, %2386
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  store i1 true, ptr %165, align 1
  %2415 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %164, i32 noundef 16)
          to label %2416 unwind label %2418

2416:                                             ; preds = %2414
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2415, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %164)
          to label %2417 unwind label %2422

2417:                                             ; preds = %2416
  store i1 false, ptr %165, align 1
  invoke void @__cxa_throw(ptr %2415, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2422

2418:                                             ; preds = %2414
  %2419 = landingpad { ptr, i32 }
          cleanup
  %2420 = extractvalue { ptr, i32 } %2419, 0
  store ptr %2420, ptr %7, align 8
  %2421 = extractvalue { ptr, i32 } %2419, 1
  store i32 %2421, ptr %8, align 4
  br label %2426

2422:                                             ; preds = %2417, %2416
  %2423 = landingpad { ptr, i32 }
          cleanup
  %2424 = extractvalue { ptr, i32 } %2423, 0
  store ptr %2424, ptr %7, align 8
  %2425 = extractvalue { ptr, i32 } %2423, 1
  store i32 %2425, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %164) #8
  br label %2426

2426:                                             ; preds = %2422, %2418
  %2427 = load i1, ptr %165, align 1
  br i1 %2427, label %2428, label %2429

2428:                                             ; preds = %2426
  call void @__cxa_free_exception(ptr %2415) #8
  br label %2429

2429:                                             ; preds = %2428, %2426
  br label %3366

2430:                                             ; preds = %2381
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431
  call void @llvm.lifetime.start.p0(i64 16, ptr %166) #8
  %2433 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %2434 unwind label %2447

2434:                                             ; preds = %2432
  %2435 = getelementptr inbounds { i64, i64 }, ptr %166, i32 0, i32 0
  %2436 = extractvalue { i64, i64 } %2433, 0
  store i64 %2436, ptr %2435, align 8
  %2437 = getelementptr inbounds { i64, i64 }, ptr %166, i32 0, i32 1
  %2438 = extractvalue { i64, i64 } %2433, 1
  store i64 %2438, ptr %2437, align 8
  %2439 = invoke noundef zeroext i1 @_ZNK4U128gtEj(ptr noundef nonnull align 8 dereferenceable(16) %166, i32 noundef -1)
          to label %2440 unwind label %2447

2440:                                             ; preds = %2434
  br i1 %2439, label %2441, label %2466

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %167, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2443 unwind label %2451

2443:                                             ; preds = %2442
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 1 dereferenceable(1) %169) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef 0, ptr noundef %168)
          to label %2444 unwind label %2455

2444:                                             ; preds = %2443
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #8
  %2445 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2445, ptr noundef @.str.5)
          to label %2446 unwind label %2460

2446:                                             ; preds = %2444
  invoke void @__cxa_throw(ptr %2445, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %2447

2447:                                             ; preds = %2608, %2606, %2604, %2602, %2600, %2598, %2595, %2592, %2551, %2549, %2547, %2545, %2543, %2541, %2538, %2535, %2494, %2492, %2490, %2488, %2486, %2484, %2481, %2478, %2466, %2446, %2434, %2432
  %2448 = landingpad { ptr, i32 }
          cleanup
  %2449 = extractvalue { ptr, i32 } %2448, 0
  store ptr %2449, ptr %7, align 8
  %2450 = extractvalue { ptr, i32 } %2448, 1
  store i32 %2450, ptr %8, align 4
  br label %3365

2451:                                             ; preds = %2442
  %2452 = landingpad { ptr, i32 }
          cleanup
  %2453 = extractvalue { ptr, i32 } %2452, 0
  store ptr %2453, ptr %7, align 8
  %2454 = extractvalue { ptr, i32 } %2452, 1
  store i32 %2454, ptr %8, align 4
  br label %2459

2455:                                             ; preds = %2443
  %2456 = landingpad { ptr, i32 }
          cleanup
  %2457 = extractvalue { ptr, i32 } %2456, 0
  store ptr %2457, ptr %7, align 8
  %2458 = extractvalue { ptr, i32 } %2456, 1
  store i32 %2458, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #8
  br label %2459

2459:                                             ; preds = %2455, %2451
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #8
  br label %3365

2460:                                             ; preds = %2444
  %2461 = landingpad { ptr, i32 }
          cleanup
  %2462 = extractvalue { ptr, i32 } %2461, 0
  store ptr %2462, ptr %7, align 8
  %2463 = extractvalue { ptr, i32 } %2461, 1
  store i32 %2463, ptr %8, align 4
  call void @__cxa_free_exception(ptr %2445) #8
  br label %3365

2464:                                             ; No predecessors!
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

2466:                                             ; preds = %2465, %2440
  %2467 = invoke noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %166)
          to label %2468 unwind label %2447

2468:                                             ; preds = %2466
  %2469 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 1
  store i64 %2467, ptr %2469, align 8, !tbaa !72
  br label %2470

2470:                                             ; preds = %2468
  call void @llvm.lifetime.start.p0(i64 88, ptr %170) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %170, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2471 unwind label %2497

2471:                                             ; preds = %2470
  %2472 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %170)
          to label %2473 unwind label %2501

2473:                                             ; preds = %2471
  %2474 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2472)
          to label %2475 unwind label %2501

2475:                                             ; preds = %2473
  %2476 = icmp ne i32 %2474, 31
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %170) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %170) #8
  br i1 %2476, label %2477, label %2524

2477:                                             ; preds = %2475
  br label %2478

2478:                                             ; preds = %2477
  %2479 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2480 unwind label %2447

2480:                                             ; preds = %2478
  br i1 %2479, label %2481, label %2506

2481:                                             ; preds = %2480
  %2482 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2482, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2484 unwind label %2447

2484:                                             ; preds = %2481
  %2485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2483, ptr noundef @.str)
          to label %2486 unwind label %2447

2486:                                             ; preds = %2484
  %2487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2485, ptr noundef @.str.1)
          to label %2488 unwind label %2447

2488:                                             ; preds = %2486
  %2489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2487, ptr noundef @.str.2)
          to label %2490 unwind label %2447

2490:                                             ; preds = %2488
  %2491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2489, i32 noundef 186)
          to label %2492 unwind label %2447

2492:                                             ; preds = %2490
  %2493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2491, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2494 unwind label %2447

2494:                                             ; preds = %2492
  %2495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2493, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2496 unwind label %2447

2496:                                             ; preds = %2494
  br label %2506

2497:                                             ; preds = %2470
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %7, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %8, align 4
  br label %2505

2501:                                             ; preds = %2473, %2471
  %2502 = landingpad { ptr, i32 }
          cleanup
  %2503 = extractvalue { ptr, i32 } %2502, 0
  store ptr %2503, ptr %7, align 8
  %2504 = extractvalue { ptr, i32 } %2502, 1
  store i32 %2504, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %170) #8
  br label %2505

2505:                                             ; preds = %2501, %2497
  call void @llvm.lifetime.end.p0(i64 88, ptr %170) #8
  br label %3365

2506:                                             ; preds = %2496, %2480
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

2508:                                             ; preds = %2507
  store i1 true, ptr %172, align 1
  %2509 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %171, i32 noundef 31)
          to label %2510 unwind label %2512

2510:                                             ; preds = %2508
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2509, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %171)
          to label %2511 unwind label %2516

2511:                                             ; preds = %2510
  store i1 false, ptr %172, align 1
  invoke void @__cxa_throw(ptr %2509, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2516

2512:                                             ; preds = %2508
  %2513 = landingpad { ptr, i32 }
          cleanup
  %2514 = extractvalue { ptr, i32 } %2513, 0
  store ptr %2514, ptr %7, align 8
  %2515 = extractvalue { ptr, i32 } %2513, 1
  store i32 %2515, ptr %8, align 4
  br label %2520

2516:                                             ; preds = %2511, %2510
  %2517 = landingpad { ptr, i32 }
          cleanup
  %2518 = extractvalue { ptr, i32 } %2517, 0
  store ptr %2518, ptr %7, align 8
  %2519 = extractvalue { ptr, i32 } %2517, 1
  store i32 %2519, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %171) #8
  br label %2520

2520:                                             ; preds = %2516, %2512
  %2521 = load i1, ptr %172, align 1
  br i1 %2521, label %2522, label %2523

2522:                                             ; preds = %2520
  call void @__cxa_free_exception(ptr %2509) #8
  br label %2523

2523:                                             ; preds = %2522, %2520
  br label %3365

2524:                                             ; preds = %2475
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  br label %2527

2527:                                             ; preds = %2526
  call void @llvm.lifetime.start.p0(i64 88, ptr %173) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %173, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2528 unwind label %2554

2528:                                             ; preds = %2527
  %2529 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %173)
          to label %2530 unwind label %2558

2530:                                             ; preds = %2528
  %2531 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2529)
          to label %2532 unwind label %2558

2532:                                             ; preds = %2530
  %2533 = icmp ne i32 %2531, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %173) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %173) #8
  br i1 %2533, label %2534, label %2581

2534:                                             ; preds = %2532
  br label %2535

2535:                                             ; preds = %2534
  %2536 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2537 unwind label %2447

2537:                                             ; preds = %2535
  br i1 %2536, label %2538, label %2563

2538:                                             ; preds = %2537
  %2539 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2539, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2541 unwind label %2447

2541:                                             ; preds = %2538
  %2542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2540, ptr noundef @.str)
          to label %2543 unwind label %2447

2543:                                             ; preds = %2541
  %2544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2542, ptr noundef @.str.1)
          to label %2545 unwind label %2447

2545:                                             ; preds = %2543
  %2546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2544, ptr noundef @.str.2)
          to label %2547 unwind label %2447

2547:                                             ; preds = %2545
  %2548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2546, i32 noundef 187)
          to label %2549 unwind label %2447

2549:                                             ; preds = %2547
  %2550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2548, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2551 unwind label %2447

2551:                                             ; preds = %2549
  %2552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2550, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2553 unwind label %2447

2553:                                             ; preds = %2551
  br label %2563

2554:                                             ; preds = %2527
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %7, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %8, align 4
  br label %2562

2558:                                             ; preds = %2530, %2528
  %2559 = landingpad { ptr, i32 }
          cleanup
  %2560 = extractvalue { ptr, i32 } %2559, 0
  store ptr %2560, ptr %7, align 8
  %2561 = extractvalue { ptr, i32 } %2559, 1
  store i32 %2561, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %173) #8
  br label %2562

2562:                                             ; preds = %2558, %2554
  call void @llvm.lifetime.end.p0(i64 88, ptr %173) #8
  br label %3365

2563:                                             ; preds = %2553, %2537
  br label %2564

2564:                                             ; preds = %2563
  br label %2565

2565:                                             ; preds = %2564
  store i1 true, ptr %175, align 1
  %2566 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %174, i32 noundef 14)
          to label %2567 unwind label %2569

2567:                                             ; preds = %2565
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2566, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %174)
          to label %2568 unwind label %2573

2568:                                             ; preds = %2567
  store i1 false, ptr %175, align 1
  invoke void @__cxa_throw(ptr %2566, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2573

2569:                                             ; preds = %2565
  %2570 = landingpad { ptr, i32 }
          cleanup
  %2571 = extractvalue { ptr, i32 } %2570, 0
  store ptr %2571, ptr %7, align 8
  %2572 = extractvalue { ptr, i32 } %2570, 1
  store i32 %2572, ptr %8, align 4
  br label %2577

2573:                                             ; preds = %2568, %2567
  %2574 = landingpad { ptr, i32 }
          cleanup
  %2575 = extractvalue { ptr, i32 } %2574, 0
  store ptr %2575, ptr %7, align 8
  %2576 = extractvalue { ptr, i32 } %2574, 1
  store i32 %2576, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %174) #8
  br label %2577

2577:                                             ; preds = %2573, %2569
  %2578 = load i1, ptr %175, align 1
  br i1 %2578, label %2579, label %2580

2579:                                             ; preds = %2577
  call void @__cxa_free_exception(ptr %2566) #8
  br label %2580

2580:                                             ; preds = %2579, %2577
  br label %3365

2581:                                             ; preds = %2532
  br label %2582

2582:                                             ; preds = %2581
  br label %2583

2583:                                             ; preds = %2582
  br label %2584

2584:                                             ; preds = %2583
  call void @llvm.lifetime.start.p0(i64 88, ptr %176) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %176, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2585 unwind label %2611

2585:                                             ; preds = %2584
  %2586 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %176)
          to label %2587 unwind label %2615

2587:                                             ; preds = %2585
  %2588 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2586)
          to label %2589 unwind label %2615

2589:                                             ; preds = %2587
  %2590 = icmp ne i32 %2588, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %176) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %176) #8
  br i1 %2590, label %2591, label %2638

2591:                                             ; preds = %2589
  br label %2592

2592:                                             ; preds = %2591
  %2593 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2594 unwind label %2447

2594:                                             ; preds = %2592
  br i1 %2593, label %2595, label %2620

2595:                                             ; preds = %2594
  %2596 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2596, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2598 unwind label %2447

2598:                                             ; preds = %2595
  %2599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2597, ptr noundef @.str)
          to label %2600 unwind label %2447

2600:                                             ; preds = %2598
  %2601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2599, ptr noundef @.str.1)
          to label %2602 unwind label %2447

2602:                                             ; preds = %2600
  %2603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2601, ptr noundef @.str.2)
          to label %2604 unwind label %2447

2604:                                             ; preds = %2602
  %2605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2603, i32 noundef 188)
          to label %2606 unwind label %2447

2606:                                             ; preds = %2604
  %2607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2605, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2608 unwind label %2447

2608:                                             ; preds = %2606
  %2609 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2607, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2610 unwind label %2447

2610:                                             ; preds = %2608
  br label %2620

2611:                                             ; preds = %2584
  %2612 = landingpad { ptr, i32 }
          cleanup
  %2613 = extractvalue { ptr, i32 } %2612, 0
  store ptr %2613, ptr %7, align 8
  %2614 = extractvalue { ptr, i32 } %2612, 1
  store i32 %2614, ptr %8, align 4
  br label %2619

2615:                                             ; preds = %2587, %2585
  %2616 = landingpad { ptr, i32 }
          cleanup
  %2617 = extractvalue { ptr, i32 } %2616, 0
  store ptr %2617, ptr %7, align 8
  %2618 = extractvalue { ptr, i32 } %2616, 1
  store i32 %2618, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %176) #8
  br label %2619

2619:                                             ; preds = %2615, %2611
  call void @llvm.lifetime.end.p0(i64 88, ptr %176) #8
  br label %3365

2620:                                             ; preds = %2610, %2594
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  store i1 true, ptr %178, align 1
  %2623 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %177, i32 noundef 16)
          to label %2624 unwind label %2626

2624:                                             ; preds = %2622
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2623, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %177)
          to label %2625 unwind label %2630

2625:                                             ; preds = %2624
  store i1 false, ptr %178, align 1
  invoke void @__cxa_throw(ptr %2623, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2630

2626:                                             ; preds = %2622
  %2627 = landingpad { ptr, i32 }
          cleanup
  %2628 = extractvalue { ptr, i32 } %2627, 0
  store ptr %2628, ptr %7, align 8
  %2629 = extractvalue { ptr, i32 } %2627, 1
  store i32 %2629, ptr %8, align 4
  br label %2634

2630:                                             ; preds = %2625, %2624
  %2631 = landingpad { ptr, i32 }
          cleanup
  %2632 = extractvalue { ptr, i32 } %2631, 0
  store ptr %2632, ptr %7, align 8
  %2633 = extractvalue { ptr, i32 } %2631, 1
  store i32 %2633, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %177) #8
  br label %2634

2634:                                             ; preds = %2630, %2626
  %2635 = load i1, ptr %178, align 1
  br i1 %2635, label %2636, label %2637

2636:                                             ; preds = %2634
  call void @__cxa_free_exception(ptr %2623) #8
  br label %2637

2637:                                             ; preds = %2636, %2634
  br label %3365

2638:                                             ; preds = %2589
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #8
  %2641 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %2642 unwind label %2655

2642:                                             ; preds = %2640
  %2643 = getelementptr inbounds { i64, i64 }, ptr %179, i32 0, i32 0
  %2644 = extractvalue { i64, i64 } %2641, 0
  store i64 %2644, ptr %2643, align 8
  %2645 = getelementptr inbounds { i64, i64 }, ptr %179, i32 0, i32 1
  %2646 = extractvalue { i64, i64 } %2641, 1
  store i64 %2646, ptr %2645, align 8
  %2647 = invoke noundef zeroext i1 @_ZNK4U128leEj(ptr noundef nonnull align 8 dereferenceable(16) %179, i32 noundef -1)
          to label %2648 unwind label %2655

2648:                                             ; preds = %2642
  br i1 %2647, label %2674, label %2649

2649:                                             ; preds = %2648
  br label %2650

2650:                                             ; preds = %2649
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %180, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2651 unwind label %2659

2651:                                             ; preds = %2650
  call void @llvm.lifetime.start.p0(i64 1, ptr %182) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 1 dereferenceable(1) %182) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %180, i32 noundef 0, ptr noundef %181)
          to label %2652 unwind label %2663

2652:                                             ; preds = %2651
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  %2653 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2653, ptr noundef @.str.5)
          to label %2654 unwind label %2668

2654:                                             ; preds = %2652
  invoke void @__cxa_throw(ptr %2653, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %2655

2655:                                             ; preds = %3198, %3182, %3067, %3031, %3029, %3027, %3025, %3023, %3021, %3018, %3015, %2974, %2764, %2762, %2760, %2758, %2756, %2754, %2751, %2748, %2735, %2702, %2700, %2698, %2696, %2694, %2692, %2689, %2686, %2674, %2654, %2642, %2640
  %2656 = landingpad { ptr, i32 }
          cleanup
  %2657 = extractvalue { ptr, i32 } %2656, 0
  store ptr %2657, ptr %7, align 8
  %2658 = extractvalue { ptr, i32 } %2656, 1
  store i32 %2658, ptr %8, align 4
  br label %3364

2659:                                             ; preds = %2650
  %2660 = landingpad { ptr, i32 }
          cleanup
  %2661 = extractvalue { ptr, i32 } %2660, 0
  store ptr %2661, ptr %7, align 8
  %2662 = extractvalue { ptr, i32 } %2660, 1
  store i32 %2662, ptr %8, align 4
  br label %2667

2663:                                             ; preds = %2651
  %2664 = landingpad { ptr, i32 }
          cleanup
  %2665 = extractvalue { ptr, i32 } %2664, 0
  store ptr %2665, ptr %7, align 8
  %2666 = extractvalue { ptr, i32 } %2664, 1
  store i32 %2666, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #8
  br label %2667

2667:                                             ; preds = %2663, %2659
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  br label %3364

2668:                                             ; preds = %2652
  %2669 = landingpad { ptr, i32 }
          cleanup
  %2670 = extractvalue { ptr, i32 } %2669, 0
  store ptr %2670, ptr %7, align 8
  %2671 = extractvalue { ptr, i32 } %2669, 1
  store i32 %2671, ptr %8, align 4
  call void @__cxa_free_exception(ptr %2653) #8
  br label %3364

2672:                                             ; No predecessors!
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673, %2648
  %2675 = invoke noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %166)
          to label %2676 unwind label %2655

2676:                                             ; preds = %2674
  %2677 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 0
  store i64 %2675, ptr %2677, align 8, !tbaa !80
  br label %2678

2678:                                             ; preds = %2676
  call void @llvm.lifetime.start.p0(i64 88, ptr %183) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %183, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2679 unwind label %2705

2679:                                             ; preds = %2678
  %2680 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %183)
          to label %2681 unwind label %2709

2681:                                             ; preds = %2679
  %2682 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2680)
          to label %2683 unwind label %2709

2683:                                             ; preds = %2681
  %2684 = icmp ne i32 %2682, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %183) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %183) #8
  br i1 %2684, label %2685, label %2732

2685:                                             ; preds = %2683
  br label %2686

2686:                                             ; preds = %2685
  %2687 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2688 unwind label %2655

2688:                                             ; preds = %2686
  br i1 %2687, label %2689, label %2714

2689:                                             ; preds = %2688
  %2690 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2690, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2692 unwind label %2655

2692:                                             ; preds = %2689
  %2693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2691, ptr noundef @.str)
          to label %2694 unwind label %2655

2694:                                             ; preds = %2692
  %2695 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2693, ptr noundef @.str.1)
          to label %2696 unwind label %2655

2696:                                             ; preds = %2694
  %2697 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2695, ptr noundef @.str.2)
          to label %2698 unwind label %2655

2698:                                             ; preds = %2696
  %2699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2697, i32 noundef 194)
          to label %2700 unwind label %2655

2700:                                             ; preds = %2698
  %2701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2699, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2702 unwind label %2655

2702:                                             ; preds = %2700
  %2703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2701, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2704 unwind label %2655

2704:                                             ; preds = %2702
  br label %2714

2705:                                             ; preds = %2678
  %2706 = landingpad { ptr, i32 }
          cleanup
  %2707 = extractvalue { ptr, i32 } %2706, 0
  store ptr %2707, ptr %7, align 8
  %2708 = extractvalue { ptr, i32 } %2706, 1
  store i32 %2708, ptr %8, align 4
  br label %2713

2709:                                             ; preds = %2681, %2679
  %2710 = landingpad { ptr, i32 }
          cleanup
  %2711 = extractvalue { ptr, i32 } %2710, 0
  store ptr %2711, ptr %7, align 8
  %2712 = extractvalue { ptr, i32 } %2710, 1
  store i32 %2712, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %183) #8
  br label %2713

2713:                                             ; preds = %2709, %2705
  call void @llvm.lifetime.end.p0(i64 88, ptr %183) #8
  br label %3364

2714:                                             ; preds = %2704, %2688
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  store i1 true, ptr %185, align 1
  %2717 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %184, i32 noundef 32)
          to label %2718 unwind label %2720

2718:                                             ; preds = %2716
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2717, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %184)
          to label %2719 unwind label %2724

2719:                                             ; preds = %2718
  store i1 false, ptr %185, align 1
  invoke void @__cxa_throw(ptr %2717, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2724

2720:                                             ; preds = %2716
  %2721 = landingpad { ptr, i32 }
          cleanup
  %2722 = extractvalue { ptr, i32 } %2721, 0
  store ptr %2722, ptr %7, align 8
  %2723 = extractvalue { ptr, i32 } %2721, 1
  store i32 %2723, ptr %8, align 4
  br label %2728

2724:                                             ; preds = %2719, %2718
  %2725 = landingpad { ptr, i32 }
          cleanup
  %2726 = extractvalue { ptr, i32 } %2725, 0
  store ptr %2726, ptr %7, align 8
  %2727 = extractvalue { ptr, i32 } %2725, 1
  store i32 %2727, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %184) #8
  br label %2728

2728:                                             ; preds = %2724, %2720
  %2729 = load i1, ptr %185, align 1
  br i1 %2729, label %2730, label %2731

2730:                                             ; preds = %2728
  call void @__cxa_free_exception(ptr %2717) #8
  br label %2731

2731:                                             ; preds = %2730, %2728
  br label %3364

2732:                                             ; preds = %2683
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2960, %2734
  %2736 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 0)
          to label %2737 unwind label %2655

2737:                                             ; preds = %2735
  %2738 = icmp eq i32 %2736, 16
  br i1 %2738, label %2739, label %2973

2739:                                             ; preds = %2737
  br label %2740

2740:                                             ; preds = %2739
  call void @llvm.lifetime.start.p0(i64 88, ptr %186) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %186, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2741 unwind label %2767

2741:                                             ; preds = %2740
  %2742 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %186)
          to label %2743 unwind label %2771

2743:                                             ; preds = %2741
  %2744 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2742)
          to label %2745 unwind label %2771

2745:                                             ; preds = %2743
  %2746 = icmp ne i32 %2744, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %186) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %186) #8
  br i1 %2746, label %2747, label %2794

2747:                                             ; preds = %2745
  br label %2748

2748:                                             ; preds = %2747
  %2749 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2750 unwind label %2655

2750:                                             ; preds = %2748
  br i1 %2749, label %2751, label %2776

2751:                                             ; preds = %2750
  %2752 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2752, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2754 unwind label %2655

2754:                                             ; preds = %2751
  %2755 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2753, ptr noundef @.str)
          to label %2756 unwind label %2655

2756:                                             ; preds = %2754
  %2757 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2755, ptr noundef @.str.1)
          to label %2758 unwind label %2655

2758:                                             ; preds = %2756
  %2759 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2757, ptr noundef @.str.2)
          to label %2760 unwind label %2655

2760:                                             ; preds = %2758
  %2761 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2759, i32 noundef 201)
          to label %2762 unwind label %2655

2762:                                             ; preds = %2760
  %2763 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2761, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2764 unwind label %2655

2764:                                             ; preds = %2762
  %2765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2763, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2766 unwind label %2655

2766:                                             ; preds = %2764
  br label %2776

2767:                                             ; preds = %2740
  %2768 = landingpad { ptr, i32 }
          cleanup
  %2769 = extractvalue { ptr, i32 } %2768, 0
  store ptr %2769, ptr %7, align 8
  %2770 = extractvalue { ptr, i32 } %2768, 1
  store i32 %2770, ptr %8, align 4
  br label %2775

2771:                                             ; preds = %2743, %2741
  %2772 = landingpad { ptr, i32 }
          cleanup
  %2773 = extractvalue { ptr, i32 } %2772, 0
  store ptr %2773, ptr %7, align 8
  %2774 = extractvalue { ptr, i32 } %2772, 1
  store i32 %2774, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %186) #8
  br label %2775

2775:                                             ; preds = %2771, %2767
  call void @llvm.lifetime.end.p0(i64 88, ptr %186) #8
  br label %3364

2776:                                             ; preds = %2766, %2750
  br label %2777

2777:                                             ; preds = %2776
  br label %2778

2778:                                             ; preds = %2777
  store i1 true, ptr %188, align 1
  %2779 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %187, i32 noundef 16)
          to label %2780 unwind label %2782

2780:                                             ; preds = %2778
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2779, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %187)
          to label %2781 unwind label %2786

2781:                                             ; preds = %2780
  store i1 false, ptr %188, align 1
  invoke void @__cxa_throw(ptr %2779, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2786

2782:                                             ; preds = %2778
  %2783 = landingpad { ptr, i32 }
          cleanup
  %2784 = extractvalue { ptr, i32 } %2783, 0
  store ptr %2784, ptr %7, align 8
  %2785 = extractvalue { ptr, i32 } %2783, 1
  store i32 %2785, ptr %8, align 4
  br label %2790

2786:                                             ; preds = %2781, %2780
  %2787 = landingpad { ptr, i32 }
          cleanup
  %2788 = extractvalue { ptr, i32 } %2787, 0
  store ptr %2788, ptr %7, align 8
  %2789 = extractvalue { ptr, i32 } %2787, 1
  store i32 %2789, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %187) #8
  br label %2790

2790:                                             ; preds = %2786, %2782
  %2791 = load i1, ptr %188, align 1
  br i1 %2791, label %2792, label %2793

2792:                                             ; preds = %2790
  call void @__cxa_free_exception(ptr %2779) #8
  br label %2793

2793:                                             ; preds = %2792, %2790
  br label %3364

2794:                                             ; preds = %2745
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  call void @llvm.lifetime.start.p0(i64 16, ptr %189) #8
  %2797 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %2798 unwind label %2811

2798:                                             ; preds = %2796
  %2799 = getelementptr inbounds { i64, i64 }, ptr %189, i32 0, i32 0
  %2800 = extractvalue { i64, i64 } %2797, 0
  store i64 %2800, ptr %2799, align 8
  %2801 = getelementptr inbounds { i64, i64 }, ptr %189, i32 0, i32 1
  %2802 = extractvalue { i64, i64 } %2797, 1
  store i64 %2802, ptr %2801, align 8
  %2803 = invoke noundef zeroext i1 @_ZNK4U128gtERKS_(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 8 dereferenceable(16) %166)
          to label %2804 unwind label %2811

2804:                                             ; preds = %2798
  br i1 %2803, label %2805, label %2830

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %190, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2807 unwind label %2815

2807:                                             ; preds = %2806
  call void @llvm.lifetime.start.p0(i64 1, ptr %192) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef nonnull align 1 dereferenceable(1) %192) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %190, i32 noundef 0, ptr noundef %191)
          to label %2808 unwind label %2819

2808:                                             ; preds = %2807
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #8
  %2809 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2809, ptr noundef @.str.5)
          to label %2810 unwind label %2824

2810:                                             ; preds = %2808
  invoke void @__cxa_throw(ptr %2809, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %2811

2811:                                             ; preds = %2855, %2853, %2851, %2849, %2847, %2845, %2842, %2839, %2810, %2798, %2796
  %2812 = landingpad { ptr, i32 }
          cleanup
  %2813 = extractvalue { ptr, i32 } %2812, 0
  store ptr %2813, ptr %7, align 8
  %2814 = extractvalue { ptr, i32 } %2812, 1
  store i32 %2814, ptr %8, align 4
  br label %2972

2815:                                             ; preds = %2806
  %2816 = landingpad { ptr, i32 }
          cleanup
  %2817 = extractvalue { ptr, i32 } %2816, 0
  store ptr %2817, ptr %7, align 8
  %2818 = extractvalue { ptr, i32 } %2816, 1
  store i32 %2818, ptr %8, align 4
  br label %2823

2819:                                             ; preds = %2807
  %2820 = landingpad { ptr, i32 }
          cleanup
  %2821 = extractvalue { ptr, i32 } %2820, 0
  store ptr %2821, ptr %7, align 8
  %2822 = extractvalue { ptr, i32 } %2820, 1
  store i32 %2822, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #8
  br label %2823

2823:                                             ; preds = %2819, %2815
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #8
  br label %2972

2824:                                             ; preds = %2808
  %2825 = landingpad { ptr, i32 }
          cleanup
  %2826 = extractvalue { ptr, i32 } %2825, 0
  store ptr %2826, ptr %7, align 8
  %2827 = extractvalue { ptr, i32 } %2825, 1
  store i32 %2827, ptr %8, align 4
  call void @__cxa_free_exception(ptr %2809) #8
  br label %2972

2828:                                             ; No predecessors!
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829, %2804
  br label %2831

2831:                                             ; preds = %2830
  call void @llvm.lifetime.start.p0(i64 88, ptr %193) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %193, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2832 unwind label %2858

2832:                                             ; preds = %2831
  %2833 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %193)
          to label %2834 unwind label %2862

2834:                                             ; preds = %2832
  %2835 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2833)
          to label %2836 unwind label %2862

2836:                                             ; preds = %2834
  %2837 = icmp ne i32 %2835, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %193) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %193) #8
  br i1 %2837, label %2838, label %2885

2838:                                             ; preds = %2836
  br label %2839

2839:                                             ; preds = %2838
  %2840 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2841 unwind label %2811

2841:                                             ; preds = %2839
  br i1 %2840, label %2842, label %2867

2842:                                             ; preds = %2841
  %2843 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2843, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2845 unwind label %2811

2845:                                             ; preds = %2842
  %2846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2844, ptr noundef @.str)
          to label %2847 unwind label %2811

2847:                                             ; preds = %2845
  %2848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2846, ptr noundef @.str.1)
          to label %2849 unwind label %2811

2849:                                             ; preds = %2847
  %2850 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2848, ptr noundef @.str.2)
          to label %2851 unwind label %2811

2851:                                             ; preds = %2849
  %2852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2850, i32 noundef 206)
          to label %2853 unwind label %2811

2853:                                             ; preds = %2851
  %2854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2852, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2855 unwind label %2811

2855:                                             ; preds = %2853
  %2856 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2854, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2857 unwind label %2811

2857:                                             ; preds = %2855
  br label %2867

2858:                                             ; preds = %2831
  %2859 = landingpad { ptr, i32 }
          cleanup
  %2860 = extractvalue { ptr, i32 } %2859, 0
  store ptr %2860, ptr %7, align 8
  %2861 = extractvalue { ptr, i32 } %2859, 1
  store i32 %2861, ptr %8, align 4
  br label %2866

2862:                                             ; preds = %2834, %2832
  %2863 = landingpad { ptr, i32 }
          cleanup
  %2864 = extractvalue { ptr, i32 } %2863, 0
  store ptr %2864, ptr %7, align 8
  %2865 = extractvalue { ptr, i32 } %2863, 1
  store i32 %2865, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %193) #8
  br label %2866

2866:                                             ; preds = %2862, %2858
  call void @llvm.lifetime.end.p0(i64 88, ptr %193) #8
  br label %2972

2867:                                             ; preds = %2857, %2841
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868
  store i1 true, ptr %195, align 1
  %2870 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %194, i32 noundef 50)
          to label %2871 unwind label %2873

2871:                                             ; preds = %2869
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2870, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %194)
          to label %2872 unwind label %2877

2872:                                             ; preds = %2871
  store i1 false, ptr %195, align 1
  invoke void @__cxa_throw(ptr %2870, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2877

2873:                                             ; preds = %2869
  %2874 = landingpad { ptr, i32 }
          cleanup
  %2875 = extractvalue { ptr, i32 } %2874, 0
  store ptr %2875, ptr %7, align 8
  %2876 = extractvalue { ptr, i32 } %2874, 1
  store i32 %2876, ptr %8, align 4
  br label %2881

2877:                                             ; preds = %2872, %2871
  %2878 = landingpad { ptr, i32 }
          cleanup
  %2879 = extractvalue { ptr, i32 } %2878, 0
  store ptr %2879, ptr %7, align 8
  %2880 = extractvalue { ptr, i32 } %2878, 1
  store i32 %2880, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %194) #8
  br label %2881

2881:                                             ; preds = %2877, %2873
  %2882 = load i1, ptr %195, align 1
  br i1 %2882, label %2883, label %2884

2883:                                             ; preds = %2881
  call void @__cxa_free_exception(ptr %2870) #8
  br label %2884

2884:                                             ; preds = %2883, %2881
  br label %2972

2885:                                             ; preds = %2836
  br label %2886

2886:                                             ; preds = %2885
  br label %2887

2887:                                             ; preds = %2886
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #8
  invoke void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %196, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2888 unwind label %2916

2888:                                             ; preds = %2887
  br label %2889

2889:                                             ; preds = %2888
  call void @llvm.lifetime.start.p0(i64 88, ptr %197) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %197, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2890 unwind label %2920

2890:                                             ; preds = %2889
  %2891 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %197)
          to label %2892 unwind label %2924

2892:                                             ; preds = %2890
  %2893 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2891)
          to label %2894 unwind label %2924

2894:                                             ; preds = %2892
  %2895 = icmp ne i32 %2893, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %197) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %197) #8
  br i1 %2895, label %2896, label %2951

2896:                                             ; preds = %2894
  br label %2897

2897:                                             ; preds = %2896
  %2898 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2899 unwind label %2929

2899:                                             ; preds = %2897
  br i1 %2898, label %2900, label %2933

2900:                                             ; preds = %2899
  %2901 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2902 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2901, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %2903 unwind label %2929

2903:                                             ; preds = %2900
  %2904 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2902, ptr noundef @.str)
          to label %2905 unwind label %2929

2905:                                             ; preds = %2903
  %2906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2904, ptr noundef @.str.1)
          to label %2907 unwind label %2929

2907:                                             ; preds = %2905
  %2908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2906, ptr noundef @.str.2)
          to label %2909 unwind label %2929

2909:                                             ; preds = %2907
  %2910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2908, i32 noundef 208)
          to label %2911 unwind label %2929

2911:                                             ; preds = %2909
  %2912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2910, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2913 unwind label %2929

2913:                                             ; preds = %2911
  %2914 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2912, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2915 unwind label %2929

2915:                                             ; preds = %2913
  br label %2933

2916:                                             ; preds = %2887
  %2917 = landingpad { ptr, i32 }
          cleanup
  %2918 = extractvalue { ptr, i32 } %2917, 0
  store ptr %2918, ptr %7, align 8
  %2919 = extractvalue { ptr, i32 } %2917, 1
  store i32 %2919, ptr %8, align 4
  br label %2971

2920:                                             ; preds = %2889
  %2921 = landingpad { ptr, i32 }
          cleanup
  %2922 = extractvalue { ptr, i32 } %2921, 0
  store ptr %2922, ptr %7, align 8
  %2923 = extractvalue { ptr, i32 } %2921, 1
  store i32 %2923, ptr %8, align 4
  br label %2928

2924:                                             ; preds = %2892, %2890
  %2925 = landingpad { ptr, i32 }
          cleanup
  %2926 = extractvalue { ptr, i32 } %2925, 0
  store ptr %2926, ptr %7, align 8
  %2927 = extractvalue { ptr, i32 } %2925, 1
  store i32 %2927, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %197) #8
  br label %2928

2928:                                             ; preds = %2924, %2920
  call void @llvm.lifetime.end.p0(i64 88, ptr %197) #8
  br label %2970

2929:                                             ; preds = %2913, %2911, %2909, %2907, %2905, %2903, %2900, %2897
  %2930 = landingpad { ptr, i32 }
          cleanup
  %2931 = extractvalue { ptr, i32 } %2930, 0
  store ptr %2931, ptr %7, align 8
  %2932 = extractvalue { ptr, i32 } %2930, 1
  store i32 %2932, ptr %8, align 4
  br label %2970

2933:                                             ; preds = %2915, %2899
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934
  store i1 true, ptr %199, align 1
  %2936 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %198, i32 noundef 32)
          to label %2937 unwind label %2939

2937:                                             ; preds = %2935
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2936, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %198)
          to label %2938 unwind label %2943

2938:                                             ; preds = %2937
  store i1 false, ptr %199, align 1
  invoke void @__cxa_throw(ptr %2936, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %2943

2939:                                             ; preds = %2935
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %7, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %8, align 4
  br label %2947

2943:                                             ; preds = %2938, %2937
  %2944 = landingpad { ptr, i32 }
          cleanup
  %2945 = extractvalue { ptr, i32 } %2944, 0
  store ptr %2945, ptr %7, align 8
  %2946 = extractvalue { ptr, i32 } %2944, 1
  store i32 %2946, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %198) #8
  br label %2947

2947:                                             ; preds = %2943, %2939
  %2948 = load i1, ptr %199, align 1
  br i1 %2948, label %2949, label %2950

2949:                                             ; preds = %2947
  call void @__cxa_free_exception(ptr %2936) #8
  br label %2950

2950:                                             ; preds = %2949, %2947
  br label %2970

2951:                                             ; preds = %2894
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

2953:                                             ; preds = %2952
  %2954 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 16, ptr %200) #8
  %2955 = getelementptr inbounds %"struct.TypeRepr::Field", ptr %200, i32 0, i32 0
  %2956 = invoke noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %189)
          to label %2957 unwind label %2961

2957:                                             ; preds = %2953
  store i64 %2956, ptr %2955, align 8, !tbaa !81
  %2958 = getelementptr inbounds %"struct.TypeRepr::Field", ptr %200, i32 0, i32 1
  invoke void @_ZN3HIR7TypeRefC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %2958, ptr noundef nonnull align 8 dereferenceable(8) %196)
          to label %2959 unwind label %2961

2959:                                             ; preds = %2957
  invoke void @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %2954, ptr noundef nonnull align 8 dereferenceable(16) %200)
          to label %2960 unwind label %2965

2960:                                             ; preds = %2959
  call void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #8
  br label %2735, !llvm.loop !83

2961:                                             ; preds = %2957, %2953
  %2962 = landingpad { ptr, i32 }
          cleanup
  %2963 = extractvalue { ptr, i32 } %2962, 0
  store ptr %2963, ptr %7, align 8
  %2964 = extractvalue { ptr, i32 } %2962, 1
  store i32 %2964, ptr %8, align 4
  br label %2969

2965:                                             ; preds = %2959
  %2966 = landingpad { ptr, i32 }
          cleanup
  %2967 = extractvalue { ptr, i32 } %2966, 0
  store ptr %2967, ptr %7, align 8
  %2968 = extractvalue { ptr, i32 } %2966, 1
  store i32 %2968, ptr %8, align 4
  call void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #8
  br label %2969

2969:                                             ; preds = %2965, %2961
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #8
  br label %2970

2970:                                             ; preds = %2969, %2950, %2929, %2928
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #8
  br label %2971

2971:                                             ; preds = %2970, %2916
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #8
  br label %2972

2972:                                             ; preds = %2971, %2884, %2866, %2824, %2823, %2811
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #8
  br label %3364

2973:                                             ; preds = %2737
  br label %2974

2974:                                             ; preds = %3005, %2973
  %2975 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %11, i32 noundef 0)
          to label %2976 unwind label %2655

2976:                                             ; preds = %2974
  %2977 = icmp eq i32 %2975, 70
  br i1 %2977, label %2978, label %3006

2978:                                             ; preds = %2976
  br label %2979

2979:                                             ; preds = %2978
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %201, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %202, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %2980 unwind label %2986

2980:                                             ; preds = %2979
  call void @llvm.lifetime.start.p0(i64 16, ptr %204) #8
  %2981 = getelementptr inbounds %class.anon.391, ptr %204, i32 0, i32 0
  store ptr %201, ptr %2981, align 8, !tbaa !5
  %2982 = getelementptr inbounds %class.anon.391, ptr %204, i32 0, i32 1
  store ptr %146, ptr %2982, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 8 dereferenceable(16) %204) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef %203)
          to label %2983 unwind label %2990

2983:                                             ; preds = %2980
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #8
  %2984 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2984, ptr noundef @.str.6)
          to label %2985 unwind label %2995

2985:                                             ; preds = %2983
  invoke void @__cxa_throw(ptr %2984, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %2999

2986:                                             ; preds = %2979
  %2987 = landingpad { ptr, i32 }
          cleanup
  %2988 = extractvalue { ptr, i32 } %2987, 0
  store ptr %2988, ptr %7, align 8
  %2989 = extractvalue { ptr, i32 } %2987, 1
  store i32 %2989, ptr %8, align 4
  br label %2994

2990:                                             ; preds = %2980
  %2991 = landingpad { ptr, i32 }
          cleanup
  %2992 = extractvalue { ptr, i32 } %2991, 0
  store ptr %2992, ptr %7, align 8
  %2993 = extractvalue { ptr, i32 } %2991, 1
  store i32 %2993, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #8
  br label %2994

2994:                                             ; preds = %2990, %2986
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #8
  br label %3003

2995:                                             ; preds = %2983
  %2996 = landingpad { ptr, i32 }
          cleanup
  %2997 = extractvalue { ptr, i32 } %2996, 0
  store ptr %2997, ptr %7, align 8
  %2998 = extractvalue { ptr, i32 } %2996, 1
  store i32 %2998, ptr %8, align 4
  call void @__cxa_free_exception(ptr %2984) #8
  br label %3003

2999:                                             ; preds = %2985
  %3000 = landingpad { ptr, i32 }
          cleanup
  %3001 = extractvalue { ptr, i32 } %3000, 0
  store ptr %3001, ptr %7, align 8
  %3002 = extractvalue { ptr, i32 } %3000, 1
  store i32 %3002, ptr %8, align 4
  br label %3003

3003:                                             ; preds = %2999, %2995, %2994
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #8
  br label %3364

3004:                                             ; No predecessors!
  br label %3005

3005:                                             ; preds = %3004
  br label %2974, !llvm.loop !84

3006:                                             ; preds = %2976
  br label %3007

3007:                                             ; preds = %3006
  call void @llvm.lifetime.start.p0(i64 88, ptr %205) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %205, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %3008 unwind label %3034

3008:                                             ; preds = %3007
  %3009 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %205)
          to label %3010 unwind label %3038

3010:                                             ; preds = %3008
  %3011 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3009)
          to label %3012 unwind label %3038

3012:                                             ; preds = %3010
  %3013 = icmp ne i32 %3011, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %205) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %205) #8
  br i1 %3013, label %3014, label %3061

3014:                                             ; preds = %3012
  br label %3015

3015:                                             ; preds = %3014
  %3016 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3017 unwind label %2655

3017:                                             ; preds = %3015
  br i1 %3016, label %3018, label %3043

3018:                                             ; preds = %3017
  %3019 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3020 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3019, ptr noundef @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %3021 unwind label %2655

3021:                                             ; preds = %3018
  %3022 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3020, ptr noundef @.str)
          to label %3023 unwind label %2655

3023:                                             ; preds = %3021
  %3024 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3022, ptr noundef @.str.1)
          to label %3025 unwind label %2655

3025:                                             ; preds = %3023
  %3026 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3024, ptr noundef @.str.2)
          to label %3027 unwind label %2655

3027:                                             ; preds = %3025
  %3028 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3026, i32 noundef 215)
          to label %3029 unwind label %2655

3029:                                             ; preds = %3027
  %3030 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3028, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3031 unwind label %2655

3031:                                             ; preds = %3029
  %3032 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3030, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3033 unwind label %2655

3033:                                             ; preds = %3031
  br label %3043

3034:                                             ; preds = %3007
  %3035 = landingpad { ptr, i32 }
          cleanup
  %3036 = extractvalue { ptr, i32 } %3035, 0
  store ptr %3036, ptr %7, align 8
  %3037 = extractvalue { ptr, i32 } %3035, 1
  store i32 %3037, ptr %8, align 4
  br label %3042

3038:                                             ; preds = %3010, %3008
  %3039 = landingpad { ptr, i32 }
          cleanup
  %3040 = extractvalue { ptr, i32 } %3039, 0
  store ptr %3040, ptr %7, align 8
  %3041 = extractvalue { ptr, i32 } %3039, 1
  store i32 %3041, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %205) #8
  br label %3042

3042:                                             ; preds = %3038, %3034
  call void @llvm.lifetime.end.p0(i64 88, ptr %205) #8
  br label %3364

3043:                                             ; preds = %3033, %3017
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044
  store i1 true, ptr %207, align 1
  %3046 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %206, i32 noundef 26)
          to label %3047 unwind label %3049

3047:                                             ; preds = %3045
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3046, ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef %206)
          to label %3048 unwind label %3053

3048:                                             ; preds = %3047
  store i1 false, ptr %207, align 1
  invoke void @__cxa_throw(ptr %3046, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %3433 unwind label %3053

3049:                                             ; preds = %3045
  %3050 = landingpad { ptr, i32 }
          cleanup
  %3051 = extractvalue { ptr, i32 } %3050, 0
  store ptr %3051, ptr %7, align 8
  %3052 = extractvalue { ptr, i32 } %3050, 1
  store i32 %3052, ptr %8, align 4
  br label %3057

3053:                                             ; preds = %3048, %3047
  %3054 = landingpad { ptr, i32 }
          cleanup
  %3055 = extractvalue { ptr, i32 } %3054, 0
  store ptr %3055, ptr %7, align 8
  %3056 = extractvalue { ptr, i32 } %3054, 1
  store i32 %3056, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %206) #8
  br label %3057

3057:                                             ; preds = %3053, %3049
  %3058 = load i1, ptr %207, align 1
  br i1 %3058, label %3059, label %3060

3059:                                             ; preds = %3057
  call void @__cxa_free_exception(ptr %3046) #8
  br label %3060

3060:                                             ; preds = %3059, %3057
  br label %3364

3061:                                             ; preds = %3012
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  %3064 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  %3065 = call noundef i64 @_ZNKSt6vectorIN8TypeRepr5FieldESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3064) #8
  %3066 = icmp ule i64 %3065, 1
  br i1 %3066, label %3083, label %3067

3067:                                             ; preds = %3063
  %3068 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  %3069 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3068) #8
  %3070 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %208, i32 0, i32 0
  store ptr %3069, ptr %3070, align 8
  %3071 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  %3072 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3071) #8
  %3073 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %209, i32 0, i32 0
  store ptr %3072, ptr %3073, align 8
  %3074 = getelementptr inbounds %class.anon.393, ptr %210, i32 0, i32 0
  store ptr %142, ptr %3074, align 8, !tbaa !5
  %3075 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %208, i32 0, i32 0
  %3076 = load ptr, ptr %3075, align 8
  %3077 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %209, i32 0, i32 0
  %3078 = load ptr, ptr %3077, align 8
  %3079 = getelementptr inbounds %class.anon.393, ptr %210, i32 0, i32 0
  %3080 = load ptr, ptr %3079, align 8
  %3081 = invoke noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_8EbT_SF_T0_"(ptr %3076, ptr %3078, ptr %3080)
          to label %3082 unwind label %2655

3082:                                             ; preds = %3067
  br i1 %3081, label %3083, label %3182

3083:                                             ; preds = %3082, %3063
  call void @llvm.lifetime.start.p0(i64 24, ptr %211) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %211) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #8
  %3084 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  store ptr %3084, ptr %212, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #8
  %3085 = load ptr, ptr %212, align 8, !tbaa !5
  %3086 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3085) #8
  %3087 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %213, i32 0, i32 0
  store ptr %3086, ptr %3087, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #8
  %3088 = load ptr, ptr %212, align 8, !tbaa !5
  %3089 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3088) #8
  %3090 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %214, i32 0, i32 0
  store ptr %3089, ptr %3090, align 8
  br label %3091

3091:                                             ; preds = %3103, %3083
  %3092 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull align 8 dereferenceable(8) %214) #8
  br i1 %3092, label %3094, label %3093

3093:                                             ; preds = %3091
  store i32 154, ptr %116, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #8
  br label %3118

3094:                                             ; preds = %3091
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #8
  %3095 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %213) #8
  store ptr %3095, ptr %215, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %216) #8
  %3096 = getelementptr inbounds %"struct.HIR::VisEnt.394", ptr %216, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %3096)
          to label %3097 unwind label %3105

3097:                                             ; preds = %3094
  %3098 = getelementptr inbounds %"struct.HIR::VisEnt.394", ptr %216, i32 0, i32 1
  %3099 = load ptr, ptr %215, align 8, !tbaa !5
  %3100 = getelementptr inbounds %"struct.TypeRepr::Field", ptr %3099, i32 0, i32 1
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %3098, ptr noundef nonnull align 8 dereferenceable(8) %3100)
          to label %3101 unwind label %3109

3101:                                             ; preds = %3097
  invoke void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 8 dereferenceable(24) %216)
          to label %3102 unwind label %3113

3102:                                             ; preds = %3101
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #8
  br label %3103

3103:                                             ; preds = %3102
  %3104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %213) #8
  br label %3091

3105:                                             ; preds = %3094
  %3106 = landingpad { ptr, i32 }
          cleanup
  %3107 = extractvalue { ptr, i32 } %3106, 0
  store ptr %3107, ptr %7, align 8
  %3108 = extractvalue { ptr, i32 } %3106, 1
  store i32 %3108, ptr %8, align 4
  br label %3117

3109:                                             ; preds = %3097
  %3110 = landingpad { ptr, i32 }
          cleanup
  %3111 = extractvalue { ptr, i32 } %3110, 0
  store ptr %3111, ptr %7, align 8
  %3112 = extractvalue { ptr, i32 } %3110, 1
  store i32 %3112, ptr %8, align 4
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3096) #8
  br label %3117

3113:                                             ; preds = %3101
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %7, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %8, align 4
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #8
  br label %3117

3117:                                             ; preds = %3113, %3109, %3105
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #8
  br label %3181

3118:                                             ; preds = %3093
  call void @llvm.lifetime.start.p0(i64 256, ptr %217) #8
  call void @llvm.memset.p0.i64(ptr align 8 %218, i8 0, i64 96, i1 false)
  call void @_ZN3HIR13GenericParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %218) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(24) %220, ptr noundef nonnull align 8 dereferenceable(24) %211) #8
  invoke void @_ZN3HIR6Struct4DataC2ESt6vectorINS_6VisEntINS_7TypeRefEEESaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef %220)
          to label %3119 unwind label %3140

3119:                                             ; preds = %3118
  invoke void @_ZN3HIR6StructC2ENS_13GenericParamsENS0_4ReprENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(252) %217, ptr noundef %218, i32 noundef 1, ptr noundef %219)
          to label %3120 unwind label %3144

3120:                                             ; preds = %3119
  call void @_ZN3HIR6Struct4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %220) #8
  call void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %218) #8
  %3121 = getelementptr inbounds %"class.HIR::Struct", ptr %217, i32 0, i32 6
  %3122 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %3121, i32 0, i32 2
  store i8 1, ptr %3122, align 2, !tbaa !85
  call void @llvm.lifetime.start.p0(i64 424, ptr %221) #8
  %3123 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %221, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %3123)
          to label %3124 unwind label %3149

3124:                                             ; preds = %3120
  store i1 true, ptr %223, align 1
  %3125 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %221, i32 0, i32 1
  call void @_ZN3HIR6StructC2EOS0_(ptr noundef nonnull align 8 dereferenceable(252) %222, ptr noundef nonnull align 8 dereferenceable(252) %217) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(408) %3125, ptr noundef %222)
          to label %3126 unwind label %3153

3126:                                             ; preds = %3124
  store i1 false, ptr %223, align 1
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %222) #8
  %3127 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %3128 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %3127)
          to label %3129 unwind label %3160

3129:                                             ; preds = %3126
  %3130 = getelementptr inbounds %"class.HIR::Crate", ptr %3128, i32 0, i32 2
  %3131 = getelementptr inbounds %"class.HIR::Module", ptr %3130, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %224) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.377") align 8 %225, ptr noundef nonnull align 8 dereferenceable(424) %221)
          to label %3132 unwind label %3164

3132:                                             ; preds = %3129
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.375") align 8 %224, ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %3133 unwind label %3168

3133:                                             ; preds = %3132
  %3134 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %3131, ptr noundef nonnull align 8 dereferenceable(16) %224)
          to label %3135 unwind label %3172

3135:                                             ; preds = %3133
  %3136 = getelementptr inbounds { ptr, i8 }, ptr %226, i32 0, i32 0
  %3137 = extractvalue { ptr, i8 } %3134, 0
  store ptr %3137, ptr %3136, align 8
  %3138 = getelementptr inbounds { ptr, i8 }, ptr %226, i32 0, i32 1
  %3139 = extractvalue { ptr, i8 } %3134, 1
  store i8 %3139, ptr %3138, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %221) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr %221) #8
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %217) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %217) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %211) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %211) #8
  br label %3360

3140:                                             ; preds = %3118
  %3141 = landingpad { ptr, i32 }
          cleanup
  %3142 = extractvalue { ptr, i32 } %3141, 0
  store ptr %3142, ptr %7, align 8
  %3143 = extractvalue { ptr, i32 } %3141, 1
  store i32 %3143, ptr %8, align 4
  br label %3148

3144:                                             ; preds = %3119
  %3145 = landingpad { ptr, i32 }
          cleanup
  %3146 = extractvalue { ptr, i32 } %3145, 0
  store ptr %3146, ptr %7, align 8
  %3147 = extractvalue { ptr, i32 } %3145, 1
  store i32 %3147, ptr %8, align 4
  call void @_ZN3HIR6Struct4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #8
  br label %3148

3148:                                             ; preds = %3144, %3140
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %220) #8
  call void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %218) #8
  br label %3180

3149:                                             ; preds = %3120
  %3150 = landingpad { ptr, i32 }
          cleanup
  %3151 = extractvalue { ptr, i32 } %3150, 0
  store ptr %3151, ptr %7, align 8
  %3152 = extractvalue { ptr, i32 } %3150, 1
  store i32 %3152, ptr %8, align 4
  br label %3179

3153:                                             ; preds = %3124
  %3154 = landingpad { ptr, i32 }
          cleanup
  %3155 = extractvalue { ptr, i32 } %3154, 0
  store ptr %3155, ptr %7, align 8
  %3156 = extractvalue { ptr, i32 } %3154, 1
  store i32 %3156, ptr %8, align 4
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %222) #8
  %3157 = load i1, ptr %223, align 1
  br i1 %3157, label %3158, label %3159

3158:                                             ; preds = %3153
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3123) #8
  br label %3159

3159:                                             ; preds = %3158, %3153
  br label %3179

3160:                                             ; preds = %3126
  %3161 = landingpad { ptr, i32 }
          cleanup
  %3162 = extractvalue { ptr, i32 } %3161, 0
  store ptr %3162, ptr %7, align 8
  %3163 = extractvalue { ptr, i32 } %3161, 1
  store i32 %3163, ptr %8, align 4
  br label %3178

3164:                                             ; preds = %3129
  %3165 = landingpad { ptr, i32 }
          cleanup
  %3166 = extractvalue { ptr, i32 } %3165, 0
  store ptr %3166, ptr %7, align 8
  %3167 = extractvalue { ptr, i32 } %3165, 1
  store i32 %3167, ptr %8, align 4
  br label %3177

3168:                                             ; preds = %3132
  %3169 = landingpad { ptr, i32 }
          cleanup
  %3170 = extractvalue { ptr, i32 } %3169, 0
  store ptr %3170, ptr %7, align 8
  %3171 = extractvalue { ptr, i32 } %3169, 1
  store i32 %3171, ptr %8, align 4
  br label %3176

3172:                                             ; preds = %3133
  %3173 = landingpad { ptr, i32 }
          cleanup
  %3174 = extractvalue { ptr, i32 } %3173, 0
  store ptr %3174, ptr %7, align 8
  %3175 = extractvalue { ptr, i32 } %3173, 1
  store i32 %3175, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #8
  br label %3176

3176:                                             ; preds = %3172, %3168
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #8
  br label %3177

3177:                                             ; preds = %3176, %3164
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #8
  br label %3178

3178:                                             ; preds = %3177, %3160
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %221) #8
  br label %3179

3179:                                             ; preds = %3178, %3159, %3149
  call void @llvm.lifetime.end.p0(i64 424, ptr %221) #8
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %217) #8
  br label %3180

3180:                                             ; preds = %3179, %3148
  call void @llvm.lifetime.end.p0(i64 256, ptr %217) #8
  br label %3181

3181:                                             ; preds = %3180, %3117
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %211) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %211) #8
  br label %3364

3182:                                             ; preds = %3082
  %3183 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  %3184 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3183) #8
  %3185 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %227, i32 0, i32 0
  store ptr %3184, ptr %3185, align 8
  %3186 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  %3187 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3186) #8
  %3188 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %228, i32 0, i32 0
  store ptr %3187, ptr %3188, align 8
  %3189 = getelementptr inbounds %class.anon.395, ptr %229, i32 0, i32 0
  store ptr %142, ptr %3189, align 8, !tbaa !5
  %3190 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %227, i32 0, i32 0
  %3191 = load ptr, ptr %3190, align 8
  %3192 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %228, i32 0, i32 0
  %3193 = load ptr, ptr %3192, align 8
  %3194 = getelementptr inbounds %class.anon.395, ptr %229, i32 0, i32 0
  %3195 = load ptr, ptr %3194, align 8
  %3196 = invoke noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_9EbT_SF_T0_"(ptr %3191, ptr %3193, ptr %3195)
          to label %3197 unwind label %2655

3197:                                             ; preds = %3182
  br i1 %3196, label %3198, label %3331

3198:                                             ; preds = %3197
  %3199 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 2
  %3200 = invoke noundef zeroext i1 @_ZNK8TypeRepr11VariantMode7is_NoneEv(ptr noundef nonnull align 8 dereferenceable(72) %3199)
          to label %3201 unwind label %2655

3201:                                             ; preds = %3198
  br i1 %3200, label %3202, label %3302

3202:                                             ; preds = %3201
  call void @llvm.lifetime.start.p0(i64 184, ptr %230) #8
  call void @_ZN3HIR5UnionC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %230) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #8
  %3203 = getelementptr inbounds %struct.TypeRepr, ptr %142, i32 0, i32 3
  store ptr %3203, ptr %231, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #8
  %3204 = load ptr, ptr %231, align 8, !tbaa !5
  %3205 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3204) #8
  %3206 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %232, i32 0, i32 0
  store ptr %3205, ptr %3206, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #8
  %3207 = load ptr, ptr %231, align 8, !tbaa !5
  %3208 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3207) #8
  %3209 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.392", ptr %233, i32 0, i32 0
  store ptr %3208, ptr %3209, align 8
  br label %3210

3210:                                             ; preds = %3225, %3202
  %3211 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull align 8 dereferenceable(8) %233) #8
  br i1 %3211, label %3213, label %3212

3212:                                             ; preds = %3210
  store i32 156, ptr %116, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #8
  br label %3250

3213:                                             ; preds = %3210
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #8
  %3214 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %232) #8
  store ptr %3214, ptr %234, align 8, !tbaa !5
  %3215 = getelementptr inbounds %"class.HIR::Union", ptr %230, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %235) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #8
  invoke void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %236)
          to label %3216 unwind label %3227

3216:                                             ; preds = %3213
  call void @llvm.lifetime.start.p0(i64 24, ptr %237) #8
  %3217 = getelementptr inbounds %"struct.HIR::VisEnt.394", ptr %237, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %3217)
          to label %3218 unwind label %3231

3218:                                             ; preds = %3216
  %3219 = getelementptr inbounds %"struct.HIR::VisEnt.394", ptr %237, i32 0, i32 1
  %3220 = load ptr, ptr %234, align 8, !tbaa !5
  %3221 = getelementptr inbounds %"struct.TypeRepr::Field", ptr %3220, i32 0, i32 1
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %3219, ptr noundef nonnull align 8 dereferenceable(8) %3221)
          to label %3222 unwind label %3235

3222:                                             ; preds = %3218
  invoke void @_ZSt9make_pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.396") align 8 %235, ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull align 8 dereferenceable(24) %237)
          to label %3223 unwind label %3239

3223:                                             ; preds = %3222
  invoke void @_ZNSt6vectorISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %3215, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %3224 unwind label %3243

3224:                                             ; preds = %3223
  call void @_ZNSt4pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #8
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %237) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  br label %3225

3225:                                             ; preds = %3224
  %3226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %232) #8
  br label %3210

3227:                                             ; preds = %3213
  %3228 = landingpad { ptr, i32 }
          cleanup
  %3229 = extractvalue { ptr, i32 } %3228, 0
  store ptr %3229, ptr %7, align 8
  %3230 = extractvalue { ptr, i32 } %3228, 1
  store i32 %3230, ptr %8, align 4
  br label %3249

3231:                                             ; preds = %3216
  %3232 = landingpad { ptr, i32 }
          cleanup
  %3233 = extractvalue { ptr, i32 } %3232, 0
  store ptr %3233, ptr %7, align 8
  %3234 = extractvalue { ptr, i32 } %3232, 1
  store i32 %3234, ptr %8, align 4
  br label %3248

3235:                                             ; preds = %3218
  %3236 = landingpad { ptr, i32 }
          cleanup
  %3237 = extractvalue { ptr, i32 } %3236, 0
  store ptr %3237, ptr %7, align 8
  %3238 = extractvalue { ptr, i32 } %3236, 1
  store i32 %3238, ptr %8, align 4
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3217) #8
  br label %3248

3239:                                             ; preds = %3222
  %3240 = landingpad { ptr, i32 }
          cleanup
  %3241 = extractvalue { ptr, i32 } %3240, 0
  store ptr %3241, ptr %7, align 8
  %3242 = extractvalue { ptr, i32 } %3240, 1
  store i32 %3242, ptr %8, align 4
  br label %3247

3243:                                             ; preds = %3223
  %3244 = landingpad { ptr, i32 }
          cleanup
  %3245 = extractvalue { ptr, i32 } %3244, 0
  store ptr %3245, ptr %7, align 8
  %3246 = extractvalue { ptr, i32 } %3244, 1
  store i32 %3246, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #8
  br label %3247

3247:                                             ; preds = %3243, %3239
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %237) #8
  br label %3248

3248:                                             ; preds = %3247, %3235, %3231
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #8
  br label %3249

3249:                                             ; preds = %3248, %3227
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #8
  br label %3301

3250:                                             ; preds = %3212
  %3251 = getelementptr inbounds %"class.HIR::Union", ptr %230, i32 0, i32 3
  %3252 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %3251, i32 0, i32 2
  store i8 1, ptr %3252, align 2, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 424, ptr %238) #8
  %3253 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %238, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %3253)
          to label %3254 unwind label %3270

3254:                                             ; preds = %3250
  store i1 true, ptr %240, align 1
  %3255 = getelementptr inbounds %"struct.HIR::VisEnt.289", ptr %238, i32 0, i32 1
  call void @_ZN3HIR5UnionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(184) %239, ptr noundef nonnull align 8 dereferenceable(184) %230) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(408) %3255, ptr noundef %239)
          to label %3256 unwind label %3274

3256:                                             ; preds = %3254
  store i1 false, ptr %240, align 1
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %239) #8
  %3257 = getelementptr inbounds %struct.MirOptTestFile, ptr %0, i32 0, i32 1
  %3258 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %3257)
          to label %3259 unwind label %3281

3259:                                             ; preds = %3256
  %3260 = getelementptr inbounds %"class.HIR::Crate", ptr %3258, i32 0, i32 2
  %3261 = getelementptr inbounds %"class.HIR::Module", ptr %3260, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %241) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.377") align 8 %242, ptr noundef nonnull align 8 dereferenceable(424) %238)
          to label %3262 unwind label %3285

3262:                                             ; preds = %3259
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.375") align 8 %241, ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %242)
          to label %3263 unwind label %3289

3263:                                             ; preds = %3262
  %3264 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %3261, ptr noundef nonnull align 8 dereferenceable(16) %241)
          to label %3265 unwind label %3293

3265:                                             ; preds = %3263
  %3266 = getelementptr inbounds { ptr, i8 }, ptr %243, i32 0, i32 0
  %3267 = extractvalue { ptr, i8 } %3264, 0
  store ptr %3267, ptr %3266, align 8
  %3268 = getelementptr inbounds { ptr, i8 }, ptr %243, i32 0, i32 1
  %3269 = extractvalue { ptr, i8 } %3264, 1
  store i8 %3269, ptr %3268, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %241) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %238) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr %238) #8
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %230) #8
  call void @llvm.lifetime.end.p0(i64 184, ptr %230) #8
  br label %3330

3270:                                             ; preds = %3250
  %3271 = landingpad { ptr, i32 }
          cleanup
  %3272 = extractvalue { ptr, i32 } %3271, 0
  store ptr %3272, ptr %7, align 8
  %3273 = extractvalue { ptr, i32 } %3271, 1
  store i32 %3273, ptr %8, align 4
  br label %3300

3274:                                             ; preds = %3254
  %3275 = landingpad { ptr, i32 }
          cleanup
  %3276 = extractvalue { ptr, i32 } %3275, 0
  store ptr %3276, ptr %7, align 8
  %3277 = extractvalue { ptr, i32 } %3275, 1
  store i32 %3277, ptr %8, align 4
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %239) #8
  %3278 = load i1, ptr %240, align 1
  br i1 %3278, label %3279, label %3280

3279:                                             ; preds = %3274
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3253) #8
  br label %3280

3280:                                             ; preds = %3279, %3274
  br label %3300

3281:                                             ; preds = %3256
  %3282 = landingpad { ptr, i32 }
          cleanup
  %3283 = extractvalue { ptr, i32 } %3282, 0
  store ptr %3283, ptr %7, align 8
  %3284 = extractvalue { ptr, i32 } %3282, 1
  store i32 %3284, ptr %8, align 4
  br label %3299

3285:                                             ; preds = %3259
  %3286 = landingpad { ptr, i32 }
          cleanup
  %3287 = extractvalue { ptr, i32 } %3286, 0
  store ptr %3287, ptr %7, align 8
  %3288 = extractvalue { ptr, i32 } %3286, 1
  store i32 %3288, ptr %8, align 4
  br label %3298

3289:                                             ; preds = %3262
  %3290 = landingpad { ptr, i32 }
          cleanup
  %3291 = extractvalue { ptr, i32 } %3290, 0
  store ptr %3291, ptr %7, align 8
  %3292 = extractvalue { ptr, i32 } %3290, 1
  store i32 %3292, ptr %8, align 4
  br label %3297

3293:                                             ; preds = %3263
  %3294 = landingpad { ptr, i32 }
          cleanup
  %3295 = extractvalue { ptr, i32 } %3294, 0
  store ptr %3295, ptr %7, align 8
  %3296 = extractvalue { ptr, i32 } %3294, 1
  store i32 %3296, ptr %8, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %241) #8
  br label %3297

3297:                                             ; preds = %3293, %3289
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #8
  br label %3298

3298:                                             ; preds = %3297, %3285
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #8
  br label %3299

3299:                                             ; preds = %3298, %3281
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %238) #8
  br label %3300

3300:                                             ; preds = %3299, %3280, %3270
  call void @llvm.lifetime.end.p0(i64 424, ptr %238) #8
  br label %3301

3301:                                             ; preds = %3300, %3249
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %230) #8
  call void @llvm.lifetime.end.p0(i64 184, ptr %230) #8
  br label %3364

3302:                                             ; preds = %3201
  br label %3303

3303:                                             ; preds = %3302
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %244, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %245, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %3304 unwind label %3310

3304:                                             ; preds = %3303
  call void @llvm.lifetime.start.p0(i64 16, ptr %247) #8
  %3305 = getelementptr inbounds %class.anon.398, ptr %247, i32 0, i32 0
  store ptr %244, ptr %3305, align 8, !tbaa !5
  %3306 = getelementptr inbounds %class.anon.398, ptr %247, i32 0, i32 1
  store ptr %146, ptr %3306, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(16) %247) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef %246)
          to label %3307 unwind label %3314

3307:                                             ; preds = %3304
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %247) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #8
  %3308 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3308, ptr noundef @.str.6)
          to label %3309 unwind label %3319

3309:                                             ; preds = %3307
  invoke void @__cxa_throw(ptr %3308, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %3323

3310:                                             ; preds = %3303
  %3311 = landingpad { ptr, i32 }
          cleanup
  %3312 = extractvalue { ptr, i32 } %3311, 0
  store ptr %3312, ptr %7, align 8
  %3313 = extractvalue { ptr, i32 } %3311, 1
  store i32 %3313, ptr %8, align 4
  br label %3318

3314:                                             ; preds = %3304
  %3315 = landingpad { ptr, i32 }
          cleanup
  %3316 = extractvalue { ptr, i32 } %3315, 0
  store ptr %3316, ptr %7, align 8
  %3317 = extractvalue { ptr, i32 } %3315, 1
  store i32 %3317, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %247) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #8
  br label %3318

3318:                                             ; preds = %3314, %3310
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #8
  br label %3327

3319:                                             ; preds = %3307
  %3320 = landingpad { ptr, i32 }
          cleanup
  %3321 = extractvalue { ptr, i32 } %3320, 0
  store ptr %3321, ptr %7, align 8
  %3322 = extractvalue { ptr, i32 } %3320, 1
  store i32 %3322, ptr %8, align 4
  call void @__cxa_free_exception(ptr %3308) #8
  br label %3327

3323:                                             ; preds = %3309
  %3324 = landingpad { ptr, i32 }
          cleanup
  %3325 = extractvalue { ptr, i32 } %3324, 0
  store ptr %3325, ptr %7, align 8
  %3326 = extractvalue { ptr, i32 } %3324, 1
  store i32 %3326, ptr %8, align 4
  br label %3327

3327:                                             ; preds = %3323, %3319, %3318
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #8
  br label %3364

3328:                                             ; No predecessors!
  br label %3329

3329:                                             ; preds = %3328
  br label %3330

3330:                                             ; preds = %3329, %3265
  br label %3359

3331:                                             ; preds = %3197
  br label %3332

3332:                                             ; preds = %3331
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %248, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %249, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %3333 unwind label %3339

3333:                                             ; preds = %3332
  call void @llvm.lifetime.start.p0(i64 16, ptr %251) #8
  %3334 = getelementptr inbounds %class.anon.399, ptr %251, i32 0, i32 0
  store ptr %248, ptr %3334, align 8, !tbaa !5
  %3335 = getelementptr inbounds %class.anon.399, ptr %251, i32 0, i32 1
  store ptr %146, ptr %3335, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(16) %251) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef %250)
          to label %3336 unwind label %3343

3336:                                             ; preds = %3333
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %251) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #8
  %3337 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3337, ptr noundef @.str.6)
          to label %3338 unwind label %3348

3338:                                             ; preds = %3336
  invoke void @__cxa_throw(ptr %3337, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %3352

3339:                                             ; preds = %3332
  %3340 = landingpad { ptr, i32 }
          cleanup
  %3341 = extractvalue { ptr, i32 } %3340, 0
  store ptr %3341, ptr %7, align 8
  %3342 = extractvalue { ptr, i32 } %3340, 1
  store i32 %3342, ptr %8, align 4
  br label %3347

3343:                                             ; preds = %3333
  %3344 = landingpad { ptr, i32 }
          cleanup
  %3345 = extractvalue { ptr, i32 } %3344, 0
  store ptr %3345, ptr %7, align 8
  %3346 = extractvalue { ptr, i32 } %3344, 1
  store i32 %3346, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %251) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #8
  br label %3347

3347:                                             ; preds = %3343, %3339
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #8
  br label %3356

3348:                                             ; preds = %3336
  %3349 = landingpad { ptr, i32 }
          cleanup
  %3350 = extractvalue { ptr, i32 } %3349, 0
  store ptr %3350, ptr %7, align 8
  %3351 = extractvalue { ptr, i32 } %3349, 1
  store i32 %3351, ptr %8, align 4
  call void @__cxa_free_exception(ptr %3337) #8
  br label %3356

3352:                                             ; preds = %3338
  %3353 = landingpad { ptr, i32 }
          cleanup
  %3354 = extractvalue { ptr, i32 } %3353, 0
  store ptr %3354, ptr %7, align 8
  %3355 = extractvalue { ptr, i32 } %3353, 1
  store i32 %3355, ptr %8, align 4
  br label %3356

3356:                                             ; preds = %3352, %3348, %3347
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #8
  br label %3364

3357:                                             ; No predecessors!
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358, %3330
  br label %3360

3360:                                             ; preds = %3359, %3135
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  store i32 0, ptr %116, align 4
  br label %3361

3361:                                             ; preds = %3360, %2225
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #8
  call void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %142) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %142) #8
  %3362 = load i32, ptr %116, align 4
  switch i32 %3362, label %3416 [
    i32 0, label %3363
  ]

3363:                                             ; preds = %3361
  br label %3412

3364:                                             ; preds = %3356, %3327, %3301, %3181, %3060, %3042, %3003, %2972, %2793, %2775, %2731, %2713, %2668, %2667, %2655
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #8
  br label %3365

3365:                                             ; preds = %3364, %2637, %2619, %2580, %2562, %2523, %2505, %2460, %2459, %2447
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  br label %3366

3366:                                             ; preds = %3365, %2429, %2411, %2372, %2354, %2315, %2297, %2260, %2209, %2191, %2179
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #8
  br label %3367

3367:                                             ; preds = %3366, %2175
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #8
  br label %3368

3368:                                             ; preds = %3367, %2136, %2115, %2114
  call void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %142) #8
  br label %3369

3369:                                             ; preds = %3368, %2102
  call void @llvm.lifetime.end.p0(i64 112, ptr %142) #8
  br label %3419

3370:                                             ; preds = %2072
  call void @llvm.lifetime.start.p0(i64 88, ptr %252) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %252, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %3371 unwind label %3383

3371:                                             ; preds = %3370
  %3372 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %13, ptr noundef nonnull align 8 dereferenceable(88) %252)
          to label %3373 unwind label %3387

3373:                                             ; preds = %3371
  %3374 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3372)
          to label %3375 unwind label %3387

3375:                                             ; preds = %3373
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %252) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %252) #8
  br label %3376

3376:                                             ; preds = %3375
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %253, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %254, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %3377 unwind label %3392

3377:                                             ; preds = %3376
  call void @llvm.lifetime.start.p0(i64 16, ptr %256) #8
  %3378 = getelementptr inbounds %class.anon.400, ptr %256, i32 0, i32 0
  store ptr %253, ptr %3378, align 8, !tbaa !5
  %3379 = getelementptr inbounds %class.anon.400, ptr %256, i32 0, i32 1
  store ptr %13, ptr %3379, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull align 8 dereferenceable(16) %256) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef %255)
          to label %3380 unwind label %3396

3380:                                             ; preds = %3377
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %256) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #8
  %3381 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3381, ptr noundef @.str.6)
          to label %3382 unwind label %3401

3382:                                             ; preds = %3380
  invoke void @__cxa_throw(ptr %3381, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %3433 unwind label %3405

3383:                                             ; preds = %3370
  %3384 = landingpad { ptr, i32 }
          cleanup
  %3385 = extractvalue { ptr, i32 } %3384, 0
  store ptr %3385, ptr %7, align 8
  %3386 = extractvalue { ptr, i32 } %3384, 1
  store i32 %3386, ptr %8, align 4
  br label %3391

3387:                                             ; preds = %3373, %3371
  %3388 = landingpad { ptr, i32 }
          cleanup
  %3389 = extractvalue { ptr, i32 } %3388, 0
  store ptr %3389, ptr %7, align 8
  %3390 = extractvalue { ptr, i32 } %3388, 1
  store i32 %3390, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %252) #8
  br label %3391

3391:                                             ; preds = %3387, %3383
  call void @llvm.lifetime.end.p0(i64 88, ptr %252) #8
  br label %3419

3392:                                             ; preds = %3376
  %3393 = landingpad { ptr, i32 }
          cleanup
  %3394 = extractvalue { ptr, i32 } %3393, 0
  store ptr %3394, ptr %7, align 8
  %3395 = extractvalue { ptr, i32 } %3393, 1
  store i32 %3395, ptr %8, align 4
  br label %3400

3396:                                             ; preds = %3377
  %3397 = landingpad { ptr, i32 }
          cleanup
  %3398 = extractvalue { ptr, i32 } %3397, 0
  store ptr %3398, ptr %7, align 8
  %3399 = extractvalue { ptr, i32 } %3397, 1
  store i32 %3399, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %256) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #8
  br label %3400

3400:                                             ; preds = %3396, %3392
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #8
  br label %3409

3401:                                             ; preds = %3380
  %3402 = landingpad { ptr, i32 }
          cleanup
  %3403 = extractvalue { ptr, i32 } %3402, 0
  store ptr %3403, ptr %7, align 8
  %3404 = extractvalue { ptr, i32 } %3402, 1
  store i32 %3404, ptr %8, align 4
  call void @__cxa_free_exception(ptr %3381) #8
  br label %3409

3405:                                             ; preds = %3382
  %3406 = landingpad { ptr, i32 }
          cleanup
  %3407 = extractvalue { ptr, i32 } %3406, 0
  store ptr %3407, ptr %7, align 8
  %3408 = extractvalue { ptr, i32 } %3406, 1
  store i32 %3408, ptr %8, align 4
  br label %3409

3409:                                             ; preds = %3405, %3401, %3400
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #8
  br label %3419

3410:                                             ; No predecessors!
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411, %3363
  br label %3413

3413:                                             ; preds = %3412, %2032
  br label %3414

3414:                                             ; preds = %3413, %1842
  br label %3415

3415:                                             ; preds = %3414, %853
  store i32 0, ptr %116, align 4
  br label %3416

3416:                                             ; preds = %3415, %3361
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #8
  %3417 = load i32, ptr %116, align 4
  switch i32 %3417, label %3433 [
    i32 0, label %3418
    i32 2, label %272
  ]

3418:                                             ; preds = %3416
  br label %272, !llvm.loop !108

3419:                                             ; preds = %3409, %3391, %3369, %2069, %1947, %1929, %1889, %857, %642, %425, %407, %368, %350, %338
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #8
  br label %3422

3420:                                             ; preds = %274
  store i1 true, ptr %5, align 1
  store i32 1, ptr %116, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %13) #8
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %11) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %11) #8
  %3421 = load i1, ptr %5, align 1
  br i1 %3421, label %3426, label %3425

3422:                                             ; preds = %3419, %334
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  br label %3423

3423:                                             ; preds = %3422, %330
  call void @llvm.lifetime.end.p0(i64 88, ptr %13) #8
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %11) #8
  br label %3424

3424:                                             ; preds = %3423, %326
  call void @llvm.lifetime.end.p0(i64 256, ptr %11) #8
  br label %3427

3425:                                             ; preds = %3420
  call void @_ZN14MirOptTestFileD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0) #8
  br label %3426

3426:                                             ; preds = %3425, %3420
  ret void

3427:                                             ; preds = %3424, %325, %308
  call void @_ZN14MirOptTestFileD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0) #8
  br label %3428

3428:                                             ; preds = %3427
  %3429 = load ptr, ptr %7, align 8
  %3430 = load i32, ptr %8, align 4
  %3431 = insertvalue { ptr, i32 } poison, ptr %3429, 0
  %3432 = insertvalue { ptr, i32 } %3431, i32 %3430, 1
  resume { ptr, i32 } %3432

3433:                                             ; preds = %3416, %3382, %3338, %3309, %3048, %2985, %2938, %2872, %2810, %2781, %2719, %2654, %2625, %2568, %2511, %2446, %2417, %2360, %2303, %2197, %2124, %2003, %1935, %1813, %1750, %1703, %1681, %1538, %1471, %1414, %1347, %1290, %1192, %1128, %1045, %979, %910, %607, %539, %482, %413, %356
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

declare void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #5

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

; Function Attrs: nounwind
declare void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #7 align 2

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

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

declare void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef byval(%struct.ParseState) align 8) unnamed_addr #5

declare void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #5

declare noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #5

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #0

declare void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #5

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88)) #3 align 2

; Function Attrs: nounwind
declare void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #6

declare noundef zeroext i1 @_Z13debug_enabledv() #5

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 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)) #1

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) unnamed_addr #5

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN10ParseError10UnexpectedD1Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #6

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE6insertIS9_IS0_S6_EEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(40)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.179") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7 align 2

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114parse_functionER11TokenStreamR8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::Function") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR8FunctionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.235") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.237") align 8, ptr noundef nonnull align 8 dereferenceable(384)) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7LinkageC2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR6StaticC2ENS_7LinkageEbNS_7TypeRefENS_7ExprPtrE(ptr noundef nonnull align 8 dereferenceable(360), ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14EncodedLiteralC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Reloc9new_namedEmmN3HIR4PathE(ptr dead_on_unwind noalias writable sret(%struct.Reloc) align 8, i64 noundef, i64 noundef, ptr noundef) #0 align 2

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

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

declare void @_ZN3HIR4PathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5Reloc9new_bytesEmmNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%struct.Reloc) align 8, i64 noundef, i64 noundef, ptr noundef) #3 align 2

declare void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #5

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN14EncodedLiteralaSEOS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR6StaticC2EOS0_(ptr noundef nonnull align 8 dereferenceable(360), ptr noundef nonnull align 8 dereferenceable(360)) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(80)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairI8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.272") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(72)) #0

declare void @_ZN3HIR8CratePtrC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.375") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.377") align 8, ptr noundef nonnull align 8 dereferenceable(424)) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_8EbT_SF_T0_"(ptr, ptr, ptr) #1

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

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

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

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

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

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

declare void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR13GenericParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #7 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StructC2EOS0_(ptr noundef nonnull align 8 dereferenceable(252), ptr noundef nonnull align 8 dereferenceable(252)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_9EbT_SF_T0_"(ptr, ptr, ptr) #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.396") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14MirOptTestFileD2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #7 align 2

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

!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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTSSt16initializer_listI8RcStringE", !6, i64 0, !15, i64 8}
!15 = !{!"long", !7, i64 0}
!16 = !{!14, !15, i64 8}
!17 = !{!18, !18, i64 0}
!18 = !{!"bool", !7, i64 0}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!7, !7, i64 0}
!22 = distinct !{!22, !12}
!23 = !{!24, !18, i64 304}
!24 = !{!"_ZTSN3HIR6StaticE", !25, i64 0, !42, i64 96, !18, i64 168, !46, i64 176, !47, i64 184, !55, i64 256, !18, i64 304, !18, i64 305, !18, i64 306, !64, i64 312}
!25 = !{!"_ZTSN3HIR13GenericParamsE", !26, i64 0, !30, i64 24, !34, i64 48, !38, i64 72}
!26 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!42 = !{!"_ZTSN3HIR7LinkageE", !43, i64 0, !44, i64 8, !44, i64 40}
!43 = !{!"_ZTSN3HIR7Linkage4TypeE", !7, i64 0}
!44 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !45, i64 0, !15, i64 8, !7, i64 16}
!45 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!46 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!47 = !{!"_ZTSN3HIR7ExprPtrE", !48, i64 0, !49, i64 8, !49, i64 32, !53, i64 56, !54, i64 64}
!48 = !{!"_ZTSN3HIR12ExprPtrInnerE", !6, i64 0}
!49 = !{!"_ZTSSt6vectorIN3HIR7TypeRefESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSN3MIR15FunctionPointerE", !6, i64 0}
!54 = !{!"_ZTSN3HIR12ExprStatePtrE", !6, i64 0}
!55 = !{!"_ZTS14EncodedLiteral", !56, i64 0, !60, i64 24}
!56 = !{!"_ZTSSt6vectorIhSaIhEE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!60 = !{!"_ZTSSt6vectorI5RelocSaIS0_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI5RelocSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI5RelocSaIS0_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI5RelocSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!64 = !{!"_ZTSSt3mapIN3HIR4PathE14EncodedLiteralSt4lessIS1_ESaISt4pairIKS1_S2_EEE", !65, i64 0}
!65 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_14EncodedLiteralESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE", !66, i64 0}
!66 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_14EncodedLiteralESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !67, i64 0, !69, i64 8}
!67 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR4PathEEE", !68, i64 0}
!68 = !{!"_ZTSSt4lessIN3HIR4PathEE"}
!69 = !{!"_ZTSSt15_Rb_tree_header", !70, i64 0, !15, i64 32}
!70 = !{!"_ZTSSt18_Rb_tree_node_base", !71, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!71 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!72 = !{!73, !15, i64 8}
!73 = !{!"_ZTS8TypeRepr", !15, i64 0, !15, i64 8, !74, i64 16, !76, i64 88}
!74 = !{!"_ZTSN8TypeRepr11VariantModeE", !75, i64 0, !7, i64 8}
!75 = !{!"_ZTSN8TypeRepr11VariantMode3TagE", !7, i64 0}
!76 = !{!"_ZTSSt6vectorIN8TypeRepr5FieldESaIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!80 = !{!73, !15, i64 0}
!81 = !{!82, !15, i64 0}
!82 = !{!"_ZTSN8TypeRepr5FieldE", !15, i64 0, !46, i64 8}
!83 = distinct !{!83, !12}
!84 = distinct !{!84, !12}
!85 = !{!86, !18, i64 146}
!86 = !{!"_ZTSN3HIR6StructE", !25, i64 0, !87, i64 96, !88, i64 104, !10, i64 136, !10, i64 140, !90, i64 144, !96, i64 200, !100, i64 248}
!87 = !{!"_ZTSN3HIR6Struct4ReprE", !7, i64 0}
!88 = !{!"_ZTSN3HIR6Struct4DataE", !89, i64 0, !7, i64 8}
!89 = !{!"_ZTSN3HIR6Struct4Data3TagE", !7, i64 0}
!90 = !{!"_ZTSN3HIR13TraitMarkingsE", !18, i64 0, !18, i64 1, !18, i64 2, !91, i64 8}
!91 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !92, i64 0}
!92 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !93, i64 0}
!93 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !94, i64 0, !69, i64 8}
!94 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !95, i64 0}
!95 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!96 = !{!"_ZTSN3HIR14StructMarkingsE", !18, i64 0, !10, i64 4, !97, i64 8, !10, i64 12, !98, i64 16, !10, i64 20, !10, i64 24, !18, i64 28, !18, i64 29, !99, i64 32}
!97 = !{!"_ZTSN3HIR14StructMarkings7DstTypeE", !7, i64 0}
!98 = !{!"_ZTSN3HIR14StructMarkings6CoerceE", !7, i64 0}
!99 = !{!"_ZTS4U128", !15, i64 0, !15, i64 8}
!100 = !{!"_ZTSN3HIR14ConstEvalStateE", !7, i64 0}
!101 = !{!102, !18, i64 130}
!102 = !{!"_ZTSN3HIR5UnionE", !25, i64 0, !103, i64 96, !104, i64 104, !90, i64 128}
!103 = !{!"_ZTSN3HIR5Union4ReprE", !7, i64 0}
!104 = !{!"_ZTSSt6vectorISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE", !105, i64 0}
!105 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE", !106, i64 0}
!106 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE12_Vector_implE", !107, i64 0}
!107 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!108 = distinct !{!108, !12}


; 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"

%struct.MirOptTestFile = type { %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr", %"class.std::vector" }
%"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::CratePtr" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl" }
%"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl" = type { %"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MirOptTestFile::Test, std::allocator<MirOptTestFile::Test>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.46", %"class.std::vector.51", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.70", %"class.std::map.75", %"class.std::vector.80", %"struct.HIR::Crate::ImplGroup.85", %"class.std::map.96", %"class.std::map.101", %"class.std::vector.106", %"class.std::unordered_map.111", %"class.std::vector.106", %"class.std::unordered_map.130", %"class.std::vector.144", %"class.std::vector.149" }
%class.RcString = type { ptr }
%"class.HIR::Module" = type { %"class.std::vector.3", %"class.std::unordered_map", %"class.std::unordered_map.13", %"class.std::unordered_map.27", %"class.std::vector.41" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.13" = type { %"class.std::_Hashtable.14" }
%"class.std::_Hashtable.14" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.27" = type { %"class.std::_Hashtable.28" }
%"class.std::_Hashtable.28" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = 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 }
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup" = type { %"class.std::map", %"class.std::vector.59", %"class.std::vector.59" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_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 }
%"class.std::vector.59" = type { %"struct.std::_Vector_base.60" }
%"struct.std::_Vector_base.60" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::InherentCache" = type { %"class.std::map.64" }
%"class.std::map.64" = type { %"class.std::_Rb_tree.65" }
%"class.std::_Rb_tree.65" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.70" = type { %"class.std::_Rb_tree.71" }
%"class.std::_Rb_tree.71" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.75" = type { %"class.std::_Rb_tree.76" }
%"class.std::_Rb_tree.76" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup.85" = type { %"class.std::map.86", %"class.std::vector.91", %"class.std::vector.91" }
%"class.std::map.86" = type { %"class.std::_Rb_tree.87" }
%"class.std::_Rb_tree.87" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.96" = type { %"class.std::_Rb_tree.97" }
%"class.std::_Rb_tree.97" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.101" = type { %"class.std::_Rb_tree.102" }
%"class.std::_Rb_tree.102" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::unordered_map.111" = type { %"class.std::_Hashtable.112" }
%"class.std::_Hashtable.112" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.106" = type { %"struct.std::_Vector_base.107" }
%"struct.std::_Vector_base.107" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.130" = type { %"class.std::_Hashtable.131" }
%"class.std::_Hashtable.131" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.144" = type { %"struct.std::_Vector_base.145" }
%"struct.std::_Vector_base.145" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.149" = type { %"struct.std::_Vector_base.150" }
%"struct.std::_Vector_base.150" = 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 }
%class.Lexer = type { %class.TokenStream, %class.RcString, i32, i32, %"class.std::unique_ptr.161", ptr, i8, %struct.Codepoint, %"class.std::vector.169", i32, %"class.Ident::Hygiene" }
%class.TokenStream = type { ptr, i8, %class.Token, %"class.Ident::Hygiene", i32, %"class.std::vector.156", %struct.ParseState }
%class.Token = type { ptr, i32, %"class.Token::Data", %class.Position, %"class.Ident::Hygiene" }
%"class.Token::Data" = type { i32, %"union.Token::Data::DataUnion" }
%"union.Token::Data::DataUnion" = type { %"class.std::__cxx11::basic_string" }
%class.Position = type { %struct.Span, %class.RcString, i32, i32 }
%struct.Span = type { ptr }
%"class.std::vector.156" = type { %"struct.std::_Vector_base.157" }
%"struct.std::_Vector_base.157" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseState = type { i8, i8, i8, ptr, ptr, ptr }
%"class.std::unique_ptr.161" = type { %"struct.std::__uniq_ptr_data.162" }
%"struct.std::__uniq_ptr_data.162" = type { %"class.std::__uniq_ptr_impl.163" }
%"class.std::__uniq_ptr_impl.163" = type { %"class.std::tuple.164" }
%"class.std::tuple.164" = type { %"struct.std::_Tuple_impl.165" }
%"struct.std::_Tuple_impl.165" = type { %"struct.std::_Head_base.168" }
%"struct.std::_Head_base.168" = type { ptr }
%struct.Codepoint = type { i32 }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Ident::Hygiene" = type { %"class.std::unique_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.155" }
%"struct.std::_Head_base.155" = type { ptr }
%"class.std::map.174" = type { %"class.std::_Rb_tree.175" }
%"class.std::_Rb_tree.175" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const RcString, std::__cxx11::basic_string<char>>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const RcString, std::__cxx11::basic_string<char>>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::pair.179" = type { %class.RcString, %"class.std::__cxx11::basic_string" }
%"class.HIR::Function" = type { i8, %"struct.HIR::Linkage", i32, %"class.HIR::TypeRef", %class.RcString, i8, i8, %"class.HIR::GenericParams", %"class.std::vector.201", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %"struct.HIR::Function::Markings" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.HIR::GenericParams" = type { %"class.std::vector.181", %"class.std::vector.186", %"class.std::vector.191", %"class.std::vector.196" }
%"class.std::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = 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.186" = type { %"struct.std::_Vector_base.187" }
%"struct.std::_Vector_base.187" = 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.191" = type { %"struct.std::_Vector_base.192" }
%"struct.std::_Vector_base.192" = 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.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = 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 }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::TypeRef" = type { ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.206", %"class.std::vector.206", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.206" = type { %"struct.std::_Vector_base.207" }
%"struct.std::_Vector_base.207" = 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.HIR::Function::Markings" = type { %"class.std::vector.211", i8, i32 }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::VisEnt" = type { %"class.HIR::Publicity", %"class.HIR::ValueItem" }
%"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::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.226" }
%struct.EncodedLiteral = type { %"class.std::vector.216", %"class.std::vector.221" }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = 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.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = 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.226" = type { %"class.std::_Rb_tree.227" }
%"class.std::_Rb_tree.227" = 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::pair.235" = type { %class.RcString, %"class.std::unique_ptr.237" }
%"class.std::unique_ptr.237" = type { %"struct.std::__uniq_ptr_data.238" }
%"struct.std::__uniq_ptr_data.238" = type { %"class.std::__uniq_ptr_impl.239" }
%"class.std::__uniq_ptr_impl.239" = type { %"class.std::tuple.240" }
%"class.std::tuple.240" = type { %"struct.std::_Tuple_impl.241" }
%"struct.std::_Tuple_impl.241" = type { %"struct.std::_Head_base.244" }
%"struct.std::_Head_base.244" = type { ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.MirOptTestFile::Test" = type { %"struct.HIR::SimplePath", %"struct.HIR::SimplePath" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.U128 = type { i64, i64 }
%struct.Reloc = type { i64, i64, %"class.std::unique_ptr.247", %"class.std::__cxx11::basic_string" }
%"class.std::unique_ptr.247" = type { %"struct.std::__uniq_ptr_data.248" }
%"struct.std::__uniq_ptr_data.248" = type { %"class.std::__uniq_ptr_impl.249" }
%"class.std::__uniq_ptr_impl.249" = type { %"class.std::tuple.250" }
%"class.std::tuple.250" = type { %"struct.std::_Tuple_impl.251" }
%"struct.std::_Tuple_impl.251" = type { %"struct.std::_Head_base.254" }
%"struct.std::_Head_base.254" = type { ptr }
%"class.HIR::Path" = type { %"class.HIR::Path::Data" }
%"class.HIR::Path::Data" = type { i32, %"union.HIR::Path::Data::DataUnion" }
%"union.HIR::Path::Data::DataUnion" = type { %"struct.HIR::Path::Data::Data_UfcsKnown" }
%"struct.HIR::Path::Data::Data_UfcsKnown" = type { %"class.HIR::TypeRef", %"class.HIR::GenericPath", %class.RcString, %"struct.HIR::PathParams", %"class.std::unique_ptr.258" }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::PathParams" = type { %class.ThinVector.255, %class.ThinVector.256, %class.ThinVector.257 }
%class.ThinVector.255 = type { ptr }
%class.ThinVector.256 = type { ptr }
%class.ThinVector.257 = type { ptr }
%"class.std::unique_ptr.258" = type { %"struct.std::__uniq_ptr_data.259" }
%"struct.std::__uniq_ptr_data.259" = type { %"class.std::__uniq_ptr_impl.260" }
%"class.std::__uniq_ptr_impl.260" = type { %"class.std::tuple.261" }
%"class.std::tuple.261" = type { %"struct.std::_Tuple_impl.262" }
%"struct.std::_Tuple_impl.262" = type { %"struct.std::_Head_base.265" }
%"struct.std::_Head_base.265" = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { i8 }
%"struct.std::pair.272" = type { %class.RcString, %"class.HIR::ExternCrate" }
%"class.HIR::ExternCrate" = type { %"class.HIR::CratePtr", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }
%struct.TypeRepr = type { i64, i64, %"class.TypeRepr::VariantMode", %"class.std::vector.279" }
%"class.TypeRepr::VariantMode" = type { i32, %"union.TypeRepr::VariantMode::DataUnion" }
%"union.TypeRepr::VariantMode::DataUnion" = type { %"struct.TypeRepr::VariantMode::Data_Values" }
%"struct.TypeRepr::VariantMode::Data_Values" = type { %"struct.TypeRepr::FieldPath", %"class.std::vector.274" }
%"struct.TypeRepr::FieldPath" = type { i64, i64, %"class.std::vector.274" }
%"class.std::vector.274" = type { %"struct.std::_Vector_base.275" }
%"struct.std::_Vector_base.275" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.279" = type { %"struct.std::_Vector_base.280" }
%"struct.std::_Vector_base.280" = type { %"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl" }
%"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl" = type { %"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TypeRepr::Field, std::allocator<TypeRepr::Field>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::ExternType" = type { %"struct.HIR::TraitMarkings" }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.284" }
%"class.std::map.284" = type { %"class.std::_Rb_tree.285" }
%"class.std::_Rb_tree.285" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::VisEnt.289" = 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.290", i8, %"class.std::unordered_map.315", %"class.std::unordered_map.329", %"class.std::unordered_multimap", %"class.std::unordered_map.356", i32, %"class.std::vector.290", %"struct.HIR::SimplePath" }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.315" = type { %"class.std::_Hashtable.316" }
%"class.std::_Hashtable.316" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.329" = type { %"class.std::_Hashtable.330" }
%"class.std::_Hashtable.330" = 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.343" }
%"class.std::_Hashtable.343" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.356" = type { %"class.std::_Hashtable.357" }
%"class.std::_Hashtable.357" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.290" = type { %"struct.std::_Vector_base.291" }
%"struct.std::_Vector_base.291" = 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.375" = type { %class.RcString, %"class.std::unique_ptr.377" }
%"class.std::unique_ptr.377" = type { %"struct.std::__uniq_ptr_data.378" }
%"struct.std::__uniq_ptr_data.378" = type { %"class.std::__uniq_ptr_impl.379" }
%"class.std::__uniq_ptr_impl.379" = type { %"class.std::tuple.380" }
%"class.std::tuple.380" = type { %"struct.std::_Tuple_impl.381" }
%"struct.std::_Tuple_impl.381" = type { %"struct.std::_Head_base.384" }
%"struct.std::_Head_base.384" = type { ptr }
%class.anon.385 = type { i8 }
%class.anon.387 = type { i8 }
%class.anon.389 = type { i8 }
%"struct.TypeRepr::Field" = type { i64, %"class.HIR::TypeRef" }
%class.anon.391 = type { ptr, ptr }
%"class.std::vector.305" = type { %"struct.std::_Vector_base.306" }
%"struct.std::_Vector_base.306" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.392" = type { ptr }
%"struct.HIR::VisEnt.394" = type { %"class.HIR::Publicity", %"class.HIR::TypeRef" }
%"class.HIR::Struct" = type <{ %"class.HIR::GenericParams", i32, [4 x i8], %"class.HIR::Struct::Data", i32, i32, %"struct.HIR::TraitMarkings", %"struct.HIR::StructMarkings", i32, [4 x i8] }>
%"class.HIR::Struct::Data" = type { i32, %"union.HIR::Struct::Data::DataUnion" }
%"union.HIR::Struct::Data::DataUnion" = type { %"class.std::vector.305" }
%"struct.HIR::StructMarkings" = type { i8, i32, i32, i32, i32, i32, i32, i8, i8, %class.U128 }
%"class.HIR::Union" = type { %"class.HIR::GenericParams", i32, %"class.std::vector.310", %"struct.HIR::TraitMarkings" }
%"class.std::vector.310" = type { %"struct.std::_Vector_base.311" }
%"struct.std::_Vector_base.311" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.396" = type { %class.RcString, %"struct.HIR::VisEnt.394" }
%class.anon.398 = type { ptr, ptr }
%class.anon.399 = type { ptr, ptr }
%class.anon.400 = type { ptr, ptr }

@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE = external hidden unnamed_addr constant [15 x i8], align 1
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN10ParseError10UnexpectedE = external constant ptr
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.6 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE(ptr dead_on_unwind noalias nonnull writable sret(%struct.MirOptTestFile) align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %1) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.HIR::CratePtr", align 8
  %5 = alloca %"class.HIR::Crate", align 8
  %6 = alloca %class.Lexer, align 8
  %7 = alloca %struct.ParseState, align 8
  %8 = alloca %class.Token, align 8
  %9 = alloca %"class.std::map.174", align 8
  %10 = alloca %class.Token, align 8
  %11 = alloca %class.Token, align 8
  %12 = alloca %class.Token, align 8
  %13 = alloca %class.Token, align 8
  %14 = alloca %class.RcString, align 8
  %15 = alloca %class.Token, align 8
  %16 = alloca %class.Token, align 8
  %17 = alloca %class.Token, align 8
  %18 = alloca %class.Token, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %class.Token, align 8
  %21 = alloca %class.Token, align 8
  %22 = alloca %"struct.std::pair.179", align 8
  %23 = alloca %class.RcString, align 8
  %24 = alloca %"class.HIR::Function", align 8
  %25 = alloca %"struct.HIR::VisEnt", align 8
  %26 = alloca %"class.HIR::Function", align 8
  %27 = alloca %"struct.std::pair.235", align 8
  %28 = alloca %"class.std::unique_ptr.237", align 8
  %29 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %30 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %31 = alloca %"struct.MirOptTestFile::Test", align 8
  %32 = alloca %"struct.HIR::SimplePath", align 8
  %33 = alloca %class.RcString, align 8
  %34 = alloca [1 x %class.RcString], align 8
  %35 = alloca %"struct.HIR::SimplePath", align 8
  %36 = alloca %class.RcString, align 8
  %37 = alloca [1 x %class.RcString], align 8
  %38 = alloca %class.Token, align 8
  %39 = alloca %class.Token, align 8
  %40 = alloca %class.RcString, align 8
  %41 = alloca %class.Token, align 8
  %42 = alloca %class.Token, align 8
  %43 = alloca %"class.HIR::TypeRef", align 8
  %44 = alloca %class.Token, align 8
  %45 = alloca %class.Token, align 8
  %46 = alloca %"class.HIR::Static", align 8
  %47 = alloca %"struct.HIR::Linkage", align 8
  %48 = alloca %"class.HIR::TypeRef", align 8
  %49 = alloca %"class.HIR::ExprPtr", align 8
  %50 = alloca %class.Token, align 8
  %51 = alloca %class.Token, align 8
  %52 = alloca %class.Token, align 8
  %53 = alloca %class.Token, align 8
  %54 = alloca %struct.EncodedLiteral, align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca i8, align 1
  %58 = alloca %class.Token, align 8
  %59 = alloca %class.Token, align 8
  %60 = alloca %class.Token, align 8
  %61 = alloca %class.Token, align 8
  %62 = alloca %class.U128, align 8
  %63 = alloca %class.Token, align 8
  %64 = alloca %class.Token, align 8
  %65 = alloca %class.Token, align 8
  %66 = alloca %class.Token, align 8
  %67 = alloca %class.U128, align 8
  %68 = alloca %class.Token, align 8
  %69 = alloca %class.Token, align 8
  %70 = alloca %class.Token, align 8
  %71 = alloca %"struct.HIR::SimplePath", align 8
  %72 = alloca %class.RcString, align 8
  %73 = alloca [1 x %class.RcString], align 8
  %74 = alloca %struct.Reloc, align 8
  %75 = alloca %"class.HIR::Path", align 8
  %76 = alloca %"struct.HIR::SimplePath", align 8
  %77 = alloca %struct.Reloc, align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %struct.Span, align 8
  %80 = alloca %"class.std::function", align 8
  %81 = alloca %class.anon, align 1
  %82 = alloca %class.Token, align 8
  %83 = alloca %class.Token, align 8
  %84 = alloca %class.Token, align 8
  %85 = alloca %class.Token, align 8
  %86 = alloca %"struct.HIR::VisEnt", align 8
  %87 = alloca %"class.HIR::Static", align 8
  %88 = alloca %"struct.std::pair.235", align 8
  %89 = alloca %"class.std::unique_ptr.237", align 8
  %90 = alloca %class.Token, align 8
  %91 = alloca %class.Token, align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %class.Token, align 8
  %94 = alloca %class.Token, align 8
  %95 = alloca %"struct.std::pair.272", align 8
  %96 = alloca %class.RcString, align 8
  %97 = alloca %"class.HIR::ExternCrate", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %struct.TypeRepr, align 8
  %100 = alloca %class.Token, align 8
  %101 = alloca %class.Token, align 8
  %102 = alloca %class.RcString, align 8
  %103 = alloca %class.Token, align 8
  %104 = alloca %class.Token, align 8
  %105 = alloca %"class.HIR::ExternType", align 8
  %106 = alloca %"struct.HIR::VisEnt.289", align 8
  %107 = alloca %"class.HIR::ExternType", align 8
  %108 = alloca %"struct.std::pair.375", align 8
  %109 = alloca %"class.std::unique_ptr.377", align 8
  %110 = alloca %class.Token, align 8
  %111 = alloca %class.Token, align 8
  %112 = alloca %class.Token, align 8
  %113 = alloca %class.Token, align 8
  %114 = alloca %class.Token, align 8
  %115 = alloca %class.Token, align 8
  %116 = alloca %class.U128, align 8
  %117 = alloca %struct.Span, align 8
  %118 = alloca %"class.std::function", align 8
  %119 = alloca %class.anon.385, align 1
  %120 = alloca %class.Token, align 8
  %121 = alloca %class.Token, align 8
  %122 = alloca %class.Token, align 8
  %123 = alloca %class.Token, align 8
  %124 = alloca %class.Token, align 8
  %125 = alloca %class.Token, align 8
  %126 = alloca %class.U128, align 8
  %127 = alloca %struct.Span, align 8
  %128 = alloca %"class.std::function", align 8
  %129 = alloca %class.anon.387, align 1
  %130 = alloca %class.Token, align 8
  %131 = alloca %class.Token, align 8
  %132 = alloca %class.Token, align 8
  %133 = alloca %class.Token, align 8
  %134 = alloca %class.U128, align 8
  %135 = alloca %struct.Span, align 8
  %136 = alloca %"class.std::function", align 8
  %137 = alloca %class.anon.389, align 1
  %138 = alloca %class.Token, align 8
  %139 = alloca %class.Token, align 8
  %140 = alloca %"class.HIR::TypeRef", align 8
  %141 = alloca %class.Token, align 8
  %142 = alloca %class.Token, align 8
  %143 = alloca %"struct.TypeRepr::Field", align 8
  %144 = alloca ptr, align 8
  %145 = alloca %struct.Span, align 8
  %146 = alloca %"class.std::function", align 8
  %147 = alloca %class.anon.391, align 8
  %148 = alloca %class.Token, align 8
  %149 = alloca %class.Token, align 8
  %150 = alloca %"class.std::vector.305", align 8
  %151 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %152 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %153 = alloca %"struct.HIR::VisEnt.394", align 8
  %154 = alloca %"class.HIR::Struct", align 8
  %155 = alloca %"class.HIR::GenericParams", align 8
  %156 = alloca %"class.HIR::Struct::Data", align 8
  %157 = alloca %"class.std::vector.305", align 8
  %158 = alloca %"struct.HIR::VisEnt.289", align 8
  %159 = alloca %"class.HIR::Struct", align 8
  %160 = alloca %"struct.std::pair.375", align 8
  %161 = alloca %"class.std::unique_ptr.377", align 8
  %162 = alloca %"class.HIR::Union", align 8
  %163 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %164 = alloca %"class.__gnu_cxx::__normal_iterator.392", align 8
  %165 = alloca %"struct.std::pair.396", align 8
  %166 = alloca %class.RcString, align 8
  %167 = alloca %"struct.HIR::VisEnt.394", align 8
  %168 = alloca %"struct.HIR::VisEnt.289", align 8
  %169 = alloca %"class.HIR::Union", align 8
  %170 = alloca %"struct.std::pair.375", align 8
  %171 = alloca %"class.std::unique_ptr.377", align 8
  %172 = alloca ptr, align 8
  %173 = alloca %struct.Span, align 8
  %174 = alloca %"class.std::function", align 8
  %175 = alloca %class.anon.398, align 8
  %176 = alloca ptr, align 8
  %177 = alloca %struct.Span, align 8
  %178 = alloca %"class.std::function", align 8
  %179 = alloca %class.anon.399, align 8
  %180 = alloca %class.Token, align 8
  %181 = alloca ptr, align 8
  %182 = alloca %struct.Span, align 8
  %183 = alloca %"class.std::function", align 8
  %184 = alloca %class.anon.400, align 8
  tail call void @_ZN14MirOptTestFileC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #8
  invoke void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %185 unwind label %250

185:                                              ; preds = %2
  %186 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(944) %5, i8 0, i64 944, i1 false)
  invoke void @_ZN3HIR5CrateC2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5)
          to label %187 unwind label %252

187:                                              ; preds = %185
  invoke void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %5)
          to label %188 unwind label %254

188:                                              ; preds = %187
  %189 = getelementptr inbounds i8, ptr %0, i64 32
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR8CratePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull align 8 dereferenceable(8) %4)
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %6) #8
  %191 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %1)
  call void @_ZN10ParseStateC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7)
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %6, ptr noundef nonnull align 8 dereferenceable(32) %191, i32 noundef 0, ptr noundef nonnull byval(%struct.ParseState) align 8 %7)
          to label %192 unwind label %257

192:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %8) #8
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %.preheader819 unwind label %259

.preheader819:                                    ; preds = %192
  %193 = getelementptr inbounds i8, ptr %116, i64 8
  %194 = getelementptr inbounds i8, ptr %99, i64 8
  %195 = getelementptr inbounds i8, ptr %126, i64 8
  %196 = getelementptr inbounds i8, ptr %134, i64 8
  %197 = getelementptr inbounds i8, ptr %99, i64 88
  %198 = getelementptr inbounds i8, ptr %143, i64 8
  %199 = getelementptr inbounds i8, ptr %99, i64 16
  %200 = getelementptr inbounds i8, ptr %162, i64 104
  %201 = getelementptr inbounds i8, ptr %167, i64 16
  %202 = getelementptr inbounds i8, ptr %162, i64 130
  %203 = getelementptr inbounds i8, ptr %168, i64 16
  %204 = getelementptr inbounds i8, ptr %153, i64 16
  %205 = getelementptr inbounds i8, ptr %154, i64 146
  %206 = getelementptr inbounds i8, ptr %158, i64 16
  %207 = getelementptr inbounds i8, ptr %106, i64 16
  %208 = getelementptr inbounds i8, ptr %97, i64 8
  %209 = getelementptr inbounds i8, ptr %97, i64 40
  %210 = getelementptr inbounds i8, ptr %62, i64 8
  %211 = getelementptr inbounds i8, ptr %67, i64 8
  %212 = getelementptr inbounds i8, ptr %54, i64 24
  %213 = getelementptr inbounds i8, ptr %46, i64 256
  %214 = getelementptr inbounds i8, ptr %46, i64 304
  %215 = getelementptr inbounds i8, ptr %46, i64 104
  %216 = getelementptr inbounds i8, ptr %86, i64 16
  %217 = getelementptr inbounds i8, ptr %25, i64 16
  %218 = getelementptr inbounds i8, ptr %31, i64 8
  %219 = getelementptr inbounds i8, ptr %0, i64 40
  br label %220

220:                                              ; preds = %.preheader819, %2034
  %221 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 0)
          to label %222 unwind label %261

222:                                              ; preds = %220
  %.not = icmp eq i32 %221, 1
  br i1 %.not, label %2035, label %223

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #8
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  br label %224

224:                                              ; preds = %442, %223
  %225 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 21)
          to label %226 unwind label %.loopexit814

226:                                              ; preds = %224
  br i1 %225, label %227, label %452

227:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %10) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %10, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %228 unwind label %263

228:                                              ; preds = %227
  %229 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %230 unwind label %265

230:                                              ; preds = %228
  %231 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %229)
  %.not562 = icmp eq i32 %231, 29
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #8
  br i1 %.not562, label %277, label %232

232:                                              ; preds = %230
  %233 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %234 unwind label %.loopexit.split-lp815.loopexit.split-lp

234:                                              ; preds = %232
  br i1 %233, label %235, label %268

235:                                              ; preds = %234
  %236 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %236, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %238 unwind label %.loopexit.split-lp815.loopexit.split-lp

238:                                              ; preds = %235
  %239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef nonnull @.str)
          to label %240 unwind label %.loopexit.split-lp815.loopexit.split-lp

240:                                              ; preds = %238
  %241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull @.str.1)
          to label %242 unwind label %.loopexit.split-lp815.loopexit.split-lp

242:                                              ; preds = %240
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull @.str.2)
          to label %244 unwind label %.loopexit.split-lp815.loopexit.split-lp

244:                                              ; preds = %242
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %243, i32 noundef 50)
          to label %246 unwind label %.loopexit.split-lp815.loopexit.split-lp

246:                                              ; preds = %244
  %247 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %248 unwind label %.loopexit.split-lp815.loopexit.split-lp

248:                                              ; preds = %246
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %268 unwind label %.loopexit.split-lp815.loopexit.split-lp

250:                                              ; preds = %2
  %251 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  br label %2039

252:                                              ; preds = %185
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %187
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5) #8
  br label %256

256:                                              ; preds = %254, %252
  %.pn = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  br label %2039

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

259:                                              ; preds = %192
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %2037

261:                                              ; preds = %220
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %2036

.loopexit814:                                     ; preds = %224
  %lpad.loopexit816 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp815

.loopexit.split-lp815.loopexit:                   ; preds = %1250, %1142, %534, %452
  %lpad.loopexit820 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp815

.loopexit.split-lp815.loopexit.split-lp:          ; preds = %1166, %1164, %1162, %1160, %1158, %1156, %1153, %1150, %298, %296, %294, %292, %290, %288, %285, %282, %248, %246, %244, %242, %240, %238, %235, %232
  %lpad.loopexit.split-lp821 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp815

263:                                              ; preds = %227
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %228
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  br label %267

267:                                              ; preds = %265, %263
  %.pn560 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #8
  br label %.loopexit.split-lp815

268:                                              ; preds = %248, %234
  %269 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %11, i32 noundef 29)
          to label %270 unwind label %.thread

270:                                              ; preds = %268
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %269, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %11)
          to label %272 unwind label %.thread599

.thread599:                                       ; preds = %270
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  br label %276

272:                                              ; preds = %270
  invoke void @__cxa_throw(ptr nonnull %269, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %274

.thread:                                          ; preds = %268
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %276

274:                                              ; preds = %272
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  br label %.loopexit.split-lp815

276:                                              ; preds = %.thread599, %.thread
  %.pn589598 = phi { ptr, i32 } [ %273, %.thread ], [ %271, %.thread599 ]
  call void @__cxa_free_exception(ptr %269) #8
  br label %.loopexit.split-lp815

277:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %12) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %12, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %278 unwind label %300

278:                                              ; preds = %277
  %279 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %12)
          to label %280 unwind label %302

280:                                              ; preds = %278
  %281 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %279)
  %.not565 = icmp eq i32 %281, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #8
  br i1 %.not565, label %314, label %282

282:                                              ; preds = %280
  %283 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %284 unwind label %.loopexit.split-lp815.loopexit.split-lp

284:                                              ; preds = %282
  br i1 %283, label %285, label %305

285:                                              ; preds = %284
  %286 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %286, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %288 unwind label %.loopexit.split-lp815.loopexit.split-lp

288:                                              ; preds = %285
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull @.str)
          to label %290 unwind label %.loopexit.split-lp815.loopexit.split-lp

290:                                              ; preds = %288
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull @.str.1)
          to label %292 unwind label %.loopexit.split-lp815.loopexit.split-lp

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull @.str.2)
          to label %294 unwind label %.loopexit.split-lp815.loopexit.split-lp

294:                                              ; preds = %292
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %293, i32 noundef 51)
          to label %296 unwind label %.loopexit.split-lp815.loopexit.split-lp

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %298 unwind label %.loopexit.split-lp815.loopexit.split-lp

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %305 unwind label %.loopexit.split-lp815.loopexit.split-lp

300:                                              ; preds = %277
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %304

302:                                              ; preds = %278
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #8
  br label %304

304:                                              ; preds = %302, %300
  %.pn563 = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #8
  br label %.loopexit.split-lp815

305:                                              ; preds = %298, %284
  %306 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %13, i32 noundef 14)
          to label %307 unwind label %.thread601

307:                                              ; preds = %305
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %306, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %13)
          to label %309 unwind label %.thread605

.thread605:                                       ; preds = %307
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  br label %313

309:                                              ; preds = %307
  invoke void @__cxa_throw(ptr nonnull %306, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %311

.thread601:                                       ; preds = %305
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %313

311:                                              ; preds = %309
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  br label %.loopexit.split-lp815

313:                                              ; preds = %.thread605, %.thread601
  %.pn587604 = phi { ptr, i32 } [ %310, %.thread601 ], [ %308, %.thread605 ]
  call void @__cxa_free_exception(ptr %306) #8
  br label %.loopexit.split-lp815

314:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  %315 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %316 unwind label %340

316:                                              ; preds = %314
  %317 = getelementptr inbounds i8, ptr %315, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %317)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %15) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %15, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %318 unwind label %342

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %15)
          to label %320 unwind label %344

320:                                              ; preds = %318
  %321 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %319)
  %.not568 = icmp eq i32 %321, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %15) #8
  br i1 %.not568, label %358, label %322

322:                                              ; preds = %320
  %323 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %324 unwind label %347

324:                                              ; preds = %322
  br i1 %323, label %325, label %349

325:                                              ; preds = %324
  %326 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %326, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %328 unwind label %347

328:                                              ; preds = %325
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull @.str)
          to label %330 unwind label %347

330:                                              ; preds = %328
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %329, ptr noundef nonnull @.str.1)
          to label %332 unwind label %347

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull @.str.2)
          to label %334 unwind label %347

334:                                              ; preds = %332
  %335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %333, i32 noundef 53)
          to label %336 unwind label %347

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %335, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %338 unwind label %347

338:                                              ; preds = %336
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %349 unwind label %347

340:                                              ; preds = %314
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %451

342:                                              ; preds = %316
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %346

344:                                              ; preds = %318
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %346

346:                                              ; preds = %344, %342
  %.pn566 = phi { ptr, i32 } [ %345, %344 ], [ %343, %342 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %15) #8
  br label %450

347:                                              ; preds = %379, %377, %375, %373, %371, %369, %366, %363, %338, %336, %334, %332, %330, %328, %325, %322
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %450

349:                                              ; preds = %338, %324
  %350 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %16, i32 noundef 50)
          to label %351 unwind label %.thread607

351:                                              ; preds = %349
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %350, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %16)
          to label %353 unwind label %.thread611

.thread611:                                       ; preds = %351
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #8
  br label %357

353:                                              ; preds = %351
  invoke void @__cxa_throw(ptr nonnull %350, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %355

.thread607:                                       ; preds = %349
  %354 = landingpad { ptr, i32 }
          cleanup
  br label %357

355:                                              ; preds = %353
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #8
  br label %450

357:                                              ; preds = %.thread611, %.thread607
  %.pn583610 = phi { ptr, i32 } [ %354, %.thread607 ], [ %352, %.thread611 ]
  call void @__cxa_free_exception(ptr %350) #8
  br label %450

358:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %17) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %17, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %359 unwind label %381

359:                                              ; preds = %358
  %360 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %361 unwind label %383

361:                                              ; preds = %359
  %362 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %360)
  %.not571 = icmp eq i32 %362, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #8
  br i1 %.not571, label %395, label %363

363:                                              ; preds = %361
  %364 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %365 unwind label %347

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

366:                                              ; preds = %365
  %367 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %367, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %369 unwind label %347

369:                                              ; preds = %366
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef nonnull @.str)
          to label %371 unwind label %347

371:                                              ; preds = %369
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull @.str.1)
          to label %373 unwind label %347

373:                                              ; preds = %371
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull @.str.2)
          to label %375 unwind label %347

375:                                              ; preds = %373
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %374, i32 noundef 54)
          to label %377 unwind label %347

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %379 unwind label %347

379:                                              ; preds = %377
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %386 unwind label %347

381:                                              ; preds = %358
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %385

383:                                              ; preds = %359
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  br label %385

385:                                              ; preds = %383, %381
  %.pn569 = phi { ptr, i32 } [ %384, %383 ], [ %382, %381 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #8
  br label %450

386:                                              ; preds = %379, %365
  %387 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %18, i32 noundef 19)
          to label %388 unwind label %.thread613

388:                                              ; preds = %386
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %387, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %18)
          to label %390 unwind label %.thread617

.thread617:                                       ; preds = %388
  %389 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %394

390:                                              ; preds = %388
  invoke void @__cxa_throw(ptr nonnull %387, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %392

.thread613:                                       ; preds = %386
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %394

392:                                              ; preds = %390
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %450

394:                                              ; preds = %.thread617, %.thread613
  %.pn581616 = phi { ptr, i32 } [ %391, %.thread613 ], [ %389, %.thread617 ]
  call void @__cxa_free_exception(ptr %387) #8
  br label %450

395:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  %396 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %397 unwind label %421

397:                                              ; preds = %395
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %396)
          to label %398 unwind label %421

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %20) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %20, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %399 unwind label %423

399:                                              ; preds = %398
  %400 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %20)
          to label %401 unwind label %425

401:                                              ; preds = %399
  %402 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %400)
  %.not574 = icmp eq i32 %402, 30
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #8
  br i1 %.not574, label %439, label %403

403:                                              ; preds = %401
  %404 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %405 unwind label %428

405:                                              ; preds = %403
  br i1 %404, label %406, label %430

406:                                              ; preds = %405
  %407 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %407, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %409 unwind label %428

409:                                              ; preds = %406
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef nonnull @.str)
          to label %411 unwind label %428

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef nonnull @.str.1)
          to label %413 unwind label %428

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef nonnull @.str.2)
          to label %415 unwind label %428

415:                                              ; preds = %413
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %414, i32 noundef 56)
          to label %417 unwind label %428

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %419 unwind label %428

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %430 unwind label %428

421:                                              ; preds = %397, %395
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %449

423:                                              ; preds = %398
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %427

425:                                              ; preds = %399
  %426 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  br label %427

427:                                              ; preds = %425, %423
  %.pn572 = phi { ptr, i32 } [ %426, %425 ], [ %424, %423 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #8
  br label %448

428:                                              ; preds = %419, %417, %415, %413, %411, %409, %406, %403
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %448

430:                                              ; preds = %419, %405
  %431 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %21, i32 noundef 30)
          to label %432 unwind label %.thread619

432:                                              ; preds = %430
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %431, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %21)
          to label %434 unwind label %.thread623

.thread623:                                       ; preds = %432
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %438

434:                                              ; preds = %432
  invoke void @__cxa_throw(ptr nonnull %431, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %436

.thread619:                                       ; preds = %430
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %438

436:                                              ; preds = %434
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %448

438:                                              ; preds = %.thread623, %.thread619
  %.pn577622 = phi { ptr, i32 } [ %435, %.thread619 ], [ %433, %.thread623 ]
  call void @__cxa_free_exception(ptr %431) #8
  br label %448

439:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #8
  invoke void @_ZSt9make_pairIR8RcStringRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.179") align 8 %22, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %440 unwind label %443

440:                                              ; preds = %439
  %441 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE6insertIS9_IS0_S6_EEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %442 unwind label %445

442:                                              ; preds = %440
  call void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %224, !llvm.loop !9

443:                                              ; preds = %439
  %444 = landingpad { ptr, i32 }
          cleanup
  br label %447

445:                                              ; preds = %440
  %446 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #8
  br label %447

447:                                              ; preds = %445, %443
  %.pn575 = phi { ptr, i32 } [ %446, %445 ], [ %444, %443 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #8
  br label %448

448:                                              ; preds = %436, %438, %447, %428, %427
  %.pn577.pn = phi { ptr, i32 } [ %.pn577622, %438 ], [ %437, %436 ], [ %429, %428 ], [ %.pn575, %447 ], [ %.pn572, %427 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %449

449:                                              ; preds = %448, %421
  %.pn577.pn.pn = phi { ptr, i32 } [ %.pn577.pn, %448 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %450

450:                                              ; preds = %392, %355, %394, %357, %449, %385, %347, %346
  %.pn583.pn = phi { ptr, i32 } [ %.pn583610, %357 ], [ %356, %355 ], [ %348, %347 ], [ %.pn581616, %394 ], [ %393, %392 ], [ %.pn577.pn.pn, %449 ], [ %.pn569, %385 ], [ %.pn566, %346 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br label %451

451:                                              ; preds = %450, %340
  %.pn583.pn.pn = phi { ptr, i32 } [ %.pn583.pn, %450 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %.loopexit.split-lp815

452:                                              ; preds = %226
  %453 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 88)
          to label %454 unwind label %.loopexit.split-lp815.loopexit

454:                                              ; preds = %452
  br i1 %453, label %455, label %534

455:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  call void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @llvm.lifetime.start.p0(i64 352, ptr nonnull %24) #8
  invoke void @_ZN12_GLOBAL__N_114parse_functionER11TokenStreamR8RcString(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Function") align 8 %24, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %456 unwind label %469

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %25) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %25)
          to label %457 unwind label %471

457:                                              ; preds = %456
  invoke void @_ZN3HIR8FunctionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(352) %26, ptr noundef nonnull align 8 dereferenceable(352) %24)
          to label %458 unwind label %473

458:                                              ; preds = %457
  invoke void @_ZN3HIR9ValueItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(368) %217, ptr noundef nonnull %26)
          to label %459 unwind label %475

459:                                              ; preds = %458
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %26) #8
  %460 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %461 = getelementptr inbounds i8, ptr %460, i64 40
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.237") align 8 %28, ptr noundef nonnull align 8 dereferenceable(384) %25)
          to label %462 unwind label %478

462:                                              ; preds = %459
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.235") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %463 unwind label %480

463:                                              ; preds = %462
  %464 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %461, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %465 unwind label %482

465:                                              ; preds = %463
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %466 = call ptr @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  store ptr %466, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  %467 = call ptr @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  store ptr %467, ptr %30, align 8
  %468 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  br i1 %468, label %.lr.ph859, label %._crit_edge860

._crit_edge860:                                   ; preds = %527, %465
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %25) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %25) #8
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %24) #8
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %24) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %2034

469:                                              ; preds = %455
  %470 = landingpad { ptr, i32 }
          cleanup
  br label %533

471:                                              ; preds = %456
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %532

473:                                              ; preds = %457
  %474 = landingpad { ptr, i32 }
          cleanup
  br label %477

475:                                              ; preds = %458
  %476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %26) #8
  br label %477

477:                                              ; preds = %473, %475
  %.pn541 = phi { ptr, i32 } [ %476, %475 ], [ %474, %473 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #8
  br label %532

478:                                              ; preds = %459
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %485

480:                                              ; preds = %462
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %484

482:                                              ; preds = %463
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  br label %484

484:                                              ; preds = %482, %480
  %.pn543 = phi { ptr, i32 } [ %483, %482 ], [ %481, %480 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br label %485

485:                                              ; preds = %484, %478
  %.pn543.pn = phi { ptr, i32 } [ %.pn543, %484 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  br label %531

.lr.ph859:                                        ; preds = %465, %527
  %486 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  %487 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull @.str.3)
          to label %488 unwind label %502

488:                                              ; preds = %.lr.ph859
  br i1 %487, label %489, label %527

489:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #8
  invoke void @_ZN14MirOptTestFile4TestC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %490 unwind label %504

490:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.4)
          to label %491 unwind label %506

491:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %23)
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull %33, ptr nonnull %34, i64 1)
          to label %492 unwind label %508

492:                                              ; preds = %491
  %493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %494 unwind label %510

494:                                              ; preds = %492
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull @.str.4)
          to label %495 unwind label %514

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  %496 = getelementptr inbounds i8, ptr %486, i64 8
  invoke void @_ZN8RcStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(32) %496)
          to label %497 unwind label %516

497:                                              ; preds = %495
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull %36, ptr nonnull %37, i64 1)
          to label %498 unwind label %518

498:                                              ; preds = %497
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %500 unwind label %520

500:                                              ; preds = %498
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  invoke void @_ZNSt6vectorIN14MirOptTestFile4TestESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %219, ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %501 unwind label %523

501:                                              ; preds = %500
  call void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  br label %527

502:                                              ; preds = %.lr.ph859
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %530

504:                                              ; preds = %489
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %526

506:                                              ; preds = %490
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %513

508:                                              ; preds = %491
  %509 = landingpad { ptr, i32 }
          cleanup
  br label %512

510:                                              ; preds = %492
  %511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br label %512

512:                                              ; preds = %510, %508
  %.pn546 = phi { ptr, i32 } [ %511, %510 ], [ %509, %508 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %513

513:                                              ; preds = %512, %506
  %.pn546.pn = phi { ptr, i32 } [ %.pn546, %512 ], [ %507, %506 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %525

514:                                              ; preds = %494
  %515 = landingpad { ptr, i32 }
          cleanup
  br label %522

516:                                              ; preds = %495
  %517 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

518:                                              ; preds = %497
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

520:                                              ; preds = %498
  %521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %520, %518
  %.pn549 = phi { ptr, i32 } [ %521, %520 ], [ %519, %518 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %516
  %.pn549.pn = phi { ptr, i32 } [ %517, %516 ], [ %.pn549, %.loopexit.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %522

522:                                              ; preds = %.loopexit, %514
  %.pn549.pn.pn = phi { ptr, i32 } [ %.pn549.pn, %.loopexit ], [ %515, %514 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  br label %525

523:                                              ; preds = %500
  %524 = landingpad { ptr, i32 }
          cleanup
  br label %525

525:                                              ; preds = %523, %522, %513
  %.pn553 = phi { ptr, i32 } [ %524, %523 ], [ %.pn549.pn.pn, %522 ], [ %.pn546.pn, %513 ]
  call void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  br label %526

526:                                              ; preds = %525, %504
  %.pn553.pn = phi { ptr, i32 } [ %.pn553, %525 ], [ %505, %504 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  br label %530

527:                                              ; preds = %488, %501
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  %529 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  br i1 %529, label %.lr.ph859, label %._crit_edge860

530:                                              ; preds = %526, %502
  %.pn553.pn.pn = phi { ptr, i32 } [ %.pn553.pn, %526 ], [ %503, %502 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %531

531:                                              ; preds = %530, %485
  %.pn553.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn, %530 ], [ %.pn543.pn, %485 ]
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %25) #8
  br label %532

532:                                              ; preds = %477, %531, %471
  %.pn553.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn, %531 ], [ %.pn541, %477 ], [ %472, %471 ]
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %25) #8
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %24) #8
  br label %533

533:                                              ; preds = %532, %469
  %.pn553.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn, %532 ], [ %470, %469 ]
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %24) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %.loopexit.split-lp815

534:                                              ; preds = %454
  %535 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 80)
          to label %536 unwind label %.loopexit.split-lp815.loopexit

536:                                              ; preds = %534
  br i1 %535, label %537, label %1142

537:                                              ; preds = %536
  %538 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 78)
          to label %539 unwind label %.loopexit836

539:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %38) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %38, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %540 unwind label %562

540:                                              ; preds = %539
  %541 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %38)
          to label %542 unwind label %564

542:                                              ; preds = %540
  %543 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %541)
  %.not449 = icmp eq i32 %543, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %38) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %38) #8
  br i1 %.not449, label %576, label %544

544:                                              ; preds = %542
  %545 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %546 unwind label %.loopexit.split-lp837

546:                                              ; preds = %544
  br i1 %545, label %547, label %567

547:                                              ; preds = %546
  %548 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %548, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %550 unwind label %.loopexit.split-lp837

550:                                              ; preds = %547
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef nonnull @.str)
          to label %552 unwind label %.loopexit.split-lp837

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull @.str.1)
          to label %554 unwind label %.loopexit.split-lp837

554:                                              ; preds = %552
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %553, ptr noundef nonnull @.str.2)
          to label %556 unwind label %.loopexit.split-lp837

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %555, i32 noundef 93)
          to label %558 unwind label %.loopexit.split-lp837

558:                                              ; preds = %556
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %557, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %560 unwind label %.loopexit.split-lp837

560:                                              ; preds = %558
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %559, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %567 unwind label %.loopexit.split-lp837

.loopexit836:                                     ; preds = %537
  %lpad.loopexit838 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp815

.loopexit.split-lp837:                            ; preds = %544, %547, %550, %552, %554, %556, %558, %560
  %lpad.loopexit.split-lp839 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp815

562:                                              ; preds = %539
  %563 = landingpad { ptr, i32 }
          cleanup
  br label %566

564:                                              ; preds = %540
  %565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %38) #8
  br label %566

566:                                              ; preds = %564, %562
  %.pn447 = phi { ptr, i32 } [ %565, %564 ], [ %563, %562 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %38) #8
  br label %.loopexit.split-lp815

567:                                              ; preds = %560, %546
  %568 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %39, i32 noundef 14)
          to label %569 unwind label %.thread625

569:                                              ; preds = %567
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %568, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %39)
          to label %571 unwind label %.thread629

.thread629:                                       ; preds = %569
  %570 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #8
  br label %575

571:                                              ; preds = %569
  invoke void @__cxa_throw(ptr nonnull %568, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %573

.thread625:                                       ; preds = %567
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %575

573:                                              ; preds = %571
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #8
  br label %.loopexit.split-lp815

575:                                              ; preds = %.thread629, %.thread625
  %.pn538628 = phi { ptr, i32 } [ %572, %.thread625 ], [ %570, %.thread629 ]
  call void @__cxa_free_exception(ptr %568) #8
  br label %.loopexit.split-lp815

576:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #8
  %577 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %578 unwind label %602

578:                                              ; preds = %576
  %579 = getelementptr inbounds i8, ptr %577, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %579)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %41) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %41, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %580 unwind label %604

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %41)
          to label %582 unwind label %606

582:                                              ; preds = %580
  %583 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %581)
  %.not452 = icmp eq i32 %583, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %41) #8
  br i1 %.not452, label %620, label %584

584:                                              ; preds = %582
  %585 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %586 unwind label %609

586:                                              ; preds = %584
  br i1 %585, label %587, label %611

587:                                              ; preds = %586
  %588 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %588, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %590 unwind label %609

590:                                              ; preds = %587
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %589, ptr noundef nonnull @.str)
          to label %592 unwind label %609

592:                                              ; preds = %590
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %591, ptr noundef nonnull @.str.1)
          to label %594 unwind label %609

594:                                              ; preds = %592
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %593, ptr noundef nonnull @.str.2)
          to label %596 unwind label %609

596:                                              ; preds = %594
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %595, i32 noundef 95)
          to label %598 unwind label %609

598:                                              ; preds = %596
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %597, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %600 unwind label %609

600:                                              ; preds = %598
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %611 unwind label %609

602:                                              ; preds = %576
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %1141

604:                                              ; preds = %578
  %605 = landingpad { ptr, i32 }
          cleanup
  br label %608

606:                                              ; preds = %580
  %607 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #8
  br label %608

608:                                              ; preds = %606, %604
  %.pn450 = phi { ptr, i32 } [ %607, %606 ], [ %605, %604 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %41) #8
  br label %1140

609:                                              ; preds = %600, %598, %596, %594, %592, %590, %587, %584
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %1140

611:                                              ; preds = %600, %586
  %612 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %42, i32 noundef 33)
          to label %613 unwind label %.thread631

613:                                              ; preds = %611
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %612, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %42)
          to label %615 unwind label %.thread635

.thread635:                                       ; preds = %613
  %614 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #8
  br label %619

615:                                              ; preds = %613
  invoke void @__cxa_throw(ptr nonnull %612, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %617

.thread631:                                       ; preds = %611
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %619

617:                                              ; preds = %615
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #8
  br label %1140

619:                                              ; preds = %.thread635, %.thread631
  %.pn534634 = phi { ptr, i32 } [ %616, %.thread631 ], [ %614, %.thread635 ]
  call void @__cxa_free_exception(ptr %612) #8
  br label %1140

620:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  invoke void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %43, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %621 unwind label %644

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %44) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %44, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %622 unwind label %646

622:                                              ; preds = %621
  %623 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %44)
          to label %624 unwind label %648

624:                                              ; preds = %622
  %625 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %623)
  %.not455 = icmp eq i32 %625, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %44) #8
  br i1 %.not455, label %662, label %626

626:                                              ; preds = %624
  %627 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %628 unwind label %651

628:                                              ; preds = %626
  br i1 %627, label %629, label %653

629:                                              ; preds = %628
  %630 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %630, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %632 unwind label %651

632:                                              ; preds = %629
  %633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %631, ptr noundef nonnull @.str)
          to label %634 unwind label %651

634:                                              ; preds = %632
  %635 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %633, ptr noundef nonnull @.str.1)
          to label %636 unwind label %651

636:                                              ; preds = %634
  %637 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %635, ptr noundef nonnull @.str.2)
          to label %638 unwind label %651

638:                                              ; preds = %636
  %639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %637, i32 noundef 97)
          to label %640 unwind label %651

640:                                              ; preds = %638
  %641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %639, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %642 unwind label %651

642:                                              ; preds = %640
  %643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %641, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %653 unwind label %651

644:                                              ; preds = %620
  %645 = landingpad { ptr, i32 }
          cleanup
  br label %1139

646:                                              ; preds = %621
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %650

648:                                              ; preds = %622
  %649 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #8
  br label %650

650:                                              ; preds = %648, %646
  %.pn453 = phi { ptr, i32 } [ %649, %648 ], [ %647, %646 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %44) #8
  br label %1138

651:                                              ; preds = %642, %640, %638, %636, %634, %632, %629, %626
  %652 = landingpad { ptr, i32 }
          cleanup
  br label %1138

653:                                              ; preds = %642, %628
  %654 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %45, i32 noundef 50)
          to label %655 unwind label %.thread637

655:                                              ; preds = %653
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %654, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %45)
          to label %657 unwind label %.thread641

.thread641:                                       ; preds = %655
  %656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %45) #8
  br label %661

657:                                              ; preds = %655
  invoke void @__cxa_throw(ptr nonnull %654, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %659

.thread637:                                       ; preds = %653
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %661

659:                                              ; preds = %657
  %660 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %45) #8
  br label %1138

661:                                              ; preds = %.thread641, %.thread637
  %.pn530640 = phi { ptr, i32 } [ %658, %.thread637 ], [ %656, %.thread641 ]
  call void @__cxa_free_exception(ptr %654) #8
  br label %1138

662:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 360, ptr nonnull %46) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %47, i8 0, i64 72, i1 false)
  call void @_ZN3HIR7LinkageC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %47) #8
  call void @_ZN3HIR7TypeRefC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %43)
  invoke void @_ZN3HIR7ExprPtrC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %49)
          to label %663 unwind label %690

663:                                              ; preds = %662
  invoke void @_ZN3HIR6StaticC2ENS_7LinkageEbNS_7TypeRefENS_7ExprPtrE(ptr noundef nonnull align 8 dereferenceable(360) %46, ptr noundef nonnull %47, i1 noundef zeroext %538, ptr noundef nonnull %48, ptr noundef nonnull %49)
          to label %664 unwind label %692

664:                                              ; preds = %663
  call void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %49) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %47) #8
  %665 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 70)
          to label %666 unwind label %.loopexit841

666:                                              ; preds = %664
  br i1 %665, label %667, label %713

667:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %50) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %50, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %668 unwind label %695

668:                                              ; preds = %667
  %669 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %50)
          to label %670 unwind label %697

670:                                              ; preds = %668
  %671 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %669)
  %.not514 = icmp eq i32 %671, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #8
  br i1 %.not514, label %709, label %672

672:                                              ; preds = %670
  %673 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %674 unwind label %.loopexit.split-lp842

674:                                              ; preds = %672
  br i1 %673, label %675, label %700

675:                                              ; preds = %674
  %676 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %676, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %678 unwind label %.loopexit.split-lp842

678:                                              ; preds = %675
  %679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %677, ptr noundef nonnull @.str)
          to label %680 unwind label %.loopexit.split-lp842

680:                                              ; preds = %678
  %681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %679, ptr noundef nonnull @.str.1)
          to label %682 unwind label %.loopexit.split-lp842

682:                                              ; preds = %680
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %681, ptr noundef nonnull @.str.2)
          to label %684 unwind label %.loopexit.split-lp842

684:                                              ; preds = %682
  %685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %683, i32 noundef 102)
          to label %686 unwind label %.loopexit.split-lp842

686:                                              ; preds = %684
  %687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %685, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %688 unwind label %.loopexit.split-lp842

688:                                              ; preds = %686
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %700 unwind label %.loopexit.split-lp842

690:                                              ; preds = %662
  %691 = landingpad { ptr, i32 }
          cleanup
  br label %694

692:                                              ; preds = %663
  %693 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %49) #8
  br label %694

694:                                              ; preds = %692, %690
  %.pn456 = phi { ptr, i32 } [ %693, %692 ], [ %691, %690 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %47) #8
  br label %1137

.loopexit841:                                     ; preds = %664, %709, %711
  %lpad.loopexit843 = landingpad { ptr, i32 }
          cleanup
  br label %1136

.loopexit.split-lp842:                            ; preds = %672, %675, %678, %680, %682, %684, %686, %688, %718, %721, %724, %726, %728, %730, %732, %734, %1078, %1081, %1084, %1086, %1088, %1090, %1092, %1094
  %lpad.loopexit.split-lp844 = landingpad { ptr, i32 }
          cleanup
  br label %1136

695:                                              ; preds = %667
  %696 = landingpad { ptr, i32 }
          cleanup
  br label %699

697:                                              ; preds = %668
  %698 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #8
  br label %699

699:                                              ; preds = %697, %695
  %.pn512 = phi { ptr, i32 } [ %698, %697 ], [ %696, %695 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #8
  br label %1136

700:                                              ; preds = %688, %674
  %701 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %51, i32 noundef 19)
          to label %702 unwind label %.thread643

702:                                              ; preds = %700
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %701, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %51)
          to label %704 unwind label %.thread647

.thread647:                                       ; preds = %702
  %703 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #8
  br label %708

704:                                              ; preds = %702
  invoke void @__cxa_throw(ptr nonnull %701, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %706

.thread643:                                       ; preds = %700
  %705 = landingpad { ptr, i32 }
          cleanup
  br label %708

706:                                              ; preds = %704
  %707 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #8
  br label %1136

708:                                              ; preds = %.thread647, %.thread643
  %.pn526646 = phi { ptr, i32 } [ %705, %.thread643 ], [ %703, %.thread647 ]
  call void @__cxa_free_exception(ptr %701) #8
  br label %1136

709:                                              ; preds = %670
  %710 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %711 unwind label %.loopexit841

711:                                              ; preds = %709
  %712 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef nonnull align 8 dereferenceable(32) %710)
          to label %1073 unwind label %.loopexit841

713:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %52) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %52, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %714 unwind label %736

714:                                              ; preds = %713
  %715 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %52)
          to label %716 unwind label %738

716:                                              ; preds = %714
  %717 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %715)
  %.not460 = icmp eq i32 %717, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %52) #8
  br i1 %.not460, label %750, label %718

718:                                              ; preds = %716
  %719 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %720 unwind label %.loopexit.split-lp842

720:                                              ; preds = %718
  br i1 %719, label %721, label %741

721:                                              ; preds = %720
  %722 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %722, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %724 unwind label %.loopexit.split-lp842

724:                                              ; preds = %721
  %725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %723, ptr noundef nonnull @.str)
          to label %726 unwind label %.loopexit.split-lp842

726:                                              ; preds = %724
  %727 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %725, ptr noundef nonnull @.str.1)
          to label %728 unwind label %.loopexit.split-lp842

728:                                              ; preds = %726
  %729 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %727, ptr noundef nonnull @.str.2)
          to label %730 unwind label %.loopexit.split-lp842

730:                                              ; preds = %728
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %729, i32 noundef 106)
          to label %732 unwind label %.loopexit.split-lp842

732:                                              ; preds = %730
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %734 unwind label %.loopexit.split-lp842

734:                                              ; preds = %732
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %741 unwind label %.loopexit.split-lp842

736:                                              ; preds = %713
  %737 = landingpad { ptr, i32 }
          cleanup
  br label %740

738:                                              ; preds = %714
  %739 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #8
  br label %740

740:                                              ; preds = %738, %736
  %.pn458 = phi { ptr, i32 } [ %739, %738 ], [ %737, %736 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %52) #8
  br label %1136

741:                                              ; preds = %734, %720
  %742 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %53, i32 noundef 19)
          to label %743 unwind label %.thread649

743:                                              ; preds = %741
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %742, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %53)
          to label %745 unwind label %.thread653

.thread653:                                       ; preds = %743
  %744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %53) #8
  br label %749

745:                                              ; preds = %743
  invoke void @__cxa_throw(ptr nonnull %742, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %747

.thread649:                                       ; preds = %741
  %746 = landingpad { ptr, i32 }
          cleanup
  br label %749

747:                                              ; preds = %745
  %748 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %53) #8
  br label %1136

749:                                              ; preds = %.thread653, %.thread649
  %.pn510652 = phi { ptr, i32 } [ %746, %.thread649 ], [ %744, %.thread653 ]
  call void @__cxa_free_exception(ptr %742) #8
  br label %1136

750:                                              ; preds = %716
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %54) #8
  call void @_ZN14EncodedLiteralC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #8
  %751 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %752 unwind label %757

752:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  %753 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %751) #8
  store ptr %753, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  %754 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %751) #8
  store ptr %754, ptr %56, align 8
  %755 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br i1 %755, label %.lr.ph856, label %._crit_edge857

._crit_edge857:                                   ; preds = %761, %752
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  %756 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 25)
          to label %766 unwind label %.loopexit.split-lp.loopexit

757:                                              ; preds = %750
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.lr.ph856:                                        ; preds = %752, %761
  %759 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  %760 = load i8, ptr %759, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #8
  store i8 %760, ptr %57, align 1, !tbaa !11
  invoke void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %761 unwind label %764

761:                                              ; preds = %.lr.ph856
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #8
  %762 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  %763 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br i1 %763, label %.lr.ph856, label %._crit_edge857

764:                                              ; preds = %.lr.ph856
  %765 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  br label %.loopexit.split-lp

766:                                              ; preds = %._crit_edge857
  br i1 %756, label %.preheader, label %1071

.preheader:                                       ; preds = %766, %1031
  %767 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 0)
          to label %768 unwind label %.loopexit792

768:                                              ; preds = %.preheader
  %.not461 = icmp eq i32 %767, 26
  br i1 %.not461, label %1034, label %769

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %58) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %58, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %770 unwind label %792

770:                                              ; preds = %769
  %771 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %58)
          to label %772 unwind label %794

772:                                              ; preds = %770
  %773 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %771)
  %.not469 = icmp eq i32 %773, 70
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %58) #8
  br i1 %.not469, label %806, label %774

774:                                              ; preds = %772
  %775 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %776 unwind label %.loopexit.split-lp.loopexit.split-lp

776:                                              ; preds = %774
  br i1 %775, label %777, label %797

777:                                              ; preds = %776
  %778 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %778, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %780 unwind label %.loopexit.split-lp.loopexit.split-lp

780:                                              ; preds = %777
  %781 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %779, ptr noundef nonnull @.str)
          to label %782 unwind label %.loopexit.split-lp.loopexit.split-lp

782:                                              ; preds = %780
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %781, ptr noundef nonnull @.str.1)
          to label %784 unwind label %.loopexit.split-lp.loopexit.split-lp

784:                                              ; preds = %782
  %785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %783, ptr noundef nonnull @.str.2)
          to label %786 unwind label %.loopexit.split-lp.loopexit.split-lp

786:                                              ; preds = %784
  %787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %785, i32 noundef 112)
          to label %788 unwind label %.loopexit.split-lp.loopexit.split-lp

788:                                              ; preds = %786
  %789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %787, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %790 unwind label %.loopexit.split-lp.loopexit.split-lp

790:                                              ; preds = %788
  %791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %789, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %797 unwind label %.loopexit.split-lp.loopexit.split-lp

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

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

.loopexit.split-lp.loopexit.split-lp:             ; preds = %1055, %1053, %1051, %1049, %1047, %1045, %1042, %1039, %827, %825, %823, %821, %819, %817, %814, %811, %790, %788, %786, %784, %782, %780, %777, %774
  %lpad.loopexit.split-lp847 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

792:                                              ; preds = %769
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %796

794:                                              ; preds = %770
  %795 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #8
  br label %796

796:                                              ; preds = %794, %792
  %.pn467 = phi { ptr, i32 } [ %795, %794 ], [ %793, %792 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %58) #8
  br label %.loopexit.split-lp

797:                                              ; preds = %790, %776
  %798 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %59, i32 noundef 70)
          to label %799 unwind label %.thread655

799:                                              ; preds = %797
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %798, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %59)
          to label %801 unwind label %.thread659

.thread659:                                       ; preds = %799
  %800 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %59) #8
  br label %805

801:                                              ; preds = %799
  invoke void @__cxa_throw(ptr nonnull %798, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %803

.thread655:                                       ; preds = %797
  %802 = landingpad { ptr, i32 }
          cleanup
  br label %805

803:                                              ; preds = %801
  %804 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %59) #8
  br label %.loopexit.split-lp

805:                                              ; preds = %.thread659, %.thread655
  %.pn505658 = phi { ptr, i32 } [ %802, %.thread655 ], [ %800, %.thread659 ]
  call void @__cxa_free_exception(ptr %798) #8
  br label %.loopexit.split-lp

806:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %60) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %60, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %807 unwind label %829

807:                                              ; preds = %806
  %808 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %60)
          to label %809 unwind label %831

809:                                              ; preds = %807
  %810 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %808)
  %.not472 = icmp eq i32 %810, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %60) #8
  br i1 %.not472, label %843, label %811

811:                                              ; preds = %809
  %812 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %813 unwind label %.loopexit.split-lp.loopexit.split-lp

813:                                              ; preds = %811
  br i1 %812, label %814, label %834

814:                                              ; preds = %813
  %815 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %815, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %817 unwind label %.loopexit.split-lp.loopexit.split-lp

817:                                              ; preds = %814
  %818 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %816, ptr noundef nonnull @.str)
          to label %819 unwind label %.loopexit.split-lp.loopexit.split-lp

819:                                              ; preds = %817
  %820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %818, ptr noundef nonnull @.str.1)
          to label %821 unwind label %.loopexit.split-lp.loopexit.split-lp

821:                                              ; preds = %819
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %820, ptr noundef nonnull @.str.2)
          to label %823 unwind label %.loopexit.split-lp.loopexit.split-lp

823:                                              ; preds = %821
  %824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %822, i32 noundef 113)
          to label %825 unwind label %.loopexit.split-lp.loopexit.split-lp

825:                                              ; preds = %823
  %826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %824, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %827 unwind label %.loopexit.split-lp.loopexit.split-lp

827:                                              ; preds = %825
  %828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %826, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %834 unwind label %.loopexit.split-lp.loopexit.split-lp

829:                                              ; preds = %806
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %833

831:                                              ; preds = %807
  %832 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #8
  br label %833

833:                                              ; preds = %831, %829
  %.pn470 = phi { ptr, i32 } [ %832, %831 ], [ %830, %829 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %60) #8
  br label %.loopexit.split-lp

834:                                              ; preds = %827, %813
  %835 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %61, i32 noundef 16)
          to label %836 unwind label %.thread661

836:                                              ; preds = %834
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %835, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %61)
          to label %838 unwind label %.thread665

.thread665:                                       ; preds = %836
  %837 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #8
  br label %842

838:                                              ; preds = %836
  invoke void @__cxa_throw(ptr nonnull %835, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %840

.thread661:                                       ; preds = %834
  %839 = landingpad { ptr, i32 }
          cleanup
  br label %842

840:                                              ; preds = %838
  %841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #8
  br label %.loopexit.split-lp

842:                                              ; preds = %.thread665, %.thread661
  %.pn503664 = phi { ptr, i32 } [ %839, %.thread661 ], [ %837, %.thread665 ]
  call void @__cxa_free_exception(ptr %835) #8
  br label %.loopexit.split-lp

843:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #8
  %844 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %845 unwind label %.loopexit793

845:                                              ; preds = %843
  %846 = extractvalue { i64, i64 } %844, 0
  store i64 %846, ptr %62, align 8
  %847 = extractvalue { i64, i64 } %844, 1
  store i64 %847, ptr %210, align 8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %63) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %63, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %848 unwind label %870

848:                                              ; preds = %845
  %849 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %63)
          to label %850 unwind label %872

850:                                              ; preds = %848
  %851 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %849)
  %.not475 = icmp eq i32 %851, 41
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %63) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %63) #8
  br i1 %.not475, label %884, label %852

852:                                              ; preds = %850
  %853 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %854 unwind label %.loopexit.split-lp794

854:                                              ; preds = %852
  br i1 %853, label %855, label %875

855:                                              ; preds = %854
  %856 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %856, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %858 unwind label %.loopexit.split-lp794

858:                                              ; preds = %855
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull @.str)
          to label %860 unwind label %.loopexit.split-lp794

860:                                              ; preds = %858
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull @.str.1)
          to label %862 unwind label %.loopexit.split-lp794

862:                                              ; preds = %860
  %863 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %861, ptr noundef nonnull @.str.2)
          to label %864 unwind label %.loopexit.split-lp794

864:                                              ; preds = %862
  %865 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %863, i32 noundef 115)
          to label %866 unwind label %.loopexit.split-lp794

866:                                              ; preds = %864
  %867 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %865, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %868 unwind label %.loopexit.split-lp794

868:                                              ; preds = %866
  %869 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %867, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %875 unwind label %.loopexit.split-lp794

.loopexit793:                                     ; preds = %843
  %lpad.loopexit795 = landingpad { ptr, i32 }
          cleanup
  br label %1033

.loopexit.split-lp794:                            ; preds = %852, %855, %858, %860, %862, %864, %866, %868, %889, %892, %895, %897, %899, %901, %903, %905
  %lpad.loopexit.split-lp796 = landingpad { ptr, i32 }
          cleanup
  br label %1033

870:                                              ; preds = %845
  %871 = landingpad { ptr, i32 }
          cleanup
  br label %874

872:                                              ; preds = %848
  %873 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %63) #8
  br label %874

874:                                              ; preds = %872, %870
  %.pn473 = phi { ptr, i32 } [ %873, %872 ], [ %871, %870 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %63) #8
  br label %1033

875:                                              ; preds = %868, %854
  %876 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %64, i32 noundef 41)
          to label %877 unwind label %.thread667

877:                                              ; preds = %875
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %876, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %64)
          to label %879 unwind label %.thread671

.thread671:                                       ; preds = %877
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %64) #8
  br label %883

879:                                              ; preds = %877
  invoke void @__cxa_throw(ptr nonnull %876, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %881

.thread667:                                       ; preds = %875
  %880 = landingpad { ptr, i32 }
          cleanup
  br label %883

881:                                              ; preds = %879
  %882 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %64) #8
  br label %1033

883:                                              ; preds = %.thread671, %.thread667
  %.pn500670 = phi { ptr, i32 } [ %880, %.thread667 ], [ %878, %.thread671 ]
  call void @__cxa_free_exception(ptr %876) #8
  br label %1033

884:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %65) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %65, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %885 unwind label %907

885:                                              ; preds = %884
  %886 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %65)
          to label %887 unwind label %909

887:                                              ; preds = %885
  %888 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %886)
  %.not478 = icmp eq i32 %888, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #8
  br i1 %.not478, label %921, label %889

889:                                              ; preds = %887
  %890 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %891 unwind label %.loopexit.split-lp794

891:                                              ; preds = %889
  br i1 %890, label %892, label %912

892:                                              ; preds = %891
  %893 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %893, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %895 unwind label %.loopexit.split-lp794

895:                                              ; preds = %892
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %894, ptr noundef nonnull @.str)
          to label %897 unwind label %.loopexit.split-lp794

897:                                              ; preds = %895
  %898 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %896, ptr noundef nonnull @.str.1)
          to label %899 unwind label %.loopexit.split-lp794

899:                                              ; preds = %897
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %898, ptr noundef nonnull @.str.2)
          to label %901 unwind label %.loopexit.split-lp794

901:                                              ; preds = %899
  %902 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %900, i32 noundef 116)
          to label %903 unwind label %.loopexit.split-lp794

903:                                              ; preds = %901
  %904 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %902, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %905 unwind label %.loopexit.split-lp794

905:                                              ; preds = %903
  %906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %904, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %912 unwind label %.loopexit.split-lp794

907:                                              ; preds = %884
  %908 = landingpad { ptr, i32 }
          cleanup
  br label %911

909:                                              ; preds = %885
  %910 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #8
  br label %911

911:                                              ; preds = %909, %907
  %.pn476 = phi { ptr, i32 } [ %910, %909 ], [ %908, %907 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #8
  br label %1033

912:                                              ; preds = %905, %891
  %913 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %66, i32 noundef 16)
          to label %914 unwind label %.thread673

914:                                              ; preds = %912
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %913, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %66)
          to label %916 unwind label %.thread677

.thread677:                                       ; preds = %914
  %915 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #8
  br label %920

916:                                              ; preds = %914
  invoke void @__cxa_throw(ptr nonnull %913, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %918

.thread673:                                       ; preds = %912
  %917 = landingpad { ptr, i32 }
          cleanup
  br label %920

918:                                              ; preds = %916
  %919 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #8
  br label %1033

920:                                              ; preds = %.thread677, %.thread673
  %.pn498676 = phi { ptr, i32 } [ %917, %.thread673 ], [ %915, %.thread677 ]
  call void @__cxa_free_exception(ptr %913) #8
  br label %1033

921:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #8
  %922 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %923 unwind label %.loopexit798

923:                                              ; preds = %921
  %924 = extractvalue { i64, i64 } %922, 0
  store i64 %924, ptr %67, align 8
  %925 = extractvalue { i64, i64 } %922, 1
  store i64 %925, ptr %211, align 8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %68) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %68, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %926 unwind label %948

926:                                              ; preds = %923
  %927 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %68)
          to label %928 unwind label %950

928:                                              ; preds = %926
  %929 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %927)
  %.not481 = icmp eq i32 %929, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #8
  br i1 %.not481, label %962, label %930

930:                                              ; preds = %928
  %931 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %932 unwind label %.loopexit.split-lp799

932:                                              ; preds = %930
  br i1 %931, label %933, label %953

933:                                              ; preds = %932
  %934 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %935 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %934, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %936 unwind label %.loopexit.split-lp799

936:                                              ; preds = %933
  %937 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %935, ptr noundef nonnull @.str)
          to label %938 unwind label %.loopexit.split-lp799

938:                                              ; preds = %936
  %939 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %937, ptr noundef nonnull @.str.1)
          to label %940 unwind label %.loopexit.split-lp799

940:                                              ; preds = %938
  %941 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %939, ptr noundef nonnull @.str.2)
          to label %942 unwind label %.loopexit.split-lp799

942:                                              ; preds = %940
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %941, i32 noundef 118)
          to label %944 unwind label %.loopexit.split-lp799

944:                                              ; preds = %942
  %945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %943, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %946 unwind label %.loopexit.split-lp799

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %945, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %953 unwind label %.loopexit.split-lp799

.loopexit798:                                     ; preds = %921, %1029
  %lpad.loopexit800 = landingpad { ptr, i32 }
          cleanup
  br label %1032

.loopexit.split-lp799:                            ; preds = %930, %933, %936, %938, %940, %942, %944, %946, %1021
  %lpad.loopexit.split-lp801 = landingpad { ptr, i32 }
          cleanup
  br label %1032

948:                                              ; preds = %923
  %949 = landingpad { ptr, i32 }
          cleanup
  br label %952

950:                                              ; preds = %926
  %951 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #8
  br label %952

952:                                              ; preds = %950, %948
  %.pn479 = phi { ptr, i32 } [ %951, %950 ], [ %949, %948 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #8
  br label %1032

953:                                              ; preds = %946, %932
  %954 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %69, i32 noundef 50)
          to label %955 unwind label %.thread679

955:                                              ; preds = %953
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %954, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %69)
          to label %957 unwind label %.thread683

.thread683:                                       ; preds = %955
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %69) #8
  br label %961

957:                                              ; preds = %955
  invoke void @__cxa_throw(ptr nonnull %954, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %959

.thread679:                                       ; preds = %953
  %958 = landingpad { ptr, i32 }
          cleanup
  br label %961

959:                                              ; preds = %957
  %960 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %69) #8
  br label %1032

961:                                              ; preds = %.thread683, %.thread679
  %.pn495682 = phi { ptr, i32 } [ %958, %.thread679 ], [ %956, %.thread683 ]
  call void @__cxa_free_exception(ptr %954) #8
  br label %1032

962:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %70) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %70, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %963 unwind label %980

963:                                              ; preds = %962
  %964 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %70)
          to label %965 unwind label %982

965:                                              ; preds = %963
  %966 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %964)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #8
  %967 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
  %968 = icmp eq i32 %967, 14
  br i1 %968, label %969, label %1002

969:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull @.str.4)
          to label %970 unwind label %985

970:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #8
  %971 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %972 unwind label %987

972:                                              ; preds = %970
  %973 = getelementptr inbounds i8, ptr %971, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %973)
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull %72, ptr nonnull %73, i64 1)
          to label %.preheader861 unwind label %.loopexit791.loopexit

.preheader861:                                    ; preds = %972
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %74) #8
  %974 = call noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
  %975 = call noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %67)
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %976 unwind label %990

976:                                              ; preds = %.preheader861
  invoke void @_ZN3HIR4PathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(88) %75, ptr noundef nonnull %76)
          to label %977 unwind label %992

977:                                              ; preds = %976
  invoke void @_ZN5Reloc9new_namedEmmN3HIR4PathE(ptr dead_on_unwind nonnull writable sret(%struct.Reloc) align 8 %74, i64 noundef %974, i64 noundef %975, ptr noundef nonnull %75)
          to label %978 unwind label %994

978:                                              ; preds = %977
  invoke void @_ZNSt6vectorI5RelocSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(56) %74)
          to label %979 unwind label %996

979:                                              ; preds = %978
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %74) #8
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %74) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  br label %1029

980:                                              ; preds = %962
  %981 = landingpad { ptr, i32 }
          cleanup
  br label %984

982:                                              ; preds = %963
  %983 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #8
  br label %984

984:                                              ; preds = %982, %980
  %.pn482 = phi { ptr, i32 } [ %983, %982 ], [ %981, %980 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #8
  br label %1032

985:                                              ; preds = %969
  %986 = landingpad { ptr, i32 }
          cleanup
  br label %1001

987:                                              ; preds = %970
  %988 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit791

.loopexit791.loopexit:                            ; preds = %972
  %989 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  br label %.loopexit791

.loopexit791:                                     ; preds = %.loopexit791.loopexit, %987
  %.pn488 = phi { ptr, i32 } [ %988, %987 ], [ %989, %.loopexit791.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %1001

990:                                              ; preds = %.preheader861
  %991 = landingpad { ptr, i32 }
          cleanup
  br label %1000

992:                                              ; preds = %976
  %993 = landingpad { ptr, i32 }
          cleanup
  br label %999

994:                                              ; preds = %977
  %995 = landingpad { ptr, i32 }
          cleanup
  br label %998

996:                                              ; preds = %978
  %997 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %74) #8
  br label %998

998:                                              ; preds = %996, %994
  %.pn490 = phi { ptr, i32 } [ %997, %996 ], [ %995, %994 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #8
  br label %999

999:                                              ; preds = %998, %992
  %.pn490.pn = phi { ptr, i32 } [ %.pn490, %998 ], [ %993, %992 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br label %1000

1000:                                             ; preds = %999, %990
  %.pn490.pn.pn = phi { ptr, i32 } [ %.pn490.pn, %999 ], [ %991, %990 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %74) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  br label %1001

1001:                                             ; preds = %1000, %.loopexit791, %985
  %.pn490.pn.pn.pn = phi { ptr, i32 } [ %.pn490.pn.pn, %1000 ], [ %.pn488, %.loopexit791 ], [ %986, %985 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  br label %1032

1002:                                             ; preds = %965
  %1003 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
  %1004 = icmp eq i32 %1003, 19
  br i1 %1004, label %1005, label %1017

1005:                                             ; preds = %1002
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %77) #8
  %1006 = call noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
  %1007 = call noundef i64 @_ZNK4U1286get_loEv(ptr noundef nonnull align 8 dereferenceable(16) %67)
  %1008 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1009 unwind label %1012

1009:                                             ; preds = %1005
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %1008)
          to label %1010 unwind label %1012

1010:                                             ; preds = %1009
  call void @_ZN5Reloc9new_bytesEmmNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%struct.Reloc) align 8 %77, i64 noundef %1006, i64 noundef %1007, ptr noundef nonnull %78)
  invoke void @_ZNSt6vectorI5RelocSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(56) %77)
          to label %1011 unwind label %1014

1011:                                             ; preds = %1010
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %77) #8
  br label %1029

1012:                                             ; preds = %1009, %1005
  %1013 = landingpad { ptr, i32 }
          cleanup
  br label %1016

1014:                                             ; preds = %1010
  %1015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %1016

1016:                                             ; preds = %1014, %1012
  %.pn486 = phi { ptr, i32 } [ %1015, %1014 ], [ %1013, %1012 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %77) #8
  br label %1032

1017:                                             ; preds = %1002
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %79, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1018 unwind label %1022

1018:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %79, i32 noundef 0, ptr noundef nonnull %80)
          to label %1019 unwind label %1024

1019:                                             ; preds = %1018
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  %1020 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1020, ptr noundef nonnull @.str.5)
          to label %1021 unwind label %1027

1021:                                             ; preds = %1019
  invoke void @__cxa_throw(ptr nonnull %1020, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %.loopexit.split-lp799

1022:                                             ; preds = %1017
  %1023 = landingpad { ptr, i32 }
          cleanup
  br label %1026

1024:                                             ; preds = %1018
  %1025 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  br label %1026

1026:                                             ; preds = %1024, %1022
  %.pn484 = phi { ptr, i32 } [ %1025, %1024 ], [ %1023, %1022 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  br label %1032

1027:                                             ; preds = %1019
  %1028 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1020) #8
  br label %1032

1029:                                             ; preds = %1011, %979
  %1030 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 31)
          to label %1031 unwind label %.loopexit798

1031:                                             ; preds = %1029
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  br label %.preheader

1032:                                             ; preds = %.loopexit798, %.loopexit.split-lp799, %959, %961, %1027, %1026, %1016, %1001, %984, %952
  %.pn495.pn = phi { ptr, i32 } [ %.pn495682, %961 ], [ %960, %959 ], [ %.pn490.pn.pn.pn, %1001 ], [ %.pn486, %1016 ], [ %1028, %1027 ], [ %.pn484, %1026 ], [ %.pn482, %984 ], [ %.pn479, %952 ], [ %lpad.loopexit800, %.loopexit798 ], [ %lpad.loopexit.split-lp801, %.loopexit.split-lp799 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #8
  br label %1033

1033:                                             ; preds = %.loopexit793, %.loopexit.split-lp794, %918, %881, %920, %883, %1032, %911, %874
  %.pn500.pn = phi { ptr, i32 } [ %.pn500670, %883 ], [ %882, %881 ], [ %.pn498676, %920 ], [ %919, %918 ], [ %.pn495.pn, %1032 ], [ %.pn476, %911 ], [ %.pn473, %874 ], [ %lpad.loopexit795, %.loopexit793 ], [ %lpad.loopexit.split-lp796, %.loopexit.split-lp794 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  br label %.loopexit.split-lp

1034:                                             ; preds = %768
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %82) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %82, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1035 unwind label %1057

1035:                                             ; preds = %1034
  %1036 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %82)
          to label %1037 unwind label %1059

1037:                                             ; preds = %1035
  %1038 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1036)
  %.not464 = icmp eq i32 %1038, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %82) #8
  br i1 %.not464, label %1071, label %1039

1039:                                             ; preds = %1037
  %1040 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1041 unwind label %.loopexit.split-lp.loopexit.split-lp

1041:                                             ; preds = %1039
  br i1 %1040, label %1042, label %1062

1042:                                             ; preds = %1041
  %1043 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1044 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1043, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1045 unwind label %.loopexit.split-lp.loopexit.split-lp

1045:                                             ; preds = %1042
  %1046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1044, ptr noundef nonnull @.str)
          to label %1047 unwind label %.loopexit.split-lp.loopexit.split-lp

1047:                                             ; preds = %1045
  %1048 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1046, ptr noundef nonnull @.str.1)
          to label %1049 unwind label %.loopexit.split-lp.loopexit.split-lp

1049:                                             ; preds = %1047
  %1050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1048, ptr noundef nonnull @.str.2)
          to label %1051 unwind label %.loopexit.split-lp.loopexit.split-lp

1051:                                             ; preds = %1049
  %1052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1050, i32 noundef 135)
          to label %1053 unwind label %.loopexit.split-lp.loopexit.split-lp

1053:                                             ; preds = %1051
  %1054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1052, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1055 unwind label %.loopexit.split-lp.loopexit.split-lp

1055:                                             ; preds = %1053
  %1056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1054, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1062 unwind label %.loopexit.split-lp.loopexit.split-lp

1057:                                             ; preds = %1034
  %1058 = landingpad { ptr, i32 }
          cleanup
  br label %1061

1059:                                             ; preds = %1035
  %1060 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #8
  br label %1061

1061:                                             ; preds = %1059, %1057
  %.pn462 = phi { ptr, i32 } [ %1060, %1059 ], [ %1058, %1057 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %82) #8
  br label %.loopexit.split-lp

1062:                                             ; preds = %1055, %1041
  %1063 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %83, i32 noundef 26)
          to label %1064 unwind label %.thread685

1064:                                             ; preds = %1062
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1063, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %83)
          to label %1066 unwind label %.thread689

.thread689:                                       ; preds = %1064
  %1065 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %83) #8
  br label %1070

1066:                                             ; preds = %1064
  invoke void @__cxa_throw(ptr nonnull %1063, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1068

.thread685:                                       ; preds = %1062
  %1067 = landingpad { ptr, i32 }
          cleanup
  br label %1070

1068:                                             ; preds = %1066
  %1069 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %83) #8
  br label %.loopexit.split-lp

1070:                                             ; preds = %.thread689, %.thread685
  %.pn465688 = phi { ptr, i32 } [ %1067, %.thread685 ], [ %1065, %.thread689 ]
  call void @__cxa_free_exception(ptr %1063) #8
  br label %.loopexit.split-lp

1071:                                             ; preds = %1037, %766
  %1072 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN14EncodedLiteralaSEOS_(ptr noundef nonnull align 8 dereferenceable(48) %213, ptr noundef nonnull align 8 dereferenceable(48) %54) #8
  store i8 1, ptr %214, align 8, !tbaa !12
  call void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #8
  br label %1073

.loopexit.split-lp:                               ; preds = %.loopexit792, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %1068, %840, %803, %757, %764, %1070, %842, %805, %1061, %1033, %833, %796
  %.pn507.pn = phi { ptr, i32 } [ %.pn505658, %805 ], [ %804, %803 ], [ %.pn503664, %842 ], [ %841, %840 ], [ %.pn500.pn, %1033 ], [ %.pn470, %833 ], [ %.pn467, %796 ], [ %.pn465688, %1070 ], [ %1069, %1068 ], [ %.pn462, %1061 ], [ %765, %764 ], [ %758, %757 ], [ %lpad.loopexit, %.loopexit792 ], [ %lpad.loopexit846, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp847, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #8
  br label %1136

1073:                                             ; preds = %1071, %711
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %84) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %84, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1074 unwind label %1096

1074:                                             ; preds = %1073
  %1075 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %84)
          to label %1076 unwind label %1098

1076:                                             ; preds = %1074
  %1077 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1075)
  %.not517 = icmp eq i32 %1077, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %84) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %84) #8
  br i1 %.not517, label %1110, label %1078

1078:                                             ; preds = %1076
  %1079 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1080 unwind label %.loopexit.split-lp842

1080:                                             ; preds = %1078
  br i1 %1079, label %1081, label %1101

1081:                                             ; preds = %1080
  %1082 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1082, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1084 unwind label %.loopexit.split-lp842

1084:                                             ; preds = %1081
  %1085 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1083, ptr noundef nonnull @.str)
          to label %1086 unwind label %.loopexit.split-lp842

1086:                                             ; preds = %1084
  %1087 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1085, ptr noundef nonnull @.str.1)
          to label %1088 unwind label %.loopexit.split-lp842

1088:                                             ; preds = %1086
  %1089 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1087, ptr noundef nonnull @.str.2)
          to label %1090 unwind label %.loopexit.split-lp842

1090:                                             ; preds = %1088
  %1091 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1089, i32 noundef 141)
          to label %1092 unwind label %.loopexit.split-lp842

1092:                                             ; preds = %1090
  %1093 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1091, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1094 unwind label %.loopexit.split-lp842

1094:                                             ; preds = %1092
  %1095 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1093, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1101 unwind label %.loopexit.split-lp842

1096:                                             ; preds = %1073
  %1097 = landingpad { ptr, i32 }
          cleanup
  br label %1100

1098:                                             ; preds = %1074
  %1099 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %84) #8
  br label %1100

1100:                                             ; preds = %1098, %1096
  %.pn515 = phi { ptr, i32 } [ %1099, %1098 ], [ %1097, %1096 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %84) #8
  br label %1136

1101:                                             ; preds = %1094, %1080
  %1102 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %85, i32 noundef 32)
          to label %1103 unwind label %.thread691

1103:                                             ; preds = %1101
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1102, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %85)
          to label %1105 unwind label %.thread695

.thread695:                                       ; preds = %1103
  %1104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #8
  br label %1109

1105:                                             ; preds = %1103
  invoke void @__cxa_throw(ptr nonnull %1102, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1107

.thread691:                                       ; preds = %1101
  %1106 = landingpad { ptr, i32 }
          cleanup
  br label %1109

1107:                                             ; preds = %1105
  %1108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #8
  br label %1136

1109:                                             ; preds = %.thread695, %.thread691
  %.pn524694 = phi { ptr, i32 } [ %1106, %.thread691 ], [ %1104, %.thread695 ]
  call void @__cxa_free_exception(ptr %1102) #8
  br label %1136

1110:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %86) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %86)
          to label %1111 unwind label %1120

1111:                                             ; preds = %1110
  invoke void @_ZN3HIR6StaticC2EOS0_(ptr noundef nonnull align 8 dereferenceable(360) %87, ptr noundef nonnull align 8 dereferenceable(360) %46)
          to label %1112 unwind label %1122

1112:                                             ; preds = %1111
  invoke void @_ZN3HIR9ValueItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(368) %216, ptr noundef nonnull %87)
          to label %1113 unwind label %1124

1113:                                             ; preds = %1112
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %87) #8
  %1114 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %1115 = getelementptr inbounds i8, ptr %1114, i64 40
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.237") align 8 %89, ptr noundef nonnull align 8 dereferenceable(384) %86)
          to label %1116 unwind label %1127

1116:                                             ; preds = %1113
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.235") align 8 %88, ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %1117 unwind label %1129

1117:                                             ; preds = %1116
  %1118 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1115, ptr noundef nonnull align 8 dereferenceable(16) %88)
          to label %1119 unwind label %1131

1119:                                             ; preds = %1117
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #8
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %86) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %86) #8
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %46) #8
  call void @llvm.lifetime.end.p0(i64 360, ptr nonnull %46) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  br label %2034

1120:                                             ; preds = %1110
  %1121 = landingpad { ptr, i32 }
          cleanup
  br label %1135

1122:                                             ; preds = %1111
  %1123 = landingpad { ptr, i32 }
          cleanup
  br label %1126

1124:                                             ; preds = %1112
  %1125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %87) #8
  br label %1126

1126:                                             ; preds = %1122, %1124
  %.pn518 = phi { ptr, i32 } [ %1125, %1124 ], [ %1123, %1122 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #8
  br label %1135

1127:                                             ; preds = %1113
  %1128 = landingpad { ptr, i32 }
          cleanup
  br label %1134

1129:                                             ; preds = %1116
  %1130 = landingpad { ptr, i32 }
          cleanup
  br label %1133

1131:                                             ; preds = %1117
  %1132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #8
  br label %1133

1133:                                             ; preds = %1131, %1129
  %.pn520 = phi { ptr, i32 } [ %1132, %1131 ], [ %1130, %1129 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  br label %1134

1134:                                             ; preds = %1133, %1127
  %.pn520.pn = phi { ptr, i32 } [ %.pn520, %1133 ], [ %1128, %1127 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #8
  call void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %86) #8
  br label %1135

1135:                                             ; preds = %1126, %1134, %1120
  %.pn520.pn.pn = phi { ptr, i32 } [ %.pn520.pn, %1134 ], [ %.pn518, %1126 ], [ %1121, %1120 ]
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %86) #8
  br label %1136

1136:                                             ; preds = %.loopexit841, %.loopexit.split-lp842, %1107, %747, %706, %1109, %749, %708, %1135, %1100, %.loopexit.split-lp, %740, %699
  %.pn526.pn = phi { ptr, i32 } [ %.pn526646, %708 ], [ %707, %706 ], [ %.pn524694, %1109 ], [ %1108, %1107 ], [ %.pn520.pn.pn, %1135 ], [ %.pn515, %1100 ], [ %.pn512, %699 ], [ %.pn510652, %749 ], [ %748, %747 ], [ %.pn507.pn, %.loopexit.split-lp ], [ %.pn458, %740 ], [ %lpad.loopexit843, %.loopexit841 ], [ %lpad.loopexit.split-lp844, %.loopexit.split-lp842 ]
  call void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360) %46) #8
  br label %1137

1137:                                             ; preds = %1136, %694
  %.pn526.pn.pn = phi { ptr, i32 } [ %.pn526.pn, %1136 ], [ %.pn456, %694 ]
  call void @llvm.lifetime.end.p0(i64 360, ptr nonnull %46) #8
  br label %1138

1138:                                             ; preds = %659, %661, %1137, %651, %650
  %.pn530.pn = phi { ptr, i32 } [ %.pn530640, %661 ], [ %660, %659 ], [ %652, %651 ], [ %.pn526.pn.pn, %1137 ], [ %.pn453, %650 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %1139

1139:                                             ; preds = %1138, %644
  %.pn530.pn.pn = phi { ptr, i32 } [ %.pn530.pn, %1138 ], [ %645, %644 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %1140

1140:                                             ; preds = %617, %619, %1139, %609, %608
  %.pn534.pn = phi { ptr, i32 } [ %.pn534634, %619 ], [ %618, %617 ], [ %610, %609 ], [ %.pn530.pn.pn, %1139 ], [ %.pn450, %608 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %1141

1141:                                             ; preds = %1140, %602
  %.pn534.pn.pn = phi { ptr, i32 } [ %.pn534.pn, %1140 ], [ %603, %602 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  br label %.loopexit.split-lp815

1142:                                             ; preds = %536
  %1143 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 83)
          to label %1144 unwind label %.loopexit.split-lp815.loopexit

1144:                                             ; preds = %1142
  br i1 %1143, label %1145, label %1250

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %90) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %90, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1146 unwind label %1168

1146:                                             ; preds = %1145
  %1147 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %90)
          to label %1148 unwind label %1170

1148:                                             ; preds = %1146
  %1149 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1147)
  %.not433 = icmp eq i32 %1149, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %90) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %90) #8
  br i1 %.not433, label %1182, label %1150

1150:                                             ; preds = %1148
  %1151 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1152 unwind label %.loopexit.split-lp815.loopexit.split-lp

1152:                                             ; preds = %1150
  br i1 %1151, label %1153, label %1173

1153:                                             ; preds = %1152
  %1154 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1154, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1156 unwind label %.loopexit.split-lp815.loopexit.split-lp

1156:                                             ; preds = %1153
  %1157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1155, ptr noundef nonnull @.str)
          to label %1158 unwind label %.loopexit.split-lp815.loopexit.split-lp

1158:                                             ; preds = %1156
  %1159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1157, ptr noundef nonnull @.str.1)
          to label %1160 unwind label %.loopexit.split-lp815.loopexit.split-lp

1160:                                             ; preds = %1158
  %1161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1159, ptr noundef nonnull @.str.2)
          to label %1162 unwind label %.loopexit.split-lp815.loopexit.split-lp

1162:                                             ; preds = %1160
  %1163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1161, i32 noundef 151)
          to label %1164 unwind label %.loopexit.split-lp815.loopexit.split-lp

1164:                                             ; preds = %1162
  %1165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1163, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1166 unwind label %.loopexit.split-lp815.loopexit.split-lp

1166:                                             ; preds = %1164
  %1167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1165, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1173 unwind label %.loopexit.split-lp815.loopexit.split-lp

1168:                                             ; preds = %1145
  %1169 = landingpad { ptr, i32 }
          cleanup
  br label %1172

1170:                                             ; preds = %1146
  %1171 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %90) #8
  br label %1172

1172:                                             ; preds = %1170, %1168
  %.pn431 = phi { ptr, i32 } [ %1171, %1170 ], [ %1169, %1168 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %90) #8
  br label %.loopexit.split-lp815

1173:                                             ; preds = %1166, %1152
  %1174 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %91, i32 noundef 19)
          to label %1175 unwind label %.thread697

1175:                                             ; preds = %1173
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1174, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %91)
          to label %1177 unwind label %.thread701

.thread701:                                       ; preds = %1175
  %1176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %91) #8
  br label %1181

1177:                                             ; preds = %1175
  invoke void @__cxa_throw(ptr nonnull %1174, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1179

.thread697:                                       ; preds = %1173
  %1178 = landingpad { ptr, i32 }
          cleanup
  br label %1181

1179:                                             ; preds = %1177
  %1180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %91) #8
  br label %.loopexit.split-lp815

1181:                                             ; preds = %.thread701, %.thread697
  %.pn445700 = phi { ptr, i32 } [ %1178, %.thread697 ], [ %1176, %.thread701 ]
  call void @__cxa_free_exception(ptr %1174) #8
  br label %.loopexit.split-lp815

1182:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #8
  %1183 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1184 unwind label %1208

1184:                                             ; preds = %1182
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %1183)
          to label %1185 unwind label %1208

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %93) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %93, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1186 unwind label %1210

1186:                                             ; preds = %1185
  %1187 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %93)
          to label %1188 unwind label %1212

1188:                                             ; preds = %1186
  %1189 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1187)
  %.not436 = icmp eq i32 %1189, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %93) #8
  br i1 %.not436, label %1226, label %1190

1190:                                             ; preds = %1188
  %1191 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1192 unwind label %1215

1192:                                             ; preds = %1190
  br i1 %1191, label %1193, label %1217

1193:                                             ; preds = %1192
  %1194 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1194, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1196 unwind label %1215

1196:                                             ; preds = %1193
  %1197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1195, ptr noundef nonnull @.str)
          to label %1198 unwind label %1215

1198:                                             ; preds = %1196
  %1199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1197, ptr noundef nonnull @.str.1)
          to label %1200 unwind label %1215

1200:                                             ; preds = %1198
  %1201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1199, ptr noundef nonnull @.str.2)
          to label %1202 unwind label %1215

1202:                                             ; preds = %1200
  %1203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1201, i32 noundef 153)
          to label %1204 unwind label %1215

1204:                                             ; preds = %1202
  %1205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1203, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1206 unwind label %1215

1206:                                             ; preds = %1204
  %1207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1205, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1217 unwind label %1215

1208:                                             ; preds = %1184, %1182
  %1209 = landingpad { ptr, i32 }
          cleanup
  br label %1249

1210:                                             ; preds = %1185
  %1211 = landingpad { ptr, i32 }
          cleanup
  br label %1214

1212:                                             ; preds = %1186
  %1213 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #8
  br label %1214

1214:                                             ; preds = %1212, %1210
  %.pn434 = phi { ptr, i32 } [ %1213, %1212 ], [ %1211, %1210 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %93) #8
  br label %1248

1215:                                             ; preds = %1206, %1204, %1202, %1200, %1198, %1196, %1193, %1190
  %1216 = landingpad { ptr, i32 }
          cleanup
  br label %1248

1217:                                             ; preds = %1206, %1192
  %1218 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %94, i32 noundef 32)
          to label %1219 unwind label %.thread703

1219:                                             ; preds = %1217
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1218, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %94)
          to label %1221 unwind label %.thread707

.thread707:                                       ; preds = %1219
  %1220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #8
  br label %1225

1221:                                             ; preds = %1219
  invoke void @__cxa_throw(ptr nonnull %1218, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1223

.thread703:                                       ; preds = %1217
  %1222 = landingpad { ptr, i32 }
          cleanup
  br label %1225

1223:                                             ; preds = %1221
  %1224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #8
  br label %1248

1225:                                             ; preds = %.thread707, %.thread703
  %.pn441706 = phi { ptr, i32 } [ %1222, %.thread703 ], [ %1220, %.thread707 ]
  call void @__cxa_free_exception(ptr %1218) #8
  br label %1248

1226:                                             ; preds = %1188
  %1227 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %1228 = getelementptr inbounds i8, ptr %1227, i64 840
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %95) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #8
  call void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96)
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %97) #8
  invoke void @_ZN3HIR8CratePtrC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1229 unwind label %1235

1229:                                             ; preds = %1226
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %1230 unwind label %1237

1230:                                             ; preds = %1229
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %1231 unwind label %1239

1231:                                             ; preds = %1230
  invoke void @_ZSt9make_pairI8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.272") align 8 %95, ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(72) %97)
          to label %1232 unwind label %1241

1232:                                             ; preds = %1231
  %1233 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56) %1228, ptr noundef nonnull align 8 dereferenceable(80) %95)
          to label %1234 unwind label %1243

1234:                                             ; preds = %1232
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %95) #8
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %97) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %97) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  br label %2034

1235:                                             ; preds = %1226
  %1236 = landingpad { ptr, i32 }
          cleanup
  br label %1247

1237:                                             ; preds = %1229
  %1238 = landingpad { ptr, i32 }
          cleanup
  br label %1246

1239:                                             ; preds = %1230
  %1240 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  br label %1246

1241:                                             ; preds = %1231
  %1242 = landingpad { ptr, i32 }
          cleanup
  br label %1245

1243:                                             ; preds = %1232
  %1244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %95) #8
  br label %1245

1245:                                             ; preds = %1241, %1243
  %.pn437 = phi { ptr, i32 } [ %1244, %1243 ], [ %1242, %1241 ]
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %97) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #8
  br label %1247

1246:                                             ; preds = %1239, %1237
  %.pn437.pn.ph = phi { ptr, i32 } [ %1238, %1237 ], [ %1240, %1239 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #8
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  br label %1247

1247:                                             ; preds = %1245, %1246, %1235
  %.pn437.pn.pn = phi { ptr, i32 } [ %.pn437.pn.ph, %1246 ], [ %.pn437, %1245 ], [ %1236, %1235 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %97) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %95) #8
  br label %1248

1248:                                             ; preds = %1223, %1225, %1247, %1215, %1214
  %.pn441.pn = phi { ptr, i32 } [ %.pn441706, %1225 ], [ %1224, %1223 ], [ %1216, %1215 ], [ %.pn437.pn.pn, %1247 ], [ %.pn434, %1214 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %1249

1249:                                             ; preds = %1248, %1208
  %.pn441.pn.pn = phi { ptr, i32 } [ %.pn441.pn, %1248 ], [ %1209, %1208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  br label %.loopexit.split-lp815

1250:                                             ; preds = %1144
  %1251 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 91)
          to label %1252 unwind label %.loopexit.split-lp815.loopexit

1252:                                             ; preds = %1250
  br i1 %1251, label %1253, label %2009

1253:                                             ; preds = %1252
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %99) #8
  invoke void @_ZN8TypeReprC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %99)
          to label %1254 unwind label %1277

1254:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %100) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %100, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1255 unwind label %1279

1255:                                             ; preds = %1254
  %1256 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %100)
          to label %1257 unwind label %1281

1257:                                             ; preds = %1255
  %1258 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1256)
  %.not316 = icmp eq i32 %1258, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %100) #8
  br i1 %.not316, label %1295, label %1259

1259:                                             ; preds = %1257
  %1260 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1261 unwind label %1284

1261:                                             ; preds = %1259
  br i1 %1260, label %1262, label %1286

1262:                                             ; preds = %1261
  %1263 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1263, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1265 unwind label %1284

1265:                                             ; preds = %1262
  %1266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1264, ptr noundef nonnull @.str)
          to label %1267 unwind label %1284

1267:                                             ; preds = %1265
  %1268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1266, ptr noundef nonnull @.str.1)
          to label %1269 unwind label %1284

1269:                                             ; preds = %1267
  %1270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1268, ptr noundef nonnull @.str.2)
          to label %1271 unwind label %1284

1271:                                             ; preds = %1269
  %1272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1270, i32 noundef 164)
          to label %1273 unwind label %1284

1273:                                             ; preds = %1271
  %1274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1272, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1275 unwind label %1284

1275:                                             ; preds = %1273
  %1276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1274, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1286 unwind label %1284

1277:                                             ; preds = %1253
  %1278 = landingpad { ptr, i32 }
          cleanup
  br label %2008

1279:                                             ; preds = %1254
  %1280 = landingpad { ptr, i32 }
          cleanup
  br label %1283

1281:                                             ; preds = %1255
  %1282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #8
  br label %1283

1283:                                             ; preds = %1281, %1279
  %.pn314 = phi { ptr, i32 } [ %1282, %1281 ], [ %1280, %1279 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %100) #8
  br label %2007

1284:                                             ; preds = %1275, %1273, %1271, %1269, %1267, %1265, %1262, %1259
  %1285 = landingpad { ptr, i32 }
          cleanup
  br label %2007

1286:                                             ; preds = %1275, %1261
  %1287 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %101, i32 noundef 14)
          to label %1288 unwind label %.thread713

1288:                                             ; preds = %1286
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1287, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %101)
          to label %1290 unwind label %.thread717

.thread717:                                       ; preds = %1288
  %1289 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %101) #8
  br label %1294

1290:                                             ; preds = %1288
  invoke void @__cxa_throw(ptr nonnull %1287, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1292

.thread713:                                       ; preds = %1286
  %1291 = landingpad { ptr, i32 }
          cleanup
  br label %1294

1292:                                             ; preds = %1290
  %1293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %101) #8
  br label %2007

1294:                                             ; preds = %.thread717, %.thread713
  %.pn427716 = phi { ptr, i32 } [ %1291, %.thread713 ], [ %1289, %.thread717 ]
  call void @__cxa_free_exception(ptr %1287) #8
  br label %2007

1295:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #8
  %1296 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1297 unwind label %1324

1297:                                             ; preds = %1295
  %1298 = getelementptr inbounds i8, ptr %1296, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %1298)
  %1299 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 0)
          to label %1300 unwind label %.loopexit823

1300:                                             ; preds = %1297
  %.not422 = icmp eq i32 %1299, 32
  br i1 %.not422, label %1301, label %1362

1301:                                             ; preds = %1300
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %103) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %103, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1302 unwind label %1326

1302:                                             ; preds = %1301
  %1303 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %103)
          to label %1304 unwind label %1328

1304:                                             ; preds = %1302
  %1305 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1303)
  %.not417 = icmp eq i32 %1305, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %103) #8
  br i1 %.not417, label %1340, label %1306

1306:                                             ; preds = %1304
  %1307 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1308 unwind label %.loopexit.split-lp824

1308:                                             ; preds = %1306
  br i1 %1307, label %1309, label %1331

1309:                                             ; preds = %1308
  %1310 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1310, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1312 unwind label %.loopexit.split-lp824

1312:                                             ; preds = %1309
  %1313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1311, ptr noundef nonnull @.str)
          to label %1314 unwind label %.loopexit.split-lp824

1314:                                             ; preds = %1312
  %1315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1313, ptr noundef nonnull @.str.1)
          to label %1316 unwind label %.loopexit.split-lp824

1316:                                             ; preds = %1314
  %1317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1315, ptr noundef nonnull @.str.2)
          to label %1318 unwind label %.loopexit.split-lp824

1318:                                             ; preds = %1316
  %1319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1317, i32 noundef 167)
          to label %1320 unwind label %.loopexit.split-lp824

1320:                                             ; preds = %1318
  %1321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1319, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1322 unwind label %.loopexit.split-lp824

1322:                                             ; preds = %1320
  %1323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1321, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1331 unwind label %.loopexit.split-lp824

1324:                                             ; preds = %1295
  %1325 = landingpad { ptr, i32 }
          cleanup
  br label %2006

.loopexit823:                                     ; preds = %1297
  %lpad.loopexit825 = landingpad { ptr, i32 }
          cleanup
  br label %2005

.loopexit.split-lp824:                            ; preds = %1306, %1309, %1312, %1314, %1316, %1318, %1320, %1322, %1367, %1370, %1373, %1375, %1377, %1379, %1381, %1383, %1404, %1407, %1410, %1412, %1414, %1416, %1418, %1420, %1441, %1444, %1447, %1449, %1451, %1453, %1455, %1457
  %lpad.loopexit.split-lp826 = landingpad { ptr, i32 }
          cleanup
  br label %2005

1326:                                             ; preds = %1301
  %1327 = landingpad { ptr, i32 }
          cleanup
  br label %1330

1328:                                             ; preds = %1302
  %1329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #8
  br label %1330

1330:                                             ; preds = %1328, %1326
  %.pn415 = phi { ptr, i32 } [ %1329, %1328 ], [ %1327, %1326 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %103) #8
  br label %2005

1331:                                             ; preds = %1322, %1308
  %1332 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %104, i32 noundef 32)
          to label %1333 unwind label %.thread719

1333:                                             ; preds = %1331
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1332, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %104)
          to label %1335 unwind label %.thread723

.thread723:                                       ; preds = %1333
  %1334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %104) #8
  br label %1339

1335:                                             ; preds = %1333
  invoke void @__cxa_throw(ptr nonnull %1332, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1337

.thread719:                                       ; preds = %1331
  %1336 = landingpad { ptr, i32 }
          cleanup
  br label %1339

1337:                                             ; preds = %1335
  %1338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %104) #8
  br label %2005

1339:                                             ; preds = %.thread723, %.thread719
  %.pn423722 = phi { ptr, i32 } [ %1336, %.thread719 ], [ %1334, %.thread723 ]
  call void @__cxa_free_exception(ptr %1332) #8
  br label %2005

1340:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %105) #8
  call void @_ZN3HIR10ExternTypeC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #8
  call void @llvm.lifetime.start.p0(i64 424, ptr nonnull %106) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %106)
          to label %1341 unwind label %1349

1341:                                             ; preds = %1340
  call void @_ZN3HIR10ExternTypeC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %107, ptr noundef nonnull align 8 dereferenceable(56) %105) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_10ExternTypeE(ptr noundef nonnull align 8 dereferenceable(408) %207, ptr noundef nonnull %107)
          to label %1342 unwind label %1351

1342:                                             ; preds = %1341
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %107) #8
  %1343 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %1344 = getelementptr inbounds i8, ptr %1343, i64 96
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.377") align 8 %109, ptr noundef nonnull align 8 dereferenceable(424) %106)
          to label %1345 unwind label %1353

1345:                                             ; preds = %1342
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.375") align 8 %108, ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %1346 unwind label %1355

1346:                                             ; preds = %1345
  %1347 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1344, ptr noundef nonnull align 8 dereferenceable(16) %108)
          to label %1348 unwind label %1357

1348:                                             ; preds = %1346
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %106) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %106) #8
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %105) #8
  br label %2003

1349:                                             ; preds = %1340
  %1350 = landingpad { ptr, i32 }
          cleanup
  br label %1361

1351:                                             ; preds = %1341
  %1352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %107) #8
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #8
  br label %1361

1353:                                             ; preds = %1342
  %1354 = landingpad { ptr, i32 }
          cleanup
  br label %1360

1355:                                             ; preds = %1345
  %1356 = landingpad { ptr, i32 }
          cleanup
  br label %1359

1357:                                             ; preds = %1346
  %1358 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #8
  br label %1359

1359:                                             ; preds = %1357, %1355
  %.pn418 = phi { ptr, i32 } [ %1358, %1357 ], [ %1356, %1355 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  br label %1360

1360:                                             ; preds = %1359, %1353
  %.pn418.pn = phi { ptr, i32 } [ %.pn418, %1359 ], [ %1354, %1353 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %106) #8
  br label %1361

1361:                                             ; preds = %1351, %1360, %1349
  %.pn418.pn.pn = phi { ptr, i32 } [ %.pn418.pn, %1360 ], [ %1352, %1351 ], [ %1350, %1349 ]
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %106) #8
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %105) #8
  br label %2005

1362:                                             ; preds = %1300
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %110) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %110, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1363 unwind label %1385

1363:                                             ; preds = %1362
  %1364 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %110)
          to label %1365 unwind label %1387

1365:                                             ; preds = %1363
  %1366 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1364)
  %.not319 = icmp eq i32 %1366, 25
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %110) #8
  br i1 %.not319, label %1399, label %1367

1367:                                             ; preds = %1365
  %1368 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1369 unwind label %.loopexit.split-lp824

1369:                                             ; preds = %1367
  br i1 %1368, label %1370, label %1390

1370:                                             ; preds = %1369
  %1371 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1371, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1373 unwind label %.loopexit.split-lp824

1373:                                             ; preds = %1370
  %1374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1372, ptr noundef nonnull @.str)
          to label %1375 unwind label %.loopexit.split-lp824

1375:                                             ; preds = %1373
  %1376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1374, ptr noundef nonnull @.str.1)
          to label %1377 unwind label %.loopexit.split-lp824

1377:                                             ; preds = %1375
  %1378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1376, ptr noundef nonnull @.str.2)
          to label %1379 unwind label %.loopexit.split-lp824

1379:                                             ; preds = %1377
  %1380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1378, i32 noundef 178)
          to label %1381 unwind label %.loopexit.split-lp824

1381:                                             ; preds = %1379
  %1382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1380, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1383 unwind label %.loopexit.split-lp824

1383:                                             ; preds = %1381
  %1384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1382, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1390 unwind label %.loopexit.split-lp824

1385:                                             ; preds = %1362
  %1386 = landingpad { ptr, i32 }
          cleanup
  br label %1389

1387:                                             ; preds = %1363
  %1388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #8
  br label %1389

1389:                                             ; preds = %1387, %1385
  %.pn317 = phi { ptr, i32 } [ %1388, %1387 ], [ %1386, %1385 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %110) #8
  br label %2005

1390:                                             ; preds = %1383, %1369
  %1391 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %111, i32 noundef 25)
          to label %1392 unwind label %.thread725

1392:                                             ; preds = %1390
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1391, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %111)
          to label %1394 unwind label %.thread729

.thread729:                                       ; preds = %1392
  %1393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %111) #8
  br label %1398

1394:                                             ; preds = %1392
  invoke void @__cxa_throw(ptr nonnull %1391, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1396

.thread725:                                       ; preds = %1390
  %1395 = landingpad { ptr, i32 }
          cleanup
  br label %1398

1396:                                             ; preds = %1394
  %1397 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %111) #8
  br label %2005

1398:                                             ; preds = %.thread729, %.thread725
  %.pn413728 = phi { ptr, i32 } [ %1395, %.thread725 ], [ %1393, %.thread729 ]
  call void @__cxa_free_exception(ptr %1391) #8
  br label %2005

1399:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %112) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %112, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1400 unwind label %1422

1400:                                             ; preds = %1399
  %1401 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %112)
          to label %1402 unwind label %1424

1402:                                             ; preds = %1400
  %1403 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1401)
  %.not322 = icmp eq i32 %1403, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %112) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %112) #8
  br i1 %.not322, label %1436, label %1404

1404:                                             ; preds = %1402
  %1405 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1406 unwind label %.loopexit.split-lp824

1406:                                             ; preds = %1404
  br i1 %1405, label %1407, label %1427

1407:                                             ; preds = %1406
  %1408 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1408, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1410 unwind label %.loopexit.split-lp824

1410:                                             ; preds = %1407
  %1411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1409, ptr noundef nonnull @.str)
          to label %1412 unwind label %.loopexit.split-lp824

1412:                                             ; preds = %1410
  %1413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1411, ptr noundef nonnull @.str.1)
          to label %1414 unwind label %.loopexit.split-lp824

1414:                                             ; preds = %1412
  %1415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1413, ptr noundef nonnull @.str.2)
          to label %1416 unwind label %.loopexit.split-lp824

1416:                                             ; preds = %1414
  %1417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1415, i32 noundef 179)
          to label %1418 unwind label %.loopexit.split-lp824

1418:                                             ; preds = %1416
  %1419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1417, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1420 unwind label %.loopexit.split-lp824

1420:                                             ; preds = %1418
  %1421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1419, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1427 unwind label %.loopexit.split-lp824

1422:                                             ; preds = %1399
  %1423 = landingpad { ptr, i32 }
          cleanup
  br label %1426

1424:                                             ; preds = %1400
  %1425 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %112) #8
  br label %1426

1426:                                             ; preds = %1424, %1422
  %.pn320 = phi { ptr, i32 } [ %1425, %1424 ], [ %1423, %1422 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %112) #8
  br label %2005

1427:                                             ; preds = %1420, %1406
  %1428 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %113, i32 noundef 14)
          to label %1429 unwind label %.thread731

1429:                                             ; preds = %1427
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1428, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %113)
          to label %1431 unwind label %.thread735

.thread735:                                       ; preds = %1429
  %1430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %113) #8
  br label %1435

1431:                                             ; preds = %1429
  invoke void @__cxa_throw(ptr nonnull %1428, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1433

.thread731:                                       ; preds = %1427
  %1432 = landingpad { ptr, i32 }
          cleanup
  br label %1435

1433:                                             ; preds = %1431
  %1434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %113) #8
  br label %2005

1435:                                             ; preds = %.thread735, %.thread731
  %.pn411734 = phi { ptr, i32 } [ %1432, %.thread731 ], [ %1430, %.thread735 ]
  call void @__cxa_free_exception(ptr %1428) #8
  br label %2005

1436:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %114) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %114, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1437 unwind label %1459

1437:                                             ; preds = %1436
  %1438 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %114)
          to label %1439 unwind label %1461

1439:                                             ; preds = %1437
  %1440 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1438)
  %.not325 = icmp eq i32 %1440, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %114) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %114) #8
  br i1 %.not325, label %1473, label %1441

1441:                                             ; preds = %1439
  %1442 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1443 unwind label %.loopexit.split-lp824

1443:                                             ; preds = %1441
  br i1 %1442, label %1444, label %1464

1444:                                             ; preds = %1443
  %1445 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1445, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1447 unwind label %.loopexit.split-lp824

1447:                                             ; preds = %1444
  %1448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1446, ptr noundef nonnull @.str)
          to label %1449 unwind label %.loopexit.split-lp824

1449:                                             ; preds = %1447
  %1450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1448, ptr noundef nonnull @.str.1)
          to label %1451 unwind label %.loopexit.split-lp824

1451:                                             ; preds = %1449
  %1452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1450, ptr noundef nonnull @.str.2)
          to label %1453 unwind label %.loopexit.split-lp824

1453:                                             ; preds = %1451
  %1454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1452, i32 noundef 180)
          to label %1455 unwind label %.loopexit.split-lp824

1455:                                             ; preds = %1453
  %1456 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1454, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1457 unwind label %.loopexit.split-lp824

1457:                                             ; preds = %1455
  %1458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1456, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1464 unwind label %.loopexit.split-lp824

1459:                                             ; preds = %1436
  %1460 = landingpad { ptr, i32 }
          cleanup
  br label %1463

1461:                                             ; preds = %1437
  %1462 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %114) #8
  br label %1463

1463:                                             ; preds = %1461, %1459
  %.pn323 = phi { ptr, i32 } [ %1462, %1461 ], [ %1460, %1459 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %114) #8
  br label %2005

1464:                                             ; preds = %1457, %1443
  %1465 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %115, i32 noundef 16)
          to label %1466 unwind label %.thread737

1466:                                             ; preds = %1464
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1465, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %115)
          to label %1468 unwind label %.thread741

.thread741:                                       ; preds = %1466
  %1467 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %115) #8
  br label %1472

1468:                                             ; preds = %1466
  invoke void @__cxa_throw(ptr nonnull %1465, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1470

.thread737:                                       ; preds = %1464
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1472

1470:                                             ; preds = %1468
  %1471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %115) #8
  br label %2005

1472:                                             ; preds = %.thread741, %.thread737
  %.pn409740 = phi { ptr, i32 } [ %1469, %.thread737 ], [ %1467, %.thread741 ]
  call void @__cxa_free_exception(ptr %1465) #8
  br label %2005

1473:                                             ; preds = %1439
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %116) #8
  %1474 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1475 unwind label %.loopexit828

1475:                                             ; preds = %1473
  %1476 = extractvalue { i64, i64 } %1474, 0
  store i64 %1476, ptr %116, align 8
  %1477 = extractvalue { i64, i64 } %1474, 1
  store i64 %1477, ptr %193, align 8
  %1478 = invoke noundef zeroext i1 @_ZNK4U128gtEj(ptr noundef nonnull align 8 dereferenceable(16) %116, i32 noundef -1)
          to label %1479 unwind label %.loopexit828

1479:                                             ; preds = %1475
  br i1 %1478, label %1480, label %1492

1480:                                             ; preds = %1479
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %117, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1481 unwind label %1485

1481:                                             ; preds = %1480
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 1 dereferenceable(1) %119) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %117, i32 noundef 0, ptr noundef nonnull %118)
          to label %1482 unwind label %1487

1482:                                             ; preds = %1481
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  %1483 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1483, ptr noundef nonnull @.str.5)
          to label %1484 unwind label %1490

1484:                                             ; preds = %1482
  invoke void @__cxa_throw(ptr nonnull %1483, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %.loopexit.split-lp829

.loopexit828:                                     ; preds = %1473, %1475
  %lpad.loopexit830 = landingpad { ptr, i32 }
          cleanup
  br label %2004

.loopexit.split-lp829:                            ; preds = %1484, %1498, %1501, %1504, %1506, %1508, %1510, %1512, %1514, %1535, %1538, %1541, %1543, %1545, %1547, %1549, %1551, %1572, %1575, %1578, %1580, %1582, %1584, %1586, %1588
  %lpad.loopexit.split-lp831 = landingpad { ptr, i32 }
          cleanup
  br label %2004

1485:                                             ; preds = %1480
  %1486 = landingpad { ptr, i32 }
          cleanup
  br label %1489

1487:                                             ; preds = %1481
  %1488 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #8
  br label %1489

1489:                                             ; preds = %1487, %1485
  %.pn405 = phi { ptr, i32 } [ %1488, %1487 ], [ %1486, %1485 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  br label %2004

1490:                                             ; preds = %1482
  %1491 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1483) #8
  br label %2004

1492:                                             ; preds = %1479
  %1493 = call noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %116)
  store i64 %1493, ptr %194, align 8, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %120) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %120, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1494 unwind label %1516

1494:                                             ; preds = %1492
  %1495 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %120)
          to label %1496 unwind label %1518

1496:                                             ; preds = %1494
  %1497 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1495)
  %.not328 = icmp eq i32 %1497, 31
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %120) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %120) #8
  br i1 %.not328, label %1530, label %1498

1498:                                             ; preds = %1496
  %1499 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1500 unwind label %.loopexit.split-lp829

1500:                                             ; preds = %1498
  br i1 %1499, label %1501, label %1521

1501:                                             ; preds = %1500
  %1502 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1502, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1504 unwind label %.loopexit.split-lp829

1504:                                             ; preds = %1501
  %1505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1503, ptr noundef nonnull @.str)
          to label %1506 unwind label %.loopexit.split-lp829

1506:                                             ; preds = %1504
  %1507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1505, ptr noundef nonnull @.str.1)
          to label %1508 unwind label %.loopexit.split-lp829

1508:                                             ; preds = %1506
  %1509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1507, ptr noundef nonnull @.str.2)
          to label %1510 unwind label %.loopexit.split-lp829

1510:                                             ; preds = %1508
  %1511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1509, i32 noundef 186)
          to label %1512 unwind label %.loopexit.split-lp829

1512:                                             ; preds = %1510
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1511, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1514 unwind label %.loopexit.split-lp829

1514:                                             ; preds = %1512
  %1515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1513, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1521 unwind label %.loopexit.split-lp829

1516:                                             ; preds = %1492
  %1517 = landingpad { ptr, i32 }
          cleanup
  br label %1520

1518:                                             ; preds = %1494
  %1519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %120) #8
  br label %1520

1520:                                             ; preds = %1518, %1516
  %.pn326 = phi { ptr, i32 } [ %1519, %1518 ], [ %1517, %1516 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %120) #8
  br label %2004

1521:                                             ; preds = %1514, %1500
  %1522 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %121, i32 noundef 31)
          to label %1523 unwind label %.thread743

1523:                                             ; preds = %1521
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1522, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %121)
          to label %1525 unwind label %.thread747

.thread747:                                       ; preds = %1523
  %1524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #8
  br label %1529

1525:                                             ; preds = %1523
  invoke void @__cxa_throw(ptr nonnull %1522, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1527

.thread743:                                       ; preds = %1521
  %1526 = landingpad { ptr, i32 }
          cleanup
  br label %1529

1527:                                             ; preds = %1525
  %1528 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #8
  br label %2004

1529:                                             ; preds = %.thread747, %.thread743
  %.pn403746 = phi { ptr, i32 } [ %1526, %.thread743 ], [ %1524, %.thread747 ]
  call void @__cxa_free_exception(ptr %1522) #8
  br label %2004

1530:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %122) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %122, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1531 unwind label %1553

1531:                                             ; preds = %1530
  %1532 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %122)
          to label %1533 unwind label %1555

1533:                                             ; preds = %1531
  %1534 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1532)
  %.not331 = icmp eq i32 %1534, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %122) #8
  br i1 %.not331, label %1567, label %1535

1535:                                             ; preds = %1533
  %1536 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1537 unwind label %.loopexit.split-lp829

1537:                                             ; preds = %1535
  br i1 %1536, label %1538, label %1558

1538:                                             ; preds = %1537
  %1539 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1539, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1541 unwind label %.loopexit.split-lp829

1541:                                             ; preds = %1538
  %1542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1540, ptr noundef nonnull @.str)
          to label %1543 unwind label %.loopexit.split-lp829

1543:                                             ; preds = %1541
  %1544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1542, ptr noundef nonnull @.str.1)
          to label %1545 unwind label %.loopexit.split-lp829

1545:                                             ; preds = %1543
  %1546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1544, ptr noundef nonnull @.str.2)
          to label %1547 unwind label %.loopexit.split-lp829

1547:                                             ; preds = %1545
  %1548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1546, i32 noundef 187)
          to label %1549 unwind label %.loopexit.split-lp829

1549:                                             ; preds = %1547
  %1550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1548, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1551 unwind label %.loopexit.split-lp829

1551:                                             ; preds = %1549
  %1552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1550, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1558 unwind label %.loopexit.split-lp829

1553:                                             ; preds = %1530
  %1554 = landingpad { ptr, i32 }
          cleanup
  br label %1557

1555:                                             ; preds = %1531
  %1556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #8
  br label %1557

1557:                                             ; preds = %1555, %1553
  %.pn329 = phi { ptr, i32 } [ %1556, %1555 ], [ %1554, %1553 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %122) #8
  br label %2004

1558:                                             ; preds = %1551, %1537
  %1559 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %123, i32 noundef 14)
          to label %1560 unwind label %.thread749

1560:                                             ; preds = %1558
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1559, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %123)
          to label %1562 unwind label %.thread753

.thread753:                                       ; preds = %1560
  %1561 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #8
  br label %1566

1562:                                             ; preds = %1560
  invoke void @__cxa_throw(ptr nonnull %1559, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1564

.thread749:                                       ; preds = %1558
  %1563 = landingpad { ptr, i32 }
          cleanup
  br label %1566

1564:                                             ; preds = %1562
  %1565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #8
  br label %2004

1566:                                             ; preds = %.thread753, %.thread749
  %.pn401752 = phi { ptr, i32 } [ %1563, %.thread749 ], [ %1561, %.thread753 ]
  call void @__cxa_free_exception(ptr %1559) #8
  br label %2004

1567:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %124) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %124, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1568 unwind label %1590

1568:                                             ; preds = %1567
  %1569 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %124)
          to label %1570 unwind label %1592

1570:                                             ; preds = %1568
  %1571 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1569)
  %.not334 = icmp eq i32 %1571, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %124) #8
  br i1 %.not334, label %1604, label %1572

1572:                                             ; preds = %1570
  %1573 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1574 unwind label %.loopexit.split-lp829

1574:                                             ; preds = %1572
  br i1 %1573, label %1575, label %1595

1575:                                             ; preds = %1574
  %1576 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1576, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1578 unwind label %.loopexit.split-lp829

1578:                                             ; preds = %1575
  %1579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1577, ptr noundef nonnull @.str)
          to label %1580 unwind label %.loopexit.split-lp829

1580:                                             ; preds = %1578
  %1581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1579, ptr noundef nonnull @.str.1)
          to label %1582 unwind label %.loopexit.split-lp829

1582:                                             ; preds = %1580
  %1583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1581, ptr noundef nonnull @.str.2)
          to label %1584 unwind label %.loopexit.split-lp829

1584:                                             ; preds = %1582
  %1585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1583, i32 noundef 188)
          to label %1586 unwind label %.loopexit.split-lp829

1586:                                             ; preds = %1584
  %1587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1585, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1588 unwind label %.loopexit.split-lp829

1588:                                             ; preds = %1586
  %1589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1587, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1595 unwind label %.loopexit.split-lp829

1590:                                             ; preds = %1567
  %1591 = landingpad { ptr, i32 }
          cleanup
  br label %1594

1592:                                             ; preds = %1568
  %1593 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #8
  br label %1594

1594:                                             ; preds = %1592, %1590
  %.pn332 = phi { ptr, i32 } [ %1593, %1592 ], [ %1591, %1590 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %124) #8
  br label %2004

1595:                                             ; preds = %1588, %1574
  %1596 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %125, i32 noundef 16)
          to label %1597 unwind label %.thread755

1597:                                             ; preds = %1595
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1596, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %125)
          to label %1599 unwind label %.thread759

.thread759:                                       ; preds = %1597
  %1598 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #8
  br label %1603

1599:                                             ; preds = %1597
  invoke void @__cxa_throw(ptr nonnull %1596, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1601

.thread755:                                       ; preds = %1595
  %1600 = landingpad { ptr, i32 }
          cleanup
  br label %1603

1601:                                             ; preds = %1599
  %1602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #8
  br label %2004

1603:                                             ; preds = %.thread759, %.thread755
  %.pn399758 = phi { ptr, i32 } [ %1600, %.thread755 ], [ %1598, %.thread759 ]
  call void @__cxa_free_exception(ptr %1596) #8
  br label %2004

1604:                                             ; preds = %1570
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #8
  %1605 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1606 unwind label %.loopexit.split-lp805.loopexit

1606:                                             ; preds = %1604
  %1607 = extractvalue { i64, i64 } %1605, 0
  store i64 %1607, ptr %126, align 8
  %1608 = extractvalue { i64, i64 } %1605, 1
  store i64 %1608, ptr %195, align 8
  %1609 = invoke noundef zeroext i1 @_ZNK4U128leEj(ptr noundef nonnull align 8 dereferenceable(16) %126, i32 noundef -1)
          to label %1610 unwind label %.loopexit.split-lp805.loopexit

1610:                                             ; preds = %1606
  br i1 %1609, label %1623, label %1611

1611:                                             ; preds = %1610
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %127) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %127, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1612 unwind label %1616

1612:                                             ; preds = %1611
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 1 dereferenceable(1) %129) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %127, i32 noundef 0, ptr noundef nonnull %128)
          to label %1613 unwind label %1618

1613:                                             ; preds = %1612
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #8
  %1614 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1614, ptr noundef nonnull @.str.5)
          to label %1615 unwind label %1621

1615:                                             ; preds = %1613
  invoke void @__cxa_throw(ptr nonnull %1614, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %.loopexit.split-lp805.loopexit.split-lp

.loopexit804:                                     ; preds = %.preheader803
  %lpad.loopexit806 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp805

.loopexit.split-lp805.loopexit:                   ; preds = %1919, %1866, %1806, %1606, %1604
  %lpad.loopexit833 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp805

.loopexit.split-lp805.loopexit.split-lp:          ; preds = %1847, %1845, %1843, %1841, %1839, %1837, %1834, %1831, %1685, %1683, %1681, %1679, %1677, %1675, %1672, %1669, %1645, %1643, %1641, %1639, %1637, %1635, %1632, %1629, %1615
  %lpad.loopexit.split-lp834 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp805

1616:                                             ; preds = %1611
  %1617 = landingpad { ptr, i32 }
          cleanup
  br label %1620

1618:                                             ; preds = %1612
  %1619 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  br label %1620

1620:                                             ; preds = %1618, %1616
  %.pn335 = phi { ptr, i32 } [ %1619, %1618 ], [ %1617, %1616 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #8
  br label %.loopexit.split-lp805

1621:                                             ; preds = %1613
  %1622 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1614) #8
  br label %.loopexit.split-lp805

1623:                                             ; preds = %1610
  %1624 = call noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %116)
  store i64 %1624, ptr %99, align 8, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %130) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %130, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1625 unwind label %1647

1625:                                             ; preds = %1623
  %1626 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %130)
          to label %1627 unwind label %1649

1627:                                             ; preds = %1625
  %1628 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1626)
  %.not339 = icmp eq i32 %1628, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %130) #8
  br i1 %.not339, label %.preheader803, label %1629

1629:                                             ; preds = %1627
  %1630 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1631 unwind label %.loopexit.split-lp805.loopexit.split-lp

1631:                                             ; preds = %1629
  br i1 %1630, label %1632, label %1652

1632:                                             ; preds = %1631
  %1633 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1633, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1635 unwind label %.loopexit.split-lp805.loopexit.split-lp

1635:                                             ; preds = %1632
  %1636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1634, ptr noundef nonnull @.str)
          to label %1637 unwind label %.loopexit.split-lp805.loopexit.split-lp

1637:                                             ; preds = %1635
  %1638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1636, ptr noundef nonnull @.str.1)
          to label %1639 unwind label %.loopexit.split-lp805.loopexit.split-lp

1639:                                             ; preds = %1637
  %1640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1638, ptr noundef nonnull @.str.2)
          to label %1641 unwind label %.loopexit.split-lp805.loopexit.split-lp

1641:                                             ; preds = %1639
  %1642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1640, i32 noundef 194)
          to label %1643 unwind label %.loopexit.split-lp805.loopexit.split-lp

1643:                                             ; preds = %1641
  %1644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1642, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1645 unwind label %.loopexit.split-lp805.loopexit.split-lp

1645:                                             ; preds = %1643
  %1646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1644, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1652 unwind label %.loopexit.split-lp805.loopexit.split-lp

1647:                                             ; preds = %1623
  %1648 = landingpad { ptr, i32 }
          cleanup
  br label %1651

1649:                                             ; preds = %1625
  %1650 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #8
  br label %1651

1651:                                             ; preds = %1649, %1647
  %.pn337 = phi { ptr, i32 } [ %1650, %1649 ], [ %1648, %1647 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %130) #8
  br label %.loopexit.split-lp805

1652:                                             ; preds = %1645, %1631
  %1653 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %131, i32 noundef 32)
          to label %1654 unwind label %.thread761

1654:                                             ; preds = %1652
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1653, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %131)
          to label %1656 unwind label %.thread765

.thread765:                                       ; preds = %1654
  %1655 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %131) #8
  br label %1660

1656:                                             ; preds = %1654
  invoke void @__cxa_throw(ptr nonnull %1653, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1658

.thread761:                                       ; preds = %1652
  %1657 = landingpad { ptr, i32 }
          cleanup
  br label %1660

1658:                                             ; preds = %1656
  %1659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %131) #8
  br label %.loopexit.split-lp805

1660:                                             ; preds = %.thread765, %.thread761
  %.pn396764 = phi { ptr, i32 } [ %1657, %.thread761 ], [ %1655, %.thread765 ]
  call void @__cxa_free_exception(ptr %1653) #8
  br label %.loopexit.split-lp805

.preheader803:                                    ; preds = %1627, %1800
  %1661 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 0)
          to label %1662 unwind label %.loopexit804

1662:                                             ; preds = %.preheader803
  %1663 = icmp eq i32 %1661, 16
  br i1 %1663, label %1664, label %1806

1664:                                             ; preds = %1662
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %132) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %132, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1665 unwind label %1687

1665:                                             ; preds = %1664
  %1666 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %132)
          to label %1667 unwind label %1689

1667:                                             ; preds = %1665
  %1668 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1666)
  %.not377 = icmp eq i32 %1668, 16
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %132) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %132) #8
  br i1 %.not377, label %1701, label %1669

1669:                                             ; preds = %1667
  %1670 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1671 unwind label %.loopexit.split-lp805.loopexit.split-lp

1671:                                             ; preds = %1669
  br i1 %1670, label %1672, label %1692

1672:                                             ; preds = %1671
  %1673 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1674 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1673, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1675 unwind label %.loopexit.split-lp805.loopexit.split-lp

1675:                                             ; preds = %1672
  %1676 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1674, ptr noundef nonnull @.str)
          to label %1677 unwind label %.loopexit.split-lp805.loopexit.split-lp

1677:                                             ; preds = %1675
  %1678 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1676, ptr noundef nonnull @.str.1)
          to label %1679 unwind label %.loopexit.split-lp805.loopexit.split-lp

1679:                                             ; preds = %1677
  %1680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1678, ptr noundef nonnull @.str.2)
          to label %1681 unwind label %.loopexit.split-lp805.loopexit.split-lp

1681:                                             ; preds = %1679
  %1682 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1680, i32 noundef 201)
          to label %1683 unwind label %.loopexit.split-lp805.loopexit.split-lp

1683:                                             ; preds = %1681
  %1684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1682, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1685 unwind label %.loopexit.split-lp805.loopexit.split-lp

1685:                                             ; preds = %1683
  %1686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1684, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1692 unwind label %.loopexit.split-lp805.loopexit.split-lp

1687:                                             ; preds = %1664
  %1688 = landingpad { ptr, i32 }
          cleanup
  br label %1691

1689:                                             ; preds = %1665
  %1690 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %132) #8
  br label %1691

1691:                                             ; preds = %1689, %1687
  %.pn375 = phi { ptr, i32 } [ %1690, %1689 ], [ %1688, %1687 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %132) #8
  br label %.loopexit.split-lp805

1692:                                             ; preds = %1685, %1671
  %1693 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %133, i32 noundef 16)
          to label %1694 unwind label %.thread767

1694:                                             ; preds = %1692
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1693, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %133)
          to label %1696 unwind label %.thread771

.thread771:                                       ; preds = %1694
  %1695 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %133) #8
  br label %1700

1696:                                             ; preds = %1694
  invoke void @__cxa_throw(ptr nonnull %1693, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1698

.thread767:                                       ; preds = %1692
  %1697 = landingpad { ptr, i32 }
          cleanup
  br label %1700

1698:                                             ; preds = %1696
  %1699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %133) #8
  br label %.loopexit.split-lp805

1700:                                             ; preds = %.thread771, %.thread767
  %.pn394770 = phi { ptr, i32 } [ %1697, %.thread767 ], [ %1695, %.thread771 ]
  call void @__cxa_free_exception(ptr %1693) #8
  br label %.loopexit.split-lp805

1701:                                             ; preds = %1667
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %134) #8
  %1702 = invoke { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %1703 unwind label %.loopexit809

1703:                                             ; preds = %1701
  %1704 = extractvalue { i64, i64 } %1702, 0
  store i64 %1704, ptr %134, align 8
  %1705 = extractvalue { i64, i64 } %1702, 1
  store i64 %1705, ptr %196, align 8
  %1706 = call noundef zeroext i1 @_ZNK4U128gtERKS_(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull align 8 dereferenceable(16) %116)
  br i1 %1706, label %1707, label %1719

1707:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %135, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1708 unwind label %1712

1708:                                             ; preds = %1707
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %137) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 1 dereferenceable(1) %137) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %135, i32 noundef 0, ptr noundef nonnull %136)
          to label %1709 unwind label %1714

1709:                                             ; preds = %1708
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #8
  %1710 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1710, ptr noundef nonnull @.str.5)
          to label %1711 unwind label %1717

1711:                                             ; preds = %1709
  invoke void @__cxa_throw(ptr nonnull %1710, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %.loopexit.split-lp810

.loopexit809:                                     ; preds = %1701
  %lpad.loopexit811 = landingpad { ptr, i32 }
          cleanup
  br label %1805

.loopexit.split-lp810:                            ; preds = %1711, %1724, %1727, %1730, %1732, %1734, %1736, %1738, %1740
  %lpad.loopexit.split-lp812 = landingpad { ptr, i32 }
          cleanup
  br label %1805

1712:                                             ; preds = %1707
  %1713 = landingpad { ptr, i32 }
          cleanup
  br label %1716

1714:                                             ; preds = %1708
  %1715 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #8
  br label %1716

1716:                                             ; preds = %1714, %1712
  %.pn390 = phi { ptr, i32 } [ %1715, %1714 ], [ %1713, %1712 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #8
  br label %1805

1717:                                             ; preds = %1709
  %1718 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1710) #8
  br label %1805

1719:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %138) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %138, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1720 unwind label %1742

1720:                                             ; preds = %1719
  %1721 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %138)
          to label %1722 unwind label %1744

1722:                                             ; preds = %1720
  %1723 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1721)
  %.not380 = icmp eq i32 %1723, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %138) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %138) #8
  br i1 %.not380, label %1756, label %1724

1724:                                             ; preds = %1722
  %1725 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1726 unwind label %.loopexit.split-lp810

1726:                                             ; preds = %1724
  br i1 %1725, label %1727, label %1747

1727:                                             ; preds = %1726
  %1728 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1729 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1728, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1730 unwind label %.loopexit.split-lp810

1730:                                             ; preds = %1727
  %1731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1729, ptr noundef nonnull @.str)
          to label %1732 unwind label %.loopexit.split-lp810

1732:                                             ; preds = %1730
  %1733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1731, ptr noundef nonnull @.str.1)
          to label %1734 unwind label %.loopexit.split-lp810

1734:                                             ; preds = %1732
  %1735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1733, ptr noundef nonnull @.str.2)
          to label %1736 unwind label %.loopexit.split-lp810

1736:                                             ; preds = %1734
  %1737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1735, i32 noundef 206)
          to label %1738 unwind label %.loopexit.split-lp810

1738:                                             ; preds = %1736
  %1739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1737, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1740 unwind label %.loopexit.split-lp810

1740:                                             ; preds = %1738
  %1741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1739, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1747 unwind label %.loopexit.split-lp810

1742:                                             ; preds = %1719
  %1743 = landingpad { ptr, i32 }
          cleanup
  br label %1746

1744:                                             ; preds = %1720
  %1745 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %138) #8
  br label %1746

1746:                                             ; preds = %1744, %1742
  %.pn378 = phi { ptr, i32 } [ %1745, %1744 ], [ %1743, %1742 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %138) #8
  br label %1805

1747:                                             ; preds = %1740, %1726
  %1748 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %139, i32 noundef 50)
          to label %1749 unwind label %.thread773

1749:                                             ; preds = %1747
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1748, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %139)
          to label %1751 unwind label %.thread777

.thread777:                                       ; preds = %1749
  %1750 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #8
  br label %1755

1751:                                             ; preds = %1749
  invoke void @__cxa_throw(ptr nonnull %1748, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1753

.thread773:                                       ; preds = %1747
  %1752 = landingpad { ptr, i32 }
          cleanup
  br label %1755

1753:                                             ; preds = %1751
  %1754 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #8
  br label %1805

1755:                                             ; preds = %.thread777, %.thread773
  %.pn388776 = phi { ptr, i32 } [ %1752, %.thread773 ], [ %1750, %.thread777 ]
  call void @__cxa_free_exception(ptr %1748) #8
  br label %1805

1756:                                             ; preds = %1722
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #8
  invoke void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %140, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1757 unwind label %1780

1757:                                             ; preds = %1756
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %141) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %141, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1758 unwind label %1782

1758:                                             ; preds = %1757
  %1759 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %141)
          to label %1760 unwind label %1784

1760:                                             ; preds = %1758
  %1761 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1759)
  %.not383 = icmp eq i32 %1761, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %141) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %141) #8
  br i1 %.not383, label %1798, label %1762

1762:                                             ; preds = %1760
  %1763 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1764 unwind label %1787

1764:                                             ; preds = %1762
  br i1 %1763, label %1765, label %1789

1765:                                             ; preds = %1764
  %1766 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1766, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1768 unwind label %1787

1768:                                             ; preds = %1765
  %1769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1767, ptr noundef nonnull @.str)
          to label %1770 unwind label %1787

1770:                                             ; preds = %1768
  %1771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1769, ptr noundef nonnull @.str.1)
          to label %1772 unwind label %1787

1772:                                             ; preds = %1770
  %1773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1771, ptr noundef nonnull @.str.2)
          to label %1774 unwind label %1787

1774:                                             ; preds = %1772
  %1775 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1773, i32 noundef 208)
          to label %1776 unwind label %1787

1776:                                             ; preds = %1774
  %1777 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1775, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1778 unwind label %1787

1778:                                             ; preds = %1776
  %1779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1777, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1789 unwind label %1787

1780:                                             ; preds = %1756
  %1781 = landingpad { ptr, i32 }
          cleanup
  br label %1804

1782:                                             ; preds = %1757
  %1783 = landingpad { ptr, i32 }
          cleanup
  br label %1786

1784:                                             ; preds = %1758
  %1785 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %141) #8
  br label %1786

1786:                                             ; preds = %1784, %1782
  %.pn381 = phi { ptr, i32 } [ %1785, %1784 ], [ %1783, %1782 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %141) #8
  br label %1803

1787:                                             ; preds = %1778, %1776, %1774, %1772, %1770, %1768, %1765, %1762
  %1788 = landingpad { ptr, i32 }
          cleanup
  br label %1803

1789:                                             ; preds = %1778, %1764
  %1790 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %142, i32 noundef 32)
          to label %1791 unwind label %.thread779

1791:                                             ; preds = %1789
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1790, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %142)
          to label %1793 unwind label %.thread783

.thread783:                                       ; preds = %1791
  %1792 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %142) #8
  br label %1797

1793:                                             ; preds = %1791
  invoke void @__cxa_throw(ptr nonnull %1790, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1795

.thread779:                                       ; preds = %1789
  %1794 = landingpad { ptr, i32 }
          cleanup
  br label %1797

1795:                                             ; preds = %1793
  %1796 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %142) #8
  br label %1803

1797:                                             ; preds = %.thread783, %.thread779
  %.pn384782 = phi { ptr, i32 } [ %1794, %.thread779 ], [ %1792, %.thread783 ]
  call void @__cxa_free_exception(ptr %1790) #8
  br label %1803

1798:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %143) #8
  %1799 = call noundef i64 @_ZNK4U12812truncate_u64Ev(ptr noundef nonnull align 8 dereferenceable(16) %134)
  store i64 %1799, ptr %143, align 8, !tbaa !73
  call void @_ZN3HIR7TypeRefC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %198, ptr noundef nonnull align 8 dereferenceable(8) %140)
  invoke void @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %197, ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %1800 unwind label %1801

1800:                                             ; preds = %1798
  call void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #8
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %134) #8
  br label %.preheader803, !llvm.loop !75

1801:                                             ; preds = %1798
  %1802 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #8
  br label %1803

1803:                                             ; preds = %1795, %1797, %1801, %1787, %1786
  %.pn384.pn = phi { ptr, i32 } [ %.pn384782, %1797 ], [ %1796, %1795 ], [ %1788, %1787 ], [ %1802, %1801 ], [ %.pn381, %1786 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #8
  br label %1804

1804:                                             ; preds = %1803, %1780
  %.pn384.pn.pn = phi { ptr, i32 } [ %.pn384.pn, %1803 ], [ %1781, %1780 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #8
  br label %1805

1805:                                             ; preds = %.loopexit809, %.loopexit.split-lp810, %1753, %1755, %1804, %1746, %1717, %1716
  %.pn392 = phi { ptr, i32 } [ %1718, %1717 ], [ %.pn390, %1716 ], [ %.pn388776, %1755 ], [ %1754, %1753 ], [ %.pn384.pn.pn, %1804 ], [ %.pn378, %1746 ], [ %lpad.loopexit811, %.loopexit809 ], [ %lpad.loopexit.split-lp812, %.loopexit.split-lp810 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %134) #8
  br label %.loopexit.split-lp805

1806:                                             ; preds = %1662
  %1807 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %6, i32 noundef 0)
          to label %1808 unwind label %.loopexit.split-lp805.loopexit

1808:                                             ; preds = %1806
  %1809 = icmp eq i32 %1807, 70
  br i1 %1809, label %1810, label %1826

1810:                                             ; preds = %1808
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %144, align 8, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %145) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %145, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1811 unwind label %1816

1811:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %147) #8
  store ptr %144, ptr %147, align 8, !tbaa !76
  %1812 = getelementptr inbounds i8, ptr %147, i64 8
  store ptr %102, ptr %1812, align 8, !tbaa !76
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(16) %147) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull %146)
          to label %1813 unwind label %1818

1813:                                             ; preds = %1811
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %147) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #8
  %1814 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1814, ptr noundef nonnull @.str.6)
          to label %1815 unwind label %1821

1815:                                             ; preds = %1813
  invoke void @__cxa_throw(ptr nonnull %1814, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %1823

1816:                                             ; preds = %1810
  %1817 = landingpad { ptr, i32 }
          cleanup
  br label %1820

1818:                                             ; preds = %1811
  %1819 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %147) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #8
  br label %1820

1820:                                             ; preds = %1818, %1816
  %.pn371 = phi { ptr, i32 } [ %1819, %1818 ], [ %1817, %1816 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #8
  br label %1825

1821:                                             ; preds = %1813
  %1822 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1814) #8
  br label %1825

1823:                                             ; preds = %1815
  %1824 = landingpad { ptr, i32 }
          cleanup
  br label %1825

1825:                                             ; preds = %1823, %1821, %1820
  %.pn373 = phi { ptr, i32 } [ %1824, %1823 ], [ %1822, %1821 ], [ %.pn371, %1820 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #8
  br label %.loopexit.split-lp805

1826:                                             ; preds = %1808
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %148) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %148, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1827 unwind label %1849

1827:                                             ; preds = %1826
  %1828 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %148)
          to label %1829 unwind label %1851

1829:                                             ; preds = %1827
  %1830 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1828)
  %.not342 = icmp eq i32 %1830, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %148) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %148) #8
  br i1 %.not342, label %1863, label %1831

1831:                                             ; preds = %1829
  %1832 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1833 unwind label %.loopexit.split-lp805.loopexit.split-lp

1833:                                             ; preds = %1831
  br i1 %1832, label %1834, label %1854

1834:                                             ; preds = %1833
  %1835 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1835, ptr noundef nonnull @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE)
          to label %1837 unwind label %.loopexit.split-lp805.loopexit.split-lp

1837:                                             ; preds = %1834
  %1838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1836, ptr noundef nonnull @.str)
          to label %1839 unwind label %.loopexit.split-lp805.loopexit.split-lp

1839:                                             ; preds = %1837
  %1840 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1838, ptr noundef nonnull @.str.1)
          to label %1841 unwind label %.loopexit.split-lp805.loopexit.split-lp

1841:                                             ; preds = %1839
  %1842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1840, ptr noundef nonnull @.str.2)
          to label %1843 unwind label %.loopexit.split-lp805.loopexit.split-lp

1843:                                             ; preds = %1841
  %1844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1842, i32 noundef 215)
          to label %1845 unwind label %.loopexit.split-lp805.loopexit.split-lp

1845:                                             ; preds = %1843
  %1846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1844, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1847 unwind label %.loopexit.split-lp805.loopexit.split-lp

1847:                                             ; preds = %1845
  %1848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1846, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1854 unwind label %.loopexit.split-lp805.loopexit.split-lp

1849:                                             ; preds = %1826
  %1850 = landingpad { ptr, i32 }
          cleanup
  br label %1853

1851:                                             ; preds = %1827
  %1852 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %148) #8
  br label %1853

1853:                                             ; preds = %1851, %1849
  %.pn340 = phi { ptr, i32 } [ %1852, %1851 ], [ %1850, %1849 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %148) #8
  br label %.loopexit.split-lp805

1854:                                             ; preds = %1847, %1833
  %1855 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %149, i32 noundef 26)
          to label %1856 unwind label %.thread785

1856:                                             ; preds = %1854
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1855, ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull %149)
          to label %1858 unwind label %.thread789

.thread789:                                       ; preds = %1856
  %1857 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %149) #8
  br label %1862

1858:                                             ; preds = %1856
  invoke void @__cxa_throw(ptr nonnull %1855, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %2040 unwind label %1860

.thread785:                                       ; preds = %1854
  %1859 = landingpad { ptr, i32 }
          cleanup
  br label %1862

1860:                                             ; preds = %1858
  %1861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %149) #8
  br label %.loopexit.split-lp805

1862:                                             ; preds = %.thread789, %.thread785
  %.pn369788 = phi { ptr, i32 } [ %1859, %.thread785 ], [ %1857, %.thread789 ]
  call void @__cxa_free_exception(ptr %1855) #8
  br label %.loopexit.split-lp805

1863:                                             ; preds = %1829
  %1864 = call noundef i64 @_ZNKSt6vectorIN8TypeRepr5FieldESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  %1865 = icmp ult i64 %1864, 2
  br i1 %1865, label %1871, label %1866

1866:                                             ; preds = %1863
  %1867 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  %1868 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  %1869 = invoke noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_8EbT_SF_T0_"(ptr %1867, ptr %1868, ptr nonnull %99)
          to label %1870 unwind label %.loopexit.split-lp805.loopexit

1870:                                             ; preds = %1866
  br i1 %1869, label %1871, label %1919

1871:                                             ; preds = %1870, %1863
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %150) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %151) #8
  %1872 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  store ptr %1872, ptr %151, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %152) #8
  %1873 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  store ptr %1873, ptr %152, align 8
  %1874 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 8 dereferenceable(8) %152) #8
  br i1 %1874, label %.lr.ph853, label %._crit_edge854

._crit_edge854:                                   ; preds = %1879, %1871
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #8
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %154) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %155, i8 0, i64 96, i1 false)
  call void @_ZN3HIR13GenericParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %155) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(24) %157, ptr noundef nonnull align 8 dereferenceable(24) %150) #8
  invoke void @_ZN3HIR6Struct4DataC2ESt6vectorINS_6VisEntINS_7TypeRefEEESaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull %157)
          to label %1889 unwind label %1899

.lr.ph853:                                        ; preds = %1871, %1879
  %1875 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %151) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %153) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %153)
          to label %1876 unwind label %1882

1876:                                             ; preds = %.lr.ph853
  %1877 = getelementptr inbounds i8, ptr %1875, i64 8
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %204, ptr noundef nonnull align 8 dereferenceable(8) %1877)
          to label %1878 unwind label %1884

1878:                                             ; preds = %1876
  invoke void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %150, ptr noundef nonnull align 8 dereferenceable(24) %153)
          to label %1879 unwind label %1886

1879:                                             ; preds = %1878
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #8
  %1880 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %151) #8
  %1881 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 8 dereferenceable(8) %152) #8
  br i1 %1881, label %.lr.ph853, label %._crit_edge854

1882:                                             ; preds = %.lr.ph853
  %1883 = landingpad { ptr, i32 }
          cleanup
  br label %1888

1884:                                             ; preds = %1876
  %1885 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #8
  br label %1888

1886:                                             ; preds = %1878
  %1887 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #8
  br label %1888

1888:                                             ; preds = %1886, %1884, %1882
  %.pn366 = phi { ptr, i32 } [ %1887, %1886 ], [ %1885, %1884 ], [ %1883, %1882 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #8
  br label %1918

1889:                                             ; preds = %._crit_edge854
  invoke void @_ZN3HIR6StructC2ENS_13GenericParamsENS0_4ReprENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(252) %154, ptr noundef nonnull %155, i32 noundef 1, ptr noundef nonnull %156)
          to label %1890 unwind label %1901

1890:                                             ; preds = %1889
  call void @_ZN3HIR6Struct4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %157) #8
  call void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %155) #8
  store i8 1, ptr %205, align 2, !tbaa !77
  call void @llvm.lifetime.start.p0(i64 424, ptr nonnull %158) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %158)
          to label %1891 unwind label %1904

1891:                                             ; preds = %1890
  call void @_ZN3HIR6StructC2EOS0_(ptr noundef nonnull align 8 dereferenceable(252) %159, ptr noundef nonnull align 8 dereferenceable(252) %154) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(408) %206, ptr noundef nonnull %159)
          to label %1892 unwind label %1906

1892:                                             ; preds = %1891
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %159) #8
  %1893 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %1894 = getelementptr inbounds i8, ptr %1893, i64 96
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %160) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %161) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.377") align 8 %161, ptr noundef nonnull align 8 dereferenceable(424) %158)
          to label %1895 unwind label %1908

1895:                                             ; preds = %1892
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.375") align 8 %160, ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %1896 unwind label %1910

1896:                                             ; preds = %1895
  %1897 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1894, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %1898 unwind label %1912

1898:                                             ; preds = %1896
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %158) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %158) #8
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %154) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %154) #8
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %150) #8
  br label %2002

1899:                                             ; preds = %._crit_edge854
  %1900 = landingpad { ptr, i32 }
          cleanup
  br label %1903

1901:                                             ; preds = %1889
  %1902 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR6Struct4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  br label %1903

1903:                                             ; preds = %1901, %1899
  %.pn359 = phi { ptr, i32 } [ %1902, %1901 ], [ %1900, %1899 ]
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %157) #8
  call void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %155) #8
  br label %1917

1904:                                             ; preds = %1890
  %1905 = landingpad { ptr, i32 }
          cleanup
  br label %1916

1906:                                             ; preds = %1891
  %1907 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %159) #8
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #8
  br label %1916

1908:                                             ; preds = %1892
  %1909 = landingpad { ptr, i32 }
          cleanup
  br label %1915

1910:                                             ; preds = %1895
  %1911 = landingpad { ptr, i32 }
          cleanup
  br label %1914

1912:                                             ; preds = %1896
  %1913 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #8
  br label %1914

1914:                                             ; preds = %1912, %1910
  %.pn361 = phi { ptr, i32 } [ %1913, %1912 ], [ %1911, %1910 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #8
  br label %1915

1915:                                             ; preds = %1914, %1908
  %.pn361.pn = phi { ptr, i32 } [ %.pn361, %1914 ], [ %1909, %1908 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %158) #8
  br label %1916

1916:                                             ; preds = %1906, %1915, %1904
  %.pn361.pn.pn = phi { ptr, i32 } [ %.pn361.pn, %1915 ], [ %1907, %1906 ], [ %1905, %1904 ]
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %158) #8
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %154) #8
  br label %1917

1917:                                             ; preds = %1916, %1903
  %.pn361.pn.pn.pn = phi { ptr, i32 } [ %.pn361.pn.pn, %1916 ], [ %.pn359, %1903 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %154) #8
  br label %1918

1918:                                             ; preds = %1917, %1888
  %.pn366.pn = phi { ptr, i32 } [ %.pn366, %1888 ], [ %.pn361.pn.pn.pn, %1917 ]
  call void @_ZNSt6vectorIN3HIR6VisEntINS0_7TypeRefEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %150) #8
  br label %.loopexit.split-lp805

1919:                                             ; preds = %1870
  %1920 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  %1921 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  %1922 = invoke noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_9EbT_SF_T0_"(ptr %1920, ptr %1921, ptr nonnull %99)
          to label %1923 unwind label %.loopexit.split-lp805.loopexit

1923:                                             ; preds = %1919
  br i1 %1922, label %1924, label %1986

1924:                                             ; preds = %1923
  %1925 = call noundef zeroext i1 @_ZNK8TypeRepr11VariantMode7is_NoneEv(ptr noundef nonnull align 8 dereferenceable(72) %199)
  br i1 %1925, label %1926, label %1970

1926:                                             ; preds = %1924
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %162) #8
  call void @_ZN3HIR5UnionC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %162) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %163) #8
  %1927 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  store ptr %1927, ptr %163, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %164) #8
  %1928 = call ptr @_ZNSt6vectorIN8TypeRepr5FieldESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #8
  store ptr %1928, ptr %164, align 8
  %1929 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %164) #8
  br i1 %1929, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %1935, %1926
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #8
  store i8 1, ptr %202, align 2, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 424, ptr nonnull %168) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %168)
          to label %1948 unwind label %1956

.lr.ph:                                           ; preds = %1926, %1935
  %1930 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %166) #8
  call void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %167) #8
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %167)
          to label %1931 unwind label %1938

1931:                                             ; preds = %.lr.ph
  %1932 = getelementptr inbounds i8, ptr %1930, i64 8
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %201, ptr noundef nonnull align 8 dereferenceable(8) %1932)
          to label %1933 unwind label %1940

1933:                                             ; preds = %1931
  invoke void @_ZSt9make_pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.396") align 8 %165, ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(24) %167)
          to label %1934 unwind label %1942

1934:                                             ; preds = %1933
  invoke void @_ZNSt6vectorISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %200, ptr noundef nonnull align 8 dereferenceable(32) %165)
          to label %1935 unwind label %1944

1935:                                             ; preds = %1934
  call void @_ZNSt4pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %167) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  %1936 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #8
  %1937 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN8TypeRepr5FieldESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %164) #8
  br i1 %1937, label %.lr.ph, label %._crit_edge

1938:                                             ; preds = %.lr.ph
  %1939 = landingpad { ptr, i32 }
          cleanup
  br label %1947

1940:                                             ; preds = %1931
  %1941 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167) #8
  br label %1947

1942:                                             ; preds = %1933
  %1943 = landingpad { ptr, i32 }
          cleanup
  br label %1946

1944:                                             ; preds = %1934
  %1945 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  br label %1946

1946:                                             ; preds = %1944, %1942
  %.pn355 = phi { ptr, i32 } [ %1945, %1944 ], [ %1943, %1942 ]
  call void @_ZN3HIR6VisEntINS_7TypeRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  br label %1947

1947:                                             ; preds = %1946, %1940, %1938
  %.pn355.pn = phi { ptr, i32 } [ %.pn355, %1946 ], [ %1941, %1940 ], [ %1939, %1938 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %167) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #8
  br label %1969

1948:                                             ; preds = %._crit_edge
  call void @_ZN3HIR5UnionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(184) %169, ptr noundef nonnull align 8 dereferenceable(184) %162) #8
  invoke void @_ZN3HIR8TypeItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(408) %203, ptr noundef nonnull %169)
          to label %1949 unwind label %1958

1949:                                             ; preds = %1948
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %169) #8
  %1950 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %1951 = getelementptr inbounds i8, ptr %1950, i64 96
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %170) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %171) #8
  invoke void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.377") align 8 %171, ptr noundef nonnull align 8 dereferenceable(424) %168)
          to label %1952 unwind label %1960

1952:                                             ; preds = %1949
  invoke void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.375") align 8 %170, ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %171)
          to label %1953 unwind label %1962

1953:                                             ; preds = %1952
  %1954 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1951, ptr noundef nonnull align 8 dereferenceable(16) %170)
          to label %1955 unwind label %1964

1955:                                             ; preds = %1953
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #8
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %170) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %168) #8
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %168) #8
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %162) #8
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %162) #8
  br label %2002

1956:                                             ; preds = %._crit_edge
  %1957 = landingpad { ptr, i32 }
          cleanup
  br label %1968

1958:                                             ; preds = %1948
  %1959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %169) #8
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #8
  br label %1968

1960:                                             ; preds = %1949
  %1961 = landingpad { ptr, i32 }
          cleanup
  br label %1967

1962:                                             ; preds = %1952
  %1963 = landingpad { ptr, i32 }
          cleanup
  br label %1966

1964:                                             ; preds = %1953
  %1965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #8
  br label %1966

1966:                                             ; preds = %1964, %1962
  %.pn351 = phi { ptr, i32 } [ %1965, %1964 ], [ %1963, %1962 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #8
  br label %1967

1967:                                             ; preds = %1966, %1960
  %.pn351.pn = phi { ptr, i32 } [ %.pn351, %1966 ], [ %1961, %1960 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %170) #8
  call void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424) %168) #8
  br label %1968

1968:                                             ; preds = %1958, %1967, %1956
  %.pn351.pn.pn = phi { ptr, i32 } [ %.pn351.pn, %1967 ], [ %1959, %1958 ], [ %1957, %1956 ]
  call void @llvm.lifetime.end.p0(i64 424, ptr nonnull %168) #8
  br label %1969

1969:                                             ; preds = %1968, %1947
  %.pn355.pn.pn = phi { ptr, i32 } [ %.pn355.pn, %1947 ], [ %.pn351.pn.pn, %1968 ]
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %162) #8
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %162) #8
  br label %.loopexit.split-lp805

1970:                                             ; preds = %1924
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %172) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %172, align 8, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %173) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %173, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1971 unwind label %1976

1971:                                             ; preds = %1970
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %175) #8
  store ptr %172, ptr %175, align 8, !tbaa !76
  %1972 = getelementptr inbounds i8, ptr %175, i64 8
  store ptr %102, ptr %1972, align 8, !tbaa !76
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull align 8 dereferenceable(16) %175) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull %174)
          to label %1973 unwind label %1978

1973:                                             ; preds = %1971
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %175) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %173) #8
  %1974 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1974, ptr noundef nonnull @.str.6)
          to label %1975 unwind label %1981

1975:                                             ; preds = %1973
  invoke void @__cxa_throw(ptr nonnull %1974, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %1983

1976:                                             ; preds = %1970
  %1977 = landingpad { ptr, i32 }
          cleanup
  br label %1980

1978:                                             ; preds = %1971
  %1979 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %175) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #8
  br label %1980

1980:                                             ; preds = %1978, %1976
  %.pn347 = phi { ptr, i32 } [ %1979, %1978 ], [ %1977, %1976 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %173) #8
  br label %1985

1981:                                             ; preds = %1973
  %1982 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1974) #8
  br label %1985

1983:                                             ; preds = %1975
  %1984 = landingpad { ptr, i32 }
          cleanup
  br label %1985

1985:                                             ; preds = %1983, %1981, %1980
  %.pn349 = phi { ptr, i32 } [ %1984, %1983 ], [ %1982, %1981 ], [ %.pn347, %1980 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %172) #8
  br label %.loopexit.split-lp805

1986:                                             ; preds = %1923
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %176) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %176, align 8, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %177) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %177, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %1987 unwind label %1992

1987:                                             ; preds = %1986
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %179) #8
  store ptr %176, ptr %179, align 8, !tbaa !76
  %1988 = getelementptr inbounds i8, ptr %179, i64 8
  store ptr %102, ptr %1988, align 8, !tbaa !76
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(16) %179) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull %178)
          to label %1989 unwind label %1994

1989:                                             ; preds = %1987
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %179) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #8
  %1990 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1990, ptr noundef nonnull @.str.6)
          to label %1991 unwind label %1997

1991:                                             ; preds = %1989
  invoke void @__cxa_throw(ptr nonnull %1990, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %1999

1992:                                             ; preds = %1986
  %1993 = landingpad { ptr, i32 }
          cleanup
  br label %1996

1994:                                             ; preds = %1987
  %1995 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %179) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #8
  br label %1996

1996:                                             ; preds = %1994, %1992
  %.pn343 = phi { ptr, i32 } [ %1995, %1994 ], [ %1993, %1992 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #8
  br label %2001

1997:                                             ; preds = %1989
  %1998 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1990) #8
  br label %2001

1999:                                             ; preds = %1991
  %2000 = landingpad { ptr, i32 }
          cleanup
  br label %2001

2001:                                             ; preds = %1999, %1997, %1996
  %.pn345 = phi { ptr, i32 } [ %2000, %1999 ], [ %1998, %1997 ], [ %.pn343, %1996 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #8
  br label %.loopexit.split-lp805

2002:                                             ; preds = %1955, %1898
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #8
  br label %2003

2003:                                             ; preds = %2002, %1348
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #8
  call void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %99) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %99) #8
  br label %2034

.loopexit.split-lp805:                            ; preds = %.loopexit804, %.loopexit.split-lp805.loopexit.split-lp, %.loopexit.split-lp805.loopexit, %1860, %1698, %1658, %1862, %1700, %1660, %2001, %1985, %1969, %1918, %1853, %1825, %1805, %1691, %1651, %1621, %1620
  %.pn396.pn = phi { ptr, i32 } [ %.pn396764, %1660 ], [ %1659, %1658 ], [ %.pn394770, %1700 ], [ %1699, %1698 ], [ %.pn392, %1805 ], [ %.pn375, %1691 ], [ %.pn373, %1825 ], [ %.pn369788, %1862 ], [ %1861, %1860 ], [ %.pn366.pn, %1918 ], [ %.pn355.pn.pn, %1969 ], [ %.pn349, %1985 ], [ %.pn345, %2001 ], [ %.pn340, %1853 ], [ %.pn337, %1651 ], [ %1622, %1621 ], [ %.pn335, %1620 ], [ %lpad.loopexit806, %.loopexit804 ], [ %lpad.loopexit833, %.loopexit.split-lp805.loopexit ], [ %lpad.loopexit.split-lp834, %.loopexit.split-lp805.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #8
  br label %2004

2004:                                             ; preds = %.loopexit828, %.loopexit.split-lp829, %1601, %1564, %1527, %1603, %1566, %1529, %.loopexit.split-lp805, %1594, %1557, %1520, %1490, %1489
  %.pn407 = phi { ptr, i32 } [ %1491, %1490 ], [ %.pn405, %1489 ], [ %.pn403746, %1529 ], [ %1528, %1527 ], [ %.pn401752, %1566 ], [ %1565, %1564 ], [ %.pn399758, %1603 ], [ %1602, %1601 ], [ %.pn396.pn, %.loopexit.split-lp805 ], [ %.pn332, %1594 ], [ %.pn329, %1557 ], [ %.pn326, %1520 ], [ %lpad.loopexit830, %.loopexit828 ], [ %lpad.loopexit.split-lp831, %.loopexit.split-lp829 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #8
  br label %2005

2005:                                             ; preds = %.loopexit823, %.loopexit.split-lp824, %1470, %1433, %1396, %1337, %1472, %1435, %1398, %1339, %2004, %1463, %1426, %1389, %1361, %1330
  %.pn423.pn = phi { ptr, i32 } [ %.pn423722, %1339 ], [ %1338, %1337 ], [ %.pn418.pn.pn, %1361 ], [ %.pn415, %1330 ], [ %.pn413728, %1398 ], [ %1397, %1396 ], [ %.pn411734, %1435 ], [ %1434, %1433 ], [ %.pn409740, %1472 ], [ %1471, %1470 ], [ %.pn407, %2004 ], [ %.pn323, %1463 ], [ %.pn320, %1426 ], [ %.pn317, %1389 ], [ %lpad.loopexit825, %.loopexit823 ], [ %lpad.loopexit.split-lp826, %.loopexit.split-lp824 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  br label %2006

2006:                                             ; preds = %2005, %1324
  %.pn423.pn.pn = phi { ptr, i32 } [ %.pn423.pn, %2005 ], [ %1325, %1324 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #8
  br label %2007

2007:                                             ; preds = %1292, %1294, %2006, %1284, %1283
  %.pn427.pn = phi { ptr, i32 } [ %.pn427716, %1294 ], [ %1293, %1292 ], [ %1285, %1284 ], [ %.pn423.pn.pn, %2006 ], [ %.pn314, %1283 ]
  call void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %99) #8
  br label %2008

2008:                                             ; preds = %2007, %1277
  %.pn427.pn.pn = phi { ptr, i32 } [ %.pn427.pn, %2007 ], [ %1278, %1277 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %99) #8
  br label %.loopexit.split-lp815

2009:                                             ; preds = %1252
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %180) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %180, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %2010 unwind label %2019

2010:                                             ; preds = %2009
  %2011 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %8, ptr noundef nonnull align 8 dereferenceable(88) %180)
          to label %2012 unwind label %2021

2012:                                             ; preds = %2010
  %2013 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2011)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %180) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %180) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #8
  store ptr @__FUNCTION__._ZN14MirOptTestFile14load_from_fileERKN7helpers4pathE, ptr %181, align 8, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %182) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %182, ptr noundef nonnull align 8 dereferenceable(176) %6)
          to label %2014 unwind label %2024

2014:                                             ; preds = %2012
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %184) #8
  store ptr %181, ptr %184, align 8, !tbaa !76
  %2015 = getelementptr inbounds i8, ptr %184, i64 8
  store ptr %8, ptr %2015, align 8, !tbaa !76
  call void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(16) %184) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull %183)
          to label %2016 unwind label %2026

2016:                                             ; preds = %2014
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %184) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %182) #8
  %2017 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2017, ptr noundef nonnull @.str.6)
          to label %2018 unwind label %2029

2018:                                             ; preds = %2016
  invoke void @__cxa_throw(ptr nonnull %2017, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %2040 unwind label %2031

2019:                                             ; preds = %2009
  %2020 = landingpad { ptr, i32 }
          cleanup
  br label %2023

2021:                                             ; preds = %2010
  %2022 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %180) #8
  br label %2023

2023:                                             ; preds = %2021, %2019
  %.pn308 = phi { ptr, i32 } [ %2022, %2021 ], [ %2020, %2019 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %180) #8
  br label %.loopexit.split-lp815

2024:                                             ; preds = %2012
  %2025 = landingpad { ptr, i32 }
          cleanup
  br label %2028

2026:                                             ; preds = %2014
  %2027 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %184) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #8
  br label %2028

2028:                                             ; preds = %2026, %2024
  %.pn310 = phi { ptr, i32 } [ %2027, %2026 ], [ %2025, %2024 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %182) #8
  br label %2033

2029:                                             ; preds = %2016
  %2030 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %2017) #8
  br label %2033

2031:                                             ; preds = %2018
  %2032 = landingpad { ptr, i32 }
          cleanup
  br label %2033

2033:                                             ; preds = %2031, %2029, %2028
  %.pn312 = phi { ptr, i32 } [ %2032, %2031 ], [ %2030, %2029 ], [ %.pn310, %2028 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #8
  br label %.loopexit.split-lp815

2034:                                             ; preds = %2003, %._crit_edge860, %1234, %1119
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #8
  br label %220

.loopexit.split-lp815:                            ; preds = %.loopexit836, %.loopexit.split-lp837, %.loopexit814, %.loopexit.split-lp815.loopexit.split-lp, %.loopexit.split-lp815.loopexit, %1179, %573, %311, %274, %566, %1141, %575, %1181, %313, %276, %2033, %2023, %2008, %1249, %1172, %533, %451, %304, %267
  %.pn589.pn = phi { ptr, i32 } [ %.pn589598, %276 ], [ %275, %274 ], [ %.pn587604, %313 ], [ %312, %311 ], [ %.pn583.pn.pn, %451 ], [ %.pn563, %304 ], [ %.pn560, %267 ], [ %.pn553.pn.pn.pn.pn.pn, %533 ], [ %.pn445700, %1181 ], [ %1180, %1179 ], [ %.pn441.pn.pn, %1249 ], [ %.pn431, %1172 ], [ %.pn427.pn.pn, %2008 ], [ %.pn312, %2033 ], [ %.pn308, %2023 ], [ %.pn538628, %575 ], [ %574, %573 ], [ %.pn534.pn.pn, %1141 ], [ %.pn447, %566 ], [ %lpad.loopexit816, %.loopexit814 ], [ %lpad.loopexit820, %.loopexit.split-lp815.loopexit ], [ %lpad.loopexit.split-lp821, %.loopexit.split-lp815.loopexit.split-lp ], [ %lpad.loopexit838, %.loopexit836 ], [ %lpad.loopexit.split-lp839, %.loopexit.split-lp837 ]
  call void @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #8
  br label %2036

2035:                                             ; preds = %222
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #8
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #8
  ret void

2036:                                             ; preds = %.loopexit.split-lp815, %261
  %.pn589.pn.pn = phi { ptr, i32 } [ %.pn589.pn, %.loopexit.split-lp815 ], [ %262, %261 ]
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #8
  br label %2037

2037:                                             ; preds = %2036, %259
  %.pn589.pn.pn.pn = phi { ptr, i32 } [ %.pn589.pn.pn, %2036 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #8
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #8
  br label %2038

2038:                                             ; preds = %2037, %257
  %.pn589.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn589.pn.pn.pn, %2037 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #8
  br label %2039

2039:                                             ; preds = %2038, %256, %250
  %.pn589.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn589.pn.pn.pn.pn, %2038 ], [ %.pn, %256 ], [ %251, %250 ]
  call void @_ZN14MirOptTestFileD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0) #8
  resume { ptr, i32 } %.pn589.pn.pn.pn.pn.pn

2040:                                             ; preds = %2018, %1991, %1975, %1858, %1815, %1793, %1751, %1711, %1696, %1656, %1615, %1599, %1562, %1525, %1484, %1468, %1431, %1394, %1335, %1290, %1221, %1177, %1105, %1066, %1021, %957, %916, %879, %838, %801, %745, %704, %657, %615, %571, %434, %390, %353, %309, %272
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

declare void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #5

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

; Function Attrs: nounwind
declare void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #7 align 2

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

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

declare void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef byval(%struct.ParseState) align 8) unnamed_addr #5

declare void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #5

declare noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_110consume_ifER11TokenStream10eTokenType(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #0

declare void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #5

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

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

; Function Attrs: nounwind
declare void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #6

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #1

; 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 #0 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)) #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) unnamed_addr #5

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN10ParseError10UnexpectedD1Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #6

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE6insertIS9_IS0_S6_EEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.179") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7 align 2

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114parse_functionER11TokenStreamR8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::Function") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR8FunctionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.235") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN3HIR6VisEntINS0_9ValueItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.237") align 8, ptr noundef nonnull align 8 dereferenceable(384)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14MirOptTestFile4TestD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_9ValueItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(384)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110parse_typeER11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7LinkageC2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR6StaticC2ENS_7LinkageEbNS_7TypeRefENS_7ExprPtrE(ptr noundef nonnull align 8 dereferenceable(360), ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7ExprPtrD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7LinkageD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14EncodedLiteralC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZNK5Token6intvalEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Reloc9new_namedEmmN3HIR4PathE(ptr dead_on_unwind noalias writable sret(%struct.Reloc) align 8, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #0 align 2

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

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

declare void @_ZN3HIR4PathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5RelocD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5Reloc9new_bytesEmmNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%struct.Reloc) align 8, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3 align 2

declare void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #5

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN14EncodedLiteralaSEOS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14EncodedLiteralD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR6StaticC2EOS0_(ptr noundef nonnull align 8 dereferenceable(360), ptr noundef nonnull align 8 dereferenceable(360)) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(360)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairI8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.272") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #0

declare void @_ZN3HIR8CratePtrC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #7 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.375") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN3HIR6VisEntINS0_8TypeItemEEEJS3_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.377") align 8, ptr noundef nonnull align 8 dereferenceable(424)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_8TypeItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(424)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TypeRepr5FieldD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_8EbT_SF_T0_"(ptr, ptr, ptr) local_unnamed_addr #1

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

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

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

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

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

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

declare void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR13GenericParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #7 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StructC2EOS0_(ptr noundef nonnull align 8 dereferenceable(252), ptr noundef nonnull align 8 dereferenceable(252)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPN8TypeRepr5FieldESt6vectorIS3_SaIS3_EEEEZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_9EbT_SF_T0_"(ptr, ptr, ptr) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairI8RcStringN3HIR6VisEntINS1_7TypeRefEEEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.396") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionC2EOS0_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TypeReprD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN14MirOptTestFile14load_from_fileERKN7helpers4pathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN14MirOptTestFileD2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #7 align 2

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !37, i64 304}
!13 = !{!"_ZTSN3HIR6StaticE", !14, i64 0, !32, i64 96, !37, i64 168, !38, i64 176, !39, i64 184, !47, i64 256, !37, i64 304, !37, i64 305, !37, i64 306, !56, i64 312}
!14 = !{!"_ZTSN3HIR13GenericParamsE", !15, i64 0, !20, i64 24, !24, i64 48, !28, i64 72}
!15 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!19 = !{!"any pointer", !7, i64 0}
!20 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!24 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!28 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!32 = !{!"_ZTSN3HIR7LinkageE", !33, i64 0, !34, i64 8, !34, i64 40}
!33 = !{!"_ZTSN3HIR7Linkage4TypeE", !7, i64 0}
!34 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !35, i64 0, !36, i64 8, !7, i64 16}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !19, i64 0}
!36 = !{!"long", !7, i64 0}
!37 = !{!"bool", !7, i64 0}
!38 = !{!"_ZTSN3HIR7TypeRefE", !19, i64 0}
!39 = !{!"_ZTSN3HIR7ExprPtrE", !40, i64 0, !41, i64 8, !41, i64 32, !45, i64 56, !46, i64 64}
!40 = !{!"_ZTSN3HIR12ExprPtrInnerE", !19, i64 0}
!41 = !{!"_ZTSSt6vectorIN3HIR7TypeRefESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!45 = !{!"_ZTSN3MIR15FunctionPointerE", !19, i64 0}
!46 = !{!"_ZTSN3HIR12ExprStatePtrE", !19, i64 0}
!47 = !{!"_ZTS14EncodedLiteral", !48, i64 0, !52, i64 24}
!48 = !{!"_ZTSSt6vectorIhSaIhEE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!52 = !{!"_ZTSSt6vectorI5RelocSaIS0_EE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseI5RelocSaIS0_EE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseI5RelocSaIS0_EE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI5RelocSaIS0_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!56 = !{!"_ZTSSt3mapIN3HIR4PathE14EncodedLiteralSt4lessIS1_ESaISt4pairIKS1_S2_EEE", !57, i64 0}
!57 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_14EncodedLiteralESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE", !58, i64 0}
!58 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_14EncodedLiteralESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !59, i64 0, !61, i64 8}
!59 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR4PathEEE", !60, i64 0}
!60 = !{!"_ZTSSt4lessIN3HIR4PathEE"}
!61 = !{!"_ZTSSt15_Rb_tree_header", !62, i64 0, !36, i64 32}
!62 = !{!"_ZTSSt18_Rb_tree_node_base", !63, i64 0, !19, i64 8, !19, i64 16, !19, i64 24}
!63 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!64 = !{!65, !36, i64 8}
!65 = !{!"_ZTS8TypeRepr", !36, i64 0, !36, i64 8, !66, i64 16, !68, i64 88}
!66 = !{!"_ZTSN8TypeRepr11VariantModeE", !67, i64 0, !7, i64 8}
!67 = !{!"_ZTSN8TypeRepr11VariantMode3TagE", !7, i64 0}
!68 = !{!"_ZTSSt6vectorIN8TypeRepr5FieldESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIN8TypeRepr5FieldESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!72 = !{!65, !36, i64 0}
!73 = !{!74, !36, i64 0}
!74 = !{!"_ZTSN8TypeRepr5FieldE", !36, i64 0, !38, i64 8}
!75 = distinct !{!75, !10}
!76 = !{!19, !19, i64 0}
!77 = !{!78, !37, i64 146}
!78 = !{!"_ZTSN3HIR6StructE", !14, i64 0, !79, i64 96, !80, i64 104, !6, i64 136, !6, i64 140, !82, i64 144, !88, i64 200, !92, i64 248}
!79 = !{!"_ZTSN3HIR6Struct4ReprE", !7, i64 0}
!80 = !{!"_ZTSN3HIR6Struct4DataE", !81, i64 0, !7, i64 8}
!81 = !{!"_ZTSN3HIR6Struct4Data3TagE", !7, i64 0}
!82 = !{!"_ZTSN3HIR13TraitMarkingsE", !37, i64 0, !37, i64 1, !37, i64 2, !83, i64 8}
!83 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !84, i64 0}
!84 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !85, i64 0}
!85 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !86, i64 0, !61, i64 8}
!86 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !87, i64 0}
!87 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!88 = !{!"_ZTSN3HIR14StructMarkingsE", !37, i64 0, !6, i64 4, !89, i64 8, !6, i64 12, !90, i64 16, !6, i64 20, !6, i64 24, !37, i64 28, !37, i64 29, !91, i64 32}
!89 = !{!"_ZTSN3HIR14StructMarkings7DstTypeE", !7, i64 0}
!90 = !{!"_ZTSN3HIR14StructMarkings6CoerceE", !7, i64 0}
!91 = !{!"_ZTS4U128", !36, i64 0, !36, i64 8}
!92 = !{!"_ZTSN3HIR14ConstEvalStateE", !7, i64 0}
!93 = !{!94, !37, i64 130}
!94 = !{!"_ZTSN3HIR5UnionE", !14, i64 0, !95, i64 96, !96, i64 104, !82, i64 128}
!95 = !{!"_ZTSN3HIR5Union4ReprE", !7, i64 0}
!96 = !{!"_ZTSSt6vectorISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE", !97, i64 0}
!97 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE", !98, i64 0}
!98 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE12_Vector_implE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringN3HIR6VisEntINS2_7TypeRefEEEESaIS6_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}


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