; LLVM IR from thepowersgang/mrustc :: src/hir_typeck (helpers)

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

%"class.HIR::TypeRef" = type { ptr }
%"struct.HMTypeInferrence::ResolvePlaceholders" = type { %"class.HIR::ResolvePlaceholders", ptr }
%"class.HIR::ResolvePlaceholders" = type { ptr }
%"class.HIR::TypePathBinding" = type { i32, %"union.HIR::TypePathBinding::DataUnion" }
%"union.HIR::TypePathBinding::DataUnion" = type { ptr }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"struct.HIR::PathParams" = type { %class.ThinVector.26, %class.ThinVector.27, %class.ThinVector.28 }
%class.ThinVector.26 = type { ptr }
%class.ThinVector.27 = type { ptr }
%class.ThinVector.28 = type { ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.659 = type { ptr, ptr, ptr }
%class.anon.660 = type { ptr, ptr }
%class.anon.661 = type { ptr, ptr, ptr }
%"class.std::function.662" = type { %"class.std::_Function_base", ptr }
%class.anon.665 = type { ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::function.444" = type { %"class.std::_Function_base", ptr }
%class.anon.666 = type { ptr }
%"struct.HMTypeInferrence::FmtType" = type { ptr, ptr }
%"struct.std::pair.653" = type { i32, %"class.HIR::Path" }
%"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.29" }
%class.RcString = type { ptr }
%"class.std::unique_ptr.29" = type { %"struct.std::__uniq_ptr_data.30" }
%"struct.std::__uniq_ptr_data.30" = type { %"class.std::__uniq_ptr_impl.31" }
%"class.std::__uniq_ptr_impl.31" = type { %"class.std::tuple.32" }
%"class.std::tuple.32" = type { %"struct.std::_Tuple_impl.33" }
%"struct.std::_Tuple_impl.33" = type { %"struct.std::_Head_base.36" }
%"struct.std::_Head_base.36" = type { ptr }
%"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator" = type { %"class.__gnu_cxx::__normal_iterator.224" }
%"class.__gnu_cxx::__normal_iterator.224" = type { ptr }
%struct.MonomorphEraseHrls = type { %class.Monomorphiser }
%class.Monomorphiser = type { ptr, ptr, %"class.HIR::ItemPath", %"class.std::vector.181" }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.667 = type { ptr, %struct.Span }
%struct.Span = type { ptr }
%"class.std::function.521" = type { %"class.std::_Function_base", ptr }
%class.anon.668 = type { i8 }
%class.anon.670 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.154" = type { ptr }
%class.anon.672 = type { i8 }
%class.anon.674 = type { i8 }
%struct.MonomorphStatePtr = type { %class.MonomorphiserPP, ptr, ptr, ptr, ptr }
%class.MonomorphiserPP = type { %class.Monomorphiser }
%class.anon.676 = type { ptr, ptr }
%"struct.HIR::TypePathBinding::Data_Opaque" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.443" = type { ptr }
%struct.reversion_wrapper = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator.677" }
%"class.__gnu_cxx::__normal_iterator.677" = type { ptr }
%class.anon.680 = type { i8 }
%class.anon.682 = type { ptr, ptr }
%class.TraitResolution = type { %struct.TraitResolveCommon, ptr, ptr, ptr, ptr, ptr, %"class.std::vector.216" }
%struct.TraitResolveCommon = type { ptr, ptr, ptr, %"class.std::map.205", %class.RangeVecMap, %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath" }
%"class.std::map.205" = type { %"class.std::_Rb_tree.206" }
%"class.std::_Rb_tree.206" = type { %"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_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.RangeVecMap = type <{ %"class.std::vector.211", [8 x i8] }>
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeRef>, std::allocator<std::unique_ptr<HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeRef>, std::allocator<std::unique_ptr<HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeRef>, std::allocator<std::unique_ptr<HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeRef>, std::allocator<std::unique_ptr<HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.275", %"class.std::vector.280", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.301", %"class.std::map.306", %"class.std::vector.311", %"struct.HIR::Crate::ImplGroup.316", %"class.std::map.327", %"class.std::map.332", %"class.std::vector.337", %"class.std::unordered_map.342", %"class.std::vector.337", %"class.std::unordered_map.361", %"class.std::vector.375", %"class.std::vector.380" }
%"class.HIR::Module" = type { %"class.std::vector.232", %"class.std::unordered_map", %"class.std::unordered_map.242", %"class.std::unordered_map.256", %"class.std::vector.270" }
%"class.std::vector.232" = type { %"struct.std::_Vector_base.233" }
%"struct.std::_Vector_base.233" = 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.242" = type { %"class.std::_Hashtable.243" }
%"class.std::_Hashtable.243" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.256" = type { %"class.std::_Hashtable.257" }
%"class.std::_Hashtable.257" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.270" = type { %"struct.std::_Vector_base.271" }
%"struct.std::_Vector_base.271" = 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.275" = type { %"struct.std::_Vector_base.276" }
%"struct.std::_Vector_base.276" = 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.280" = type { %"struct.std::_Vector_base.281" }
%"struct.std::_Vector_base.281" = 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.285", %"class.std::vector.291", %"class.std::vector.291" }
%"class.std::map.285" = type { %"class.std::_Rb_tree.286" }
%"class.std::_Rb_tree.286" = 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" }
%"class.std::vector.291" = type { %"struct.std::_Vector_base.292" }
%"struct.std::_Vector_base.292" = 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.296" }
%"class.std::map.296" = type { %"class.std::_Rb_tree.297" }
%"class.std::_Rb_tree.297" = 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.301" = type { %"class.std::_Rb_tree.302" }
%"class.std::_Rb_tree.302" = 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.306" = type { %"class.std::_Rb_tree.307" }
%"class.std::_Rb_tree.307" = 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.311" = type { %"struct.std::_Vector_base.312" }
%"struct.std::_Vector_base.312" = 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.316" = type { %"class.std::map.317", %"class.std::vector.322", %"class.std::vector.322" }
%"class.std::map.317" = type { %"class.std::_Rb_tree.318" }
%"class.std::_Rb_tree.318" = 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.322" = type { %"struct.std::_Vector_base.323" }
%"struct.std::_Vector_base.323" = 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.327" = type { %"class.std::_Rb_tree.328" }
%"class.std::_Rb_tree.328" = 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.332" = type { %"class.std::_Rb_tree.333" }
%"class.std::_Rb_tree.333" = 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.342" = 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::vector.337" = type { %"struct.std::_Vector_base.338" }
%"struct.std::_Vector_base.338" = 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.361" = type { %"class.std::_Hashtable.362" }
%"class.std::_Hashtable.362" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.375" = type { %"struct.std::_Vector_base.376" }
%"struct.std::_Vector_base.376" = 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.380" = type { %"struct.std::_Vector_base.381" }
%"struct.std::_Vector_base.381" = 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.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.50", i8, %"class.std::unordered_map.385", %"class.std::unordered_map.399", %"class.std::unordered_multimap", %"class.std::unordered_map.426", i32, %"class.std::vector.50", %"struct.HIR::SimplePath" }
%"class.HIR::GenericParams" = type { %"class.std::vector.65", %"class.std::vector.70", %"class.std::vector.75", %"class.std::vector.80" }
%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = 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.70" = type { %"struct.std::_Vector_base.71" }
%"struct.std::_Vector_base.71" = 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.75" = type { %"struct.std::_Vector_base.76" }
%"struct.std::_Vector_base.76" = 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.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.385" = type { %"class.std::_Hashtable.386" }
%"class.std::_Hashtable.386" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.399" = type { %"class.std::_Hashtable.400" }
%"class.std::_Hashtable.400" = 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.413" }
%"class.std::_Hashtable.413" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.426" = type { %"class.std::_Hashtable.427" }
%"class.std::_Hashtable.427" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.50" = type { %"struct.std::_Vector_base.51" }
%"struct.std::_Vector_base.51" = 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.225" = type { %"struct.std::pair.227", %"struct.TraitResolveCommon::CachedBound" }
%"struct.std::pair.227" = type { %"class.HIR::TypeRef", %"class.HIR::GenericPath" }
%"struct.TraitResolveCommon::CachedBound" = type { %"class.HIR::GenericParams", ptr, %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::TraitPath::AtyEqual>, std::_Select1st<std::pair<const RcString, HIR::TraitPath::AtyEqual>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::TraitPath::AtyEqual>, std::_Select1st<std::pair<const RcString, HIR::TraitPath::AtyEqual>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::TypeData_TraitObject" = type <{ %"class.HIR::TraitPath", %"class.std::vector.45", %"struct.HIR::LifetimeRef", [4 x i8] }>
%"class.HIR::TraitPath" = type { %"class.std::unique_ptr.29", %"class.HIR::GenericPath", %"class.std::map", %"class.std::map.40", ptr }
%"class.std::map.40" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::TraitPath::AtyBound>, std::_Select1st<std::pair<const RcString, HIR::TraitPath::AtyBound>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::TraitPath::AtyBound>, std::_Select1st<std::pair<const RcString, HIR::TraitPath::AtyBound>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.45" = type { %"struct.std::_Vector_base.46" }
%"struct.std::_Vector_base.46" = type { %"struct.std::_Vector_base<HIR::GenericPath, std::allocator<HIR::GenericPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericPath, std::allocator<HIR::GenericPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericPath, std::allocator<HIR::GenericPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericPath, std::allocator<HIR::GenericPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TypeData_ErasedType" = type { i8, %"class.std::vector.50", %"class.std::vector.55", %"class.HIR::TypeData_ErasedType_Inner" }
%"class.std::vector.55" = type { %"struct.std::_Vector_base.56" }
%"struct.std::_Vector_base.56" = type { %"struct.std::_Vector_base<HIR::LifetimeRef, std::allocator<HIR::LifetimeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeRef, std::allocator<HIR::LifetimeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeRef, std::allocator<HIR::LifetimeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeRef, std::allocator<HIR::LifetimeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::TypeData_ErasedType_Inner" = type { i32, %"union.HIR::TypeData_ErasedType_Inner::DataUnion" }
%"union.HIR::TypeData_ErasedType_Inner::DataUnion" = type { %"struct.HIR::TypeData_ErasedType_Inner::Data_Alias", [56 x i8] }
%"struct.HIR::TypeData_ErasedType_Inner::Data_Alias" = type { %"struct.HIR::PathParams", %"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 }
%"struct.HIR::TypeData_Path" = type { %"class.HIR::Path", %"class.HIR::TypePathBinding", %"class.std::unique_ptr.29" }
%"struct.HIR::AssociatedType" = type { %"class.HIR::GenericParams", i8, %"struct.HIR::LifetimeRef", %"class.std::vector.50", %"class.HIR::TypeRef" }
%"struct.HIR::GenericBound::Data_TraitBound" = type { %"class.std::unique_ptr.29", %"class.HIR::TypeRef", %"class.HIR::TraitPath" }
%"struct.std::pair.678" = type { ptr, ptr }

@g_debug_indent_level = external global i32, align 4
@.str.7 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN15TraitResolution17RecursionDetectedE = external dso_local constant { ptr, ptr }, align 8
@.str.135 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE = external hidden unnamed_addr constant [12 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [23 x i8], align 1
@__PRETTY_FUNCTION__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE = external hidden unnamed_addr constant [252 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [21 x i8], align 1

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

declare noundef zeroext i1 @_Z13debug_enabledv() #1

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 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)) #2

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

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

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

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

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

declare void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #1

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

declare noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind noalias writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8, ptr noundef nonnull align 8 dereferenceable(49)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE5beginEv(ptr noundef nonnull align 8 dereferenceable(25)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE3endEv(ptr noundef nonnull align 8 dereferenceable(25)) #3 align 2

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

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

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

declare void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

declare noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_magicERK4SpanRKN3HIR10SimplePathERKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 align 2

declare void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

declare void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #1

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

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

; 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 #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR7TypeRef8new_pathENS_4PathENS_15TypePathBindingE(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8, ptr noundef, ptr noundef) #2 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 #5 align 2

declare void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR15TypePathBinding11make_OpaqueENS0_11Data_OpaqueE(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypePathBinding") align 8) #3 align 2

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

declare void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #3 align 2

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef, ptr noundef) unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(400), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

declare void @_ZNK3HIR11GenericPath5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #1

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

declare void @_ZNK13Monomorphiser21monomorph_path_paramsERK4SpanRKN3HIR10PathParamsEb(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, i32 noundef %6, i32 noundef %7, ptr noundef nonnull align 8 dereferenceable(24) %8) #3 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca i1, align 1
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca %class.TraceLog, align 8
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %class.anon.659, align 8
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon.660, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca %"struct.HMTypeInferrence::ResolvePlaceholders", align 8
  %29 = alloca %class.anon.661, align 8
  %30 = alloca %"struct.HMTypeInferrence::ResolvePlaceholders", align 8
  %31 = alloca %"class.std::function.662", align 8
  %32 = alloca %class.anon.665, align 8
  %33 = alloca %"class.HIR::GenericPath", align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca %"struct.HIR::PathParams", align 8
  %39 = alloca i8, align 1
  %40 = alloca %"class.std::function.444", align 8
  %41 = alloca %class.anon.666, align 8
  %42 = alloca %"struct.HMTypeInferrence::FmtType", align 8
  %43 = alloca %"struct.std::pair.653", align 8
  %44 = alloca %"class.HIR::Path", align 8
  %45 = alloca %"class.HIR::TypeRef", align 8
  %46 = alloca %"class.HIR::GenericPath", align 8
  %47 = alloca %"struct.HIR::SimplePath", align 8
  %48 = alloca %"struct.HIR::PathParams", align 8
  %49 = alloca %class.RcString, align 8
  %50 = alloca %"struct.HIR::PathParams", align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", align 8
  %54 = alloca %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"class.HIR::GenericPath", align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"class.HIR::GenericPath", align 8
  %63 = alloca %struct.MonomorphEraseHrls, align 8
  %64 = alloca i32, align 4
  %65 = alloca %"struct.std::pair.653", align 8
  %66 = alloca %"class.HIR::Path", align 8
  %67 = alloca %"class.HIR::Path::Data", align 8
  %68 = alloca %"struct.HIR::Path::Data::Data_UfcsKnown", align 8
  %69 = alloca %"struct.std::pair.653", align 8
  %70 = alloca %"class.HIR::Path", align 8
  %71 = alloca %"class.HIR::Path::Data", align 8
  %72 = alloca %"struct.HIR::Path::Data::Data_UfcsKnown", align 8
  %73 = alloca %class.anon.667, align 8
  %74 = alloca ptr, align 8
  %75 = alloca %"class.std::function.521", align 8
  %76 = alloca %class.anon.668, align 1
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca i8, align 1
  %80 = alloca %"class.HIR::GenericPath", align 8
  %81 = alloca ptr, align 8
  %82 = alloca %"class.HIR::TypeRef", align 8
  %83 = alloca ptr, align 8
  %84 = alloca %"struct.std::pair.653", align 8
  %85 = alloca %"class.HIR::Path", align 8
  %86 = alloca %"class.HIR::TypeRef", align 8
  %87 = alloca %"class.HIR::GenericPath", align 8
  %88 = alloca %class.RcString, align 8
  %89 = alloca %"struct.HIR::PathParams", align 8
  %90 = alloca ptr, align 8
  %91 = alloca %"class.std::function.521", align 8
  %92 = alloca %class.anon.670, align 1
  %93 = alloca ptr, align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %"class.HIR::GenericPath", align 8
  %100 = alloca ptr, align 8
  %101 = alloca %"class.HIR::TypeRef", align 8
  %102 = alloca ptr, align 8
  %103 = alloca %"struct.std::pair.653", align 8
  %104 = alloca %"class.HIR::Path", align 8
  %105 = alloca %"class.HIR::TypeRef", align 8
  %106 = alloca %"class.HIR::GenericPath", align 8
  %107 = alloca %class.RcString, align 8
  %108 = alloca %"struct.HIR::PathParams", align 8
  %109 = alloca %"class.std::function.521", align 8
  %110 = alloca %class.anon.672, align 1
  %111 = alloca ptr, align 8
  %112 = alloca %"class.std::function.521", align 8
  %113 = alloca %class.anon.674, align 1
  %114 = alloca ptr, align 8
  %115 = alloca %struct.MonomorphStatePtr, align 8
  %116 = alloca ptr, align 8
  %117 = alloca ptr, align 8
  %118 = alloca ptr, align 8
  %119 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %120 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %121 = alloca ptr, align 8
  %122 = alloca %struct.Span, align 8
  %123 = alloca %"class.std::function", align 8
  %124 = alloca %class.anon.676, align 8
  %125 = alloca %"class.HIR::GenericPath", align 8
  %126 = alloca %"class.HIR::TypeRef", align 8
  %127 = alloca %"class.HIR::Path", align 8
  %128 = alloca %"class.HIR::TypeRef", align 8
  %129 = alloca %"class.HIR::GenericPath", align 8
  %130 = alloca %class.RcString, align 8
  %131 = alloca %"struct.HIR::PathParams", align 8
  %132 = alloca %"class.HIR::TypePathBinding", align 8
  %133 = alloca %"struct.HIR::TypePathBinding::Data_Opaque", align 1
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"struct.HIR::PathParams", align 8
  %137 = alloca %"class.HIR::GenericPath", align 8
  %138 = alloca %"struct.std::pair.653", align 8
  %139 = alloca %"class.HIR::Path", align 8
  %140 = alloca %"class.HIR::TypeRef", align 8
  %141 = alloca %"class.HIR::GenericPath", align 8
  %142 = alloca %class.RcString, align 8
  %143 = alloca %"struct.HIR::PathParams", align 8
  %144 = alloca ptr, align 8
  %145 = alloca %"class.__gnu_cxx::__normal_iterator.443", align 8
  %146 = alloca %"class.__gnu_cxx::__normal_iterator.443", align 8
  %147 = alloca ptr, align 8
  %148 = alloca ptr, align 8
  %149 = alloca ptr, align 8
  %150 = alloca %"class.HIR::TypeRef", align 8
  %151 = alloca %"class.HIR::GenericPath", align 8
  %152 = alloca ptr, align 8
  %153 = alloca %"class.HIR::TypeRef", align 8
  %154 = alloca ptr, align 8
  %155 = alloca %"struct.HIR::PathParams", align 8
  %156 = alloca %"struct.std::pair.653", align 8
  %157 = alloca %"class.HIR::Path", align 8
  %158 = alloca %"class.HIR::TypeRef", align 8
  %159 = alloca %"class.HIR::GenericPath", align 8
  %160 = alloca %class.RcString, align 8
  %161 = alloca %"struct.HIR::PathParams", align 8
  %162 = alloca ptr, align 8
  %163 = alloca %struct.reversion_wrapper, align 8
  %164 = alloca %"class.std::reverse_iterator", align 8
  %165 = alloca %struct.reversion_wrapper, align 8
  %166 = alloca %"class.std::reverse_iterator", align 8
  %167 = alloca %struct.reversion_wrapper, align 8
  %168 = alloca ptr, align 8
  %169 = alloca %"class.HIR::GenericPath", align 8
  %170 = alloca ptr, align 8
  %171 = alloca %"class.HIR::GenericPath", align 8
  %172 = alloca %"struct.HIR::SimplePath", align 8
  %173 = alloca %"class.HIR::TypeRef", align 8
  %174 = alloca ptr, align 8
  %175 = alloca ptr, align 8
  %176 = alloca %"struct.HIR::PathParams", align 8
  %177 = alloca i8, align 1
  %178 = alloca i8, align 1
  %179 = alloca %"class.std::function.444", align 8
  %180 = alloca %class.anon.680, align 1
  %181 = alloca %"class.std::function.444", align 8
  %182 = alloca %class.anon.682, align 8
  %183 = alloca %"struct.HMTypeInferrence::FmtType", align 8
  %184 = alloca %"struct.std::pair.653", align 8
  %185 = alloca %"class.HIR::Path", align 8
  %186 = alloca %"class.HIR::TypeRef", align 8
  %187 = alloca %"class.HIR::GenericPath", align 8
  %188 = alloca %"struct.HIR::SimplePath", align 8
  %189 = alloca %"struct.HIR::PathParams", align 8
  %190 = alloca %class.RcString, align 8
  %191 = alloca %"struct.HIR::PathParams", align 8
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store ptr %4, ptr %15, align 8, !tbaa !5
  store ptr %5, ptr %16, align 8, !tbaa !5
  store i32 %6, ptr %17, align 4, !tbaa !9
  store i32 %7, ptr %18, align 4, !tbaa !11
  store ptr %8, ptr %19, align 8, !tbaa !5
  %192 = load ptr, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  store i8 0, ptr %20, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #12
  %193 = call noundef zeroext i1 @_Z13debug_enabledv()
  %194 = zext i1 %193 to i64
  %195 = select i1 %193, ptr @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE, ptr null
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #12
  %196 = getelementptr inbounds %class.anon.659, ptr %23, i32 0, i32 0
  %197 = load ptr, ptr %15, align 8, !tbaa !5
  store ptr %197, ptr %196, align 8, !tbaa !5
  %198 = getelementptr inbounds %class.anon.659, ptr %23, i32 0, i32 1
  %199 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %199, ptr %198, align 8, !tbaa !5
  %200 = getelementptr inbounds %class.anon.659, ptr %23, i32 0, i32 2
  store ptr %17, ptr %200, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(24) %23)
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #12
  %201 = getelementptr inbounds %class.anon.660, ptr %25, i32 0, i32 0
  store ptr %20, ptr %201, align 8, !tbaa !5
  %202 = getelementptr inbounds %class.anon.660, ptr %25, i32 0, i32 1
  %203 = load ptr, ptr %19, align 8, !tbaa !5
  store ptr %203, ptr %202, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(16) %25) #12
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef %195, ptr noundef %22, ptr noundef %24)
          to label %204 unwind label %226

204:                                              ; preds = %9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #12
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #12
  %205 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 2
  %206 = load ptr, ptr %205, align 8, !tbaa !15
  invoke void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8 %28, ptr noundef nonnull align 8 dereferenceable(49) %206)
          to label %207 unwind label %230

207:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #12
  %208 = getelementptr inbounds %class.anon.661, ptr %29, i32 0, i32 0
  %209 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %209, ptr %208, align 8, !tbaa !5
  %210 = getelementptr inbounds %class.anon.661, ptr %29, i32 0, i32 1
  %211 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %211, ptr %210, align 8, !tbaa !5
  %212 = getelementptr inbounds %class.anon.661, ptr %29, i32 0, i32 2
  store ptr %192, ptr %212, align 8, !tbaa !39
  br label %213

213:                                              ; preds = %207
  %214 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %215 unwind label %234

215:                                              ; preds = %213
  br i1 %214, label %216, label %238

216:                                              ; preds = %215
  %217 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %217, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %219 unwind label %234

219:                                              ; preds = %216
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef @.str.198)
          to label %221 unwind label %234

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef @_ZSt3decRSt8ios_base)
          to label %223 unwind label %234

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %225 unwind label %234

225:                                              ; preds = %223
  br label %238

226:                                              ; preds = %9
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %26, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #12
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #12
  br label %2428

230:                                              ; preds = %204
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %26, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %27, align 4
  br label %2427

234:                                              ; preds = %576, %574, %572, %569, %566, %223, %221, %219, %216, %213
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %26, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %27, align 4
  br label %2426

238:                                              ; preds = %225, %215
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 0
  %242 = load ptr, ptr %241, align 8, !tbaa !43
  %243 = getelementptr inbounds %"class.HIR::Crate", ptr %242, i32 0, i32 6
  %244 = load ptr, ptr %12, align 8, !tbaa !5
  %245 = load ptr, ptr %16, align 8, !tbaa !5
  %246 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #12
  %247 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 2
  %248 = load ptr, ptr %247, align 8, !tbaa !15
  invoke void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8 %30, ptr noundef nonnull align 8 dereferenceable(49) %248)
          to label %249 unwind label %294

249:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 48, ptr %32) #12
  %250 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 0
  %251 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %251, ptr %250, align 8, !tbaa !5
  %252 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 1
  store ptr %192, ptr %252, align 8, !tbaa !44
  %253 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 2
  %254 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %254, ptr %253, align 8, !tbaa !5
  %255 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 3
  %256 = load ptr, ptr %19, align 8, !tbaa !5
  store ptr %256, ptr %255, align 8, !tbaa !5
  %257 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 4
  store ptr %18, ptr %257, align 8, !tbaa !5
  %258 = getelementptr inbounds %class.anon.665, ptr %32, i32 0, i32 5
  store ptr %20, ptr %258, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRKN3HIR7TypeRefERKNS0_8TypeImplEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISM_EERKSE_IjSaIjEES3_RK8RcStringNSA_12MethodAccessENSA_15AutoderefBorrowERSE_ISF_ISZ_NS0_4PathEESaIS11_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(48) %32)
          to label %259 unwind label %298

259:                                              ; preds = %249
  invoke void @_ZNK3HIR13InherentCache4findERK4SpanRK8RcStringRKNS_7TypeRefERKNS_19ResolvePlaceholdersESt8functionIFvS9_RKNS_8TypeImplEEE(ptr noundef nonnull align 8 dereferenceable(48) %243, ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef %31)
          to label %260 unwind label %302

260:                                              ; preds = %259
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #12
  %261 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 4
  %262 = load ptr, ptr %261, align 8, !tbaa !46
  %263 = icmp ne ptr %262, null
  br i1 %263, label %264, label %565

264:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %265 unwind label %308

265:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #12
  %266 = load ptr, ptr %12, align 8, !tbaa !5
  %267 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 4
  %268 = load ptr, ptr %267, align 8, !tbaa !46
  %269 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 5
  %270 = load ptr, ptr %269, align 8, !tbaa !47
  %271 = load ptr, ptr %15, align 8, !tbaa !5
  %272 = load ptr, ptr %16, align 8, !tbaa !5
  %273 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %266, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull align 8 dereferenceable(400) %270, ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %274 unwind label %312

274:                                              ; preds = %265
  store ptr %273, ptr %34, align 8, !tbaa !5
  %275 = icmp ne ptr %273, null
  br i1 %275, label %276, label %559

276:                                              ; preds = %274
  br label %277

277:                                              ; preds = %276
  %278 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %279 unwind label %312

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

280:                                              ; preds = %279
  %281 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %281, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %283 unwind label %312

283:                                              ; preds = %280
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef @.str.199)
          to label %285 unwind label %312

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %287 unwind label %312

287:                                              ; preds = %285
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef @.str.200)
          to label %289 unwind label %312

289:                                              ; preds = %287
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef @_ZSt3decRSt8ios_base)
          to label %291 unwind label %312

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %293 unwind label %312

293:                                              ; preds = %291
  br label %316

294:                                              ; preds = %240
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %26, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %27, align 4
  br label %307

298:                                              ; preds = %249
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %26, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %27, align 4
  br label %306

302:                                              ; preds = %259
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %26, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  br label %306

306:                                              ; preds = %302, %298
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #12
  br label %307

307:                                              ; preds = %306, %294
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #12
  br label %2426

308:                                              ; preds = %264
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %26, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %27, align 4
  br label %564

312:                                              ; preds = %291, %289, %287, %285, %283, %280, %277, %265
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %26, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %27, align 4
  br label %563

316:                                              ; preds = %293, %279
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #12
  %319 = load ptr, ptr %12, align 8, !tbaa !5
  %320 = load ptr, ptr %34, align 8, !tbaa !5
  %321 = load ptr, ptr %15, align 8, !tbaa !5
  %322 = load i32, ptr %17, align 4, !tbaa !9
  %323 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(352) %320, ptr noundef nonnull align 8 dereferenceable(8) %321, i32 noundef %322)
          to label %324 unwind label %344

324:                                              ; preds = %318
  store ptr %323, ptr %35, align 8, !tbaa !5
  %325 = load ptr, ptr %35, align 8, !tbaa !5
  %326 = icmp ne ptr %325, null
  br i1 %326, label %327, label %554

327:                                              ; preds = %324
  %328 = load ptr, ptr %35, align 8, !tbaa !5
  %329 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %328)
          to label %330 unwind label %344

330:                                              ; preds = %327
  %331 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData8is_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %329)
          to label %332 unwind label %344

332:                                              ; preds = %330
  br i1 %331, label %333, label %348

333:                                              ; preds = %332
  %334 = load ptr, ptr %35, align 8, !tbaa !5
  %335 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %334)
          to label %336 unwind label %344

336:                                              ; preds = %333
  %337 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK3HIR8TypeData8as_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %335)
          to label %338 unwind label %344

338:                                              ; preds = %336
  %339 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData10Data_Infer6is_litEv(ptr noundef nonnull align 4 dereferenceable(8) %337)
          to label %340 unwind label %344

340:                                              ; preds = %338
  %341 = zext i1 %339 to i32
  %342 = icmp eq i32 %341, 0
  br i1 %342, label %343, label %348

343:                                              ; preds = %340
  store i1 false, ptr %10, align 1
  store i32 1, ptr %36, align 4
  br label %555

344:                                              ; preds = %338, %336, %333, %330, %327, %318
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %26, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %27, align 4
  br label %558

348:                                              ; preds = %340, %332
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #12
  %349 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 0
  %350 = load ptr, ptr %349, align 8, !tbaa !43
  %351 = load ptr, ptr %12, align 8, !tbaa !5
  %352 = getelementptr inbounds %"class.HIR::GenericPath", ptr %33, i32 0, i32 0
  %353 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %350, ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull align 8 dereferenceable(8) %352)
          to label %354 unwind label %407

354:                                              ; preds = %348
  store ptr %353, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #12
  %355 = load ptr, ptr %37, align 8, !tbaa !5
  %356 = getelementptr inbounds %"class.HIR::Trait", ptr %355, i32 0, i32 0
  invoke void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8 %38, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(96) %356)
          to label %357 unwind label %411

357:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #12
  store i8 0, ptr %39, align 1, !tbaa !13
  %358 = load ptr, ptr %12, align 8, !tbaa !5
  %359 = getelementptr inbounds %"class.HIR::GenericPath", ptr %33, i32 0, i32 0
  %360 = load ptr, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #12
  %361 = getelementptr inbounds %class.anon.666, ptr %41, i32 0, i32 0
  store ptr %39, ptr %361, align 8, !tbaa !5
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #12
  %362 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef %38, ptr noundef nonnull align 8 dereferenceable(8) %360, ptr noundef %40)
          to label %363 unwind label %415

363:                                              ; preds = %357
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #12
  %364 = load i8, ptr %39, align 1, !tbaa !13, !range !48, !noundef !49
  %365 = trunc i8 %364 to i1
  br i1 %365, label %366, label %507

366:                                              ; preds = %363
  br label %367

367:                                              ; preds = %366
  %368 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %369 unwind label %419

369:                                              ; preds = %367
  br i1 %368, label %370, label %427

370:                                              ; preds = %369
  %371 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %371, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %373 unwind label %419

373:                                              ; preds = %370
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef @.str.201)
          to label %375 unwind label %419

375:                                              ; preds = %373
  %376 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 4
  %377 = load ptr, ptr %376, align 8, !tbaa !46
  %378 = getelementptr inbounds %"class.HIR::GenericPath", ptr %377, i32 0, i32 0
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull align 8 dereferenceable(8) %378)
          to label %380 unwind label %419

380:                                              ; preds = %375
  %381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(8) %379, ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %382 unwind label %419

382:                                              ; preds = %380
  %383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %381, ptr noundef @.str.202)
          to label %384 unwind label %419

384:                                              ; preds = %382
  %385 = load ptr, ptr %35, align 8, !tbaa !5
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %385)
          to label %387 unwind label %419

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

389:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #12
  %390 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 2
  %391 = load ptr, ptr %390, align 8, !tbaa !15
  %392 = load ptr, ptr %35, align 8, !tbaa !5
  %393 = invoke { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49) %391, ptr noundef nonnull align 8 dereferenceable(8) %392)
          to label %394 unwind label %423

394:                                              ; preds = %389
  %395 = getelementptr inbounds { ptr, ptr }, ptr %42, i32 0, i32 0
  %396 = extractvalue { ptr, ptr } %393, 0
  store ptr %396, ptr %395, align 8
  %397 = getelementptr inbounds { ptr, ptr }, ptr %42, i32 0, i32 1
  %398 = extractvalue { ptr, ptr } %393, 1
  store ptr %398, ptr %397, align 8
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRKN16HMTypeInferrence7FmtTypeE(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %400 unwind label %423

400:                                              ; preds = %394
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef @.str.37)
          to label %402 unwind label %423

402:                                              ; preds = %400
  %403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %401, ptr noundef @_ZSt3decRSt8ios_base)
          to label %404 unwind label %423

404:                                              ; preds = %402
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %403, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %406 unwind label %423

406:                                              ; preds = %404
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #12
  br label %427

407:                                              ; preds = %348
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %26, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %27, align 4
  br label %553

411:                                              ; preds = %354
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %26, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %27, align 4
  br label %552

415:                                              ; preds = %357
  %416 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %26, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #12
  br label %512

419:                                              ; preds = %457, %455, %451, %449, %446, %443, %387, %384, %382, %380, %375, %373, %370, %367
  %420 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %26, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %27, align 4
  br label %512

423:                                              ; preds = %404, %402, %400, %394, %389
  %424 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %26, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #12
  br label %512

427:                                              ; preds = %406, %369
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  %430 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %43) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %44) #12
  %431 = load ptr, ptr %35, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %431)
          to label %432 unwind label %460

432:                                              ; preds = %429
  %433 = getelementptr inbounds %"class.HIR::GenericPath", ptr %33, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %433)
          to label %434 unwind label %464

434:                                              ; preds = %432
  invoke void @_ZN3HIR10PathParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %435 unwind label %468

435:                                              ; preds = %434
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef %47, ptr noundef %48)
          to label %436 unwind label %472

436:                                              ; preds = %435
  %437 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %437)
          to label %438 unwind label %476

438:                                              ; preds = %436
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %439 unwind label %480

439:                                              ; preds = %438
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %44, ptr noundef %45, ptr noundef %46, ptr noundef %49, ptr noundef %50)
          to label %440 unwind label %484

440:                                              ; preds = %439
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %43, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %44)
          to label %441 unwind label %488

441:                                              ; preds = %440
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %430, ptr noundef nonnull align 8 dereferenceable(96) %43)
          to label %442 unwind label %492

442:                                              ; preds = %441
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %43) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #12
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #12
  br label %443

443:                                              ; preds = %442
  %444 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %445 unwind label %419

445:                                              ; preds = %443
  br i1 %444, label %446, label %504

446:                                              ; preds = %445
  %447 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %447, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %449 unwind label %419

449:                                              ; preds = %446
  %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.204)
          to label %451 unwind label %419

451:                                              ; preds = %449
  %452 = load ptr, ptr %19, align 8, !tbaa !5
  %453 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %452) #12
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef nonnull align 8 dereferenceable(96) %453)
          to label %455 unwind label %419

455:                                              ; preds = %451
  %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 %419

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 %419

459:                                              ; preds = %457
  br label %504

460:                                              ; preds = %429
  %461 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %26, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %27, align 4
  br label %503

464:                                              ; preds = %432
  %465 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %26, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %27, align 4
  br label %502

468:                                              ; preds = %434
  %469 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %26, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %27, align 4
  br label %501

472:                                              ; preds = %435
  %473 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %26, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %27, align 4
  br label %500

476:                                              ; preds = %436
  %477 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %26, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %27, align 4
  br label %499

480:                                              ; preds = %438
  %481 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %26, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %27, align 4
  br label %498

484:                                              ; preds = %439
  %485 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %26, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %27, align 4
  br label %497

488:                                              ; preds = %440
  %489 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %26, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %27, align 4
  br label %496

492:                                              ; preds = %441
  %493 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %26, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %43) #12
  br label %496

496:                                              ; preds = %492, %488
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #12
  br label %497

497:                                              ; preds = %496, %484
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #12
  br label %498

498:                                              ; preds = %497, %480
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #12
  br label %499

499:                                              ; preds = %498, %476
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #12
  br label %500

500:                                              ; preds = %499, %472
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #12
  br label %501

501:                                              ; preds = %500, %468
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #12
  br label %502

502:                                              ; preds = %501, %464
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  br label %503

503:                                              ; preds = %502, %460
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #12
  br label %512

504:                                              ; preds = %459, %445
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  store i1 true, ptr %10, align 1
  store i32 1, ptr %36, align 4
  br label %509

507:                                              ; preds = %363
  br label %508

508:                                              ; preds = %507
  store i32 0, ptr %36, align 4
  br label %509

509:                                              ; preds = %508, %506
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #12
  %510 = load i32, ptr %36, align 4
  switch i32 %510, label %548 [
    i32 0, label %511
  ]

511:                                              ; preds = %509
  br label %547

512:                                              ; preds = %503, %423, %419, %415
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #12
  br label %513

513:                                              ; preds = %512
  %514 = load i32, ptr %27, align 4
  %515 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN15TraitResolution17RecursionDetectedE) #12
  %516 = icmp eq i32 %514, %515
  br i1 %516, label %517, label %551

517:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #12
  %518 = load ptr, ptr %26, align 8
  %519 = call ptr @__cxa_begin_catch(ptr %518) #12
  store ptr %519, ptr %51, align 8
  br label %520

520:                                              ; preds = %517
  %521 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %522 unwind label %533

522:                                              ; preds = %520
  br i1 %521, label %523, label %537

523:                                              ; preds = %522
  %524 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %524, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %526 unwind label %533

526:                                              ; preds = %523
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %525, ptr noundef @.str.205)
          to label %528 unwind label %533

528:                                              ; preds = %526
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef @_ZSt3decRSt8ios_base)
          to label %530 unwind label %533

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %529, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %532 unwind label %533

532:                                              ; preds = %530
  br label %537

533:                                              ; preds = %530, %528, %526, %523, %520
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %26, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %27, align 4
  invoke void @__cxa_end_catch()
          to label %545 unwind label %2434

537:                                              ; preds = %532, %522
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  store i1 false, ptr %10, align 1
  store i32 1, ptr %36, align 4
  invoke void @__cxa_end_catch()
          to label %540 unwind label %541

540:                                              ; preds = %539
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #12
  br label %548

541:                                              ; preds = %539
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %26, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %27, align 4
  br label %546

545:                                              ; preds = %533
  br label %546

546:                                              ; preds = %545, %541
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #12
  br label %551

547:                                              ; preds = %511
  store i32 0, ptr %36, align 4
  br label %548

548:                                              ; preds = %547, %540, %509
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #12
  %549 = load i32, ptr %36, align 4
  switch i32 %549, label %555 [
    i32 0, label %550
  ]

550:                                              ; preds = %548
  br label %554

551:                                              ; preds = %546, %513
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #12
  br label %552

552:                                              ; preds = %551, %411
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #12
  br label %553

553:                                              ; preds = %552, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #12
  br label %558

554:                                              ; preds = %550, %324
  store i32 0, ptr %36, align 4
  br label %555

555:                                              ; preds = %554, %548, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #12
  %556 = load i32, ptr %36, align 4
  switch i32 %556, label %560 [
    i32 0, label %557
  ]

557:                                              ; preds = %555
  br label %559

558:                                              ; preds = %553, %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #12
  br label %563

559:                                              ; preds = %557, %274
  store i32 0, ptr %36, align 4
  br label %560

560:                                              ; preds = %559, %555
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #12
  %561 = load i32, ptr %36, align 4
  switch i32 %561, label %2424 [
    i32 0, label %562
  ]

562:                                              ; preds = %560
  br label %565

563:                                              ; preds = %558, %312
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  br label %564

564:                                              ; preds = %563, %308
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #12
  br label %2426

565:                                              ; preds = %562, %260
  br label %566

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

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

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

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.206)
          to label %574 unwind label %234

574:                                              ; preds = %572
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %573, ptr noundef @_ZSt3decRSt8ios_base)
          to label %576 unwind label %234

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %578 unwind label %234

578:                                              ; preds = %576
  br label %579

579:                                              ; preds = %578, %568
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #12
  %582 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 4
  store ptr %582, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #12
  %583 = load ptr, ptr %52, align 8, !tbaa !5
  %584 = invoke ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE5beginEv(ptr noundef nonnull align 8 dereferenceable(25) %583)
          to label %585 unwind label %597

585:                                              ; preds = %581
  %586 = getelementptr inbounds %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", ptr %53, i32 0, i32 0
  %587 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.224", ptr %586, i32 0, i32 0
  store ptr %584, ptr %587, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #12
  %588 = load ptr, ptr %52, align 8, !tbaa !5
  %589 = invoke ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE3endEv(ptr noundef nonnull align 8 dereferenceable(25) %588)
          to label %590 unwind label %601

590:                                              ; preds = %585
  %591 = getelementptr inbounds %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", ptr %54, i32 0, i32 0
  %592 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.224", ptr %591, i32 0, i32 0
  store ptr %589, ptr %592, align 8
  br label %593

593:                                              ; preds = %984, %590
  %594 = invoke noundef zeroext i1 @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratorneERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %595 unwind label %601

595:                                              ; preds = %593
  br i1 %594, label %605, label %596

596:                                              ; preds = %595
  store i32 14, ptr %36, align 4
  br label %989

597:                                              ; preds = %581
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %26, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %27, align 4
  br label %992

601:                                              ; preds = %982, %593, %585
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %26, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %27, align 4
  br label %991

605:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #12
  %606 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %607 unwind label %622

607:                                              ; preds = %605
  store ptr %606, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #12
  %608 = load ptr, ptr %55, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.std::pair.225", ptr %608, i32 0, i32 0
  %610 = getelementptr inbounds %"struct.std::pair.227", ptr %609, i32 0, i32 0
  store ptr %610, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #12
  %611 = load ptr, ptr %55, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.std::pair.225", ptr %611, i32 0, i32 0
  %613 = getelementptr inbounds %"struct.std::pair.227", ptr %612, i32 0, i32 1
  store ptr %613, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #12
  %614 = load ptr, ptr %55, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.std::pair.225", ptr %614, i32 0, i32 1
  store ptr %615, ptr %58, align 8, !tbaa !5
  %616 = load ptr, ptr %58, align 8, !tbaa !5
  %617 = getelementptr inbounds %"struct.TraitResolveCommon::CachedBound", ptr %616, i32 0, i32 1
  %618 = load ptr, ptr %617, align 8, !tbaa !50
  %619 = icmp ne ptr %618, null
  br i1 %619, label %620, label %621

620:                                              ; preds = %607
  br label %627

621:                                              ; preds = %607
  call void @__assert_fail(ptr noundef @.str.207, ptr noundef @.str.7, i32 noundef 4826, ptr noundef @__PRETTY_FUNCTION__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE) #13
  unreachable

622:                                              ; preds = %605
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %26, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %27, align 4
  br label %988

626:                                              ; No predecessors!
  br label %627

627:                                              ; preds = %626, %620
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %628 unwind label %658

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #12
  %629 = load ptr, ptr %12, align 8, !tbaa !5
  %630 = load ptr, ptr %57, align 8, !tbaa !5
  %631 = load ptr, ptr %58, align 8, !tbaa !5
  %632 = getelementptr inbounds %"struct.TraitResolveCommon::CachedBound", ptr %631, i32 0, i32 1
  %633 = load ptr, ptr %632, align 8, !tbaa !50
  %634 = load ptr, ptr %56, align 8, !tbaa !5
  %635 = load ptr, ptr %16, align 8, !tbaa !5
  %636 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef nonnull align 8 dereferenceable(32) %630, ptr noundef nonnull align 8 dereferenceable(400) %633, ptr noundef nonnull align 8 dereferenceable(8) %634, ptr noundef nonnull align 8 dereferenceable(8) %635, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %637 unwind label %662

637:                                              ; preds = %628
  store ptr %636, ptr %60, align 8, !tbaa !5
  %638 = icmp ne ptr %636, null
  br i1 %638, label %669, label %639

639:                                              ; preds = %637
  br label %640

640:                                              ; preds = %639
  %641 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %642 unwind label %662

642:                                              ; preds = %640
  br i1 %641, label %643, label %666

643:                                              ; preds = %642
  %644 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %644, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %646 unwind label %662

646:                                              ; preds = %643
  %647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %645, ptr noundef @.str.208)
          to label %648 unwind label %662

648:                                              ; preds = %646
  %649 = load ptr, ptr %16, align 8, !tbaa !5
  %650 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %647, ptr noundef nonnull align 8 dereferenceable(8) %649)
          to label %651 unwind label %662

651:                                              ; preds = %648
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %650, ptr noundef @.str.209)
          to label %653 unwind label %662

653:                                              ; preds = %651
  %654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef @_ZSt3decRSt8ios_base)
          to label %655 unwind label %662

655:                                              ; preds = %653
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %657 unwind label %662

657:                                              ; preds = %655
  br label %666

658:                                              ; preds = %627
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %26, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %27, align 4
  br label %987

662:                                              ; preds = %684, %682, %680, %678, %676, %673, %670, %655, %653, %651, %648, %646, %643, %640, %628
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %26, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %27, align 4
  br label %986

666:                                              ; preds = %657, %642
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  store i32 15, ptr %36, align 4
  br label %976

669:                                              ; preds = %637
  br label %670

670:                                              ; preds = %669
  %671 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %672 unwind label %662

672:                                              ; preds = %670
  br i1 %671, label %673, label %687

673:                                              ; preds = %672
  %674 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %674, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %676 unwind label %662

676:                                              ; preds = %673
  %677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %675, ptr noundef @.str.199)
          to label %678 unwind label %662

678:                                              ; preds = %676
  %679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %677, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %680 unwind label %662

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 @.str.210)
          to label %682 unwind label %662

682:                                              ; preds = %680
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %681, ptr noundef @_ZSt3decRSt8ios_base)
          to label %684 unwind label %662

684:                                              ; preds = %682
  %685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %683, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %686 unwind label %662

686:                                              ; preds = %684
  br label %687

687:                                              ; preds = %686, %672
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #12
  %690 = load ptr, ptr %12, align 8, !tbaa !5
  %691 = load ptr, ptr %60, align 8, !tbaa !5
  %692 = load ptr, ptr %15, align 8, !tbaa !5
  %693 = load i32, ptr %17, align 4, !tbaa !9
  %694 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %690, ptr noundef nonnull align 8 dereferenceable(352) %691, ptr noundef nonnull align 8 dereferenceable(8) %692, i32 noundef %693)
          to label %695 unwind label %720

695:                                              ; preds = %689
  store ptr %694, ptr %61, align 8, !tbaa !5
  %696 = load ptr, ptr %61, align 8, !tbaa !5
  %697 = icmp ne ptr %696, null
  br i1 %697, label %698, label %955

698:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #12
  call void @llvm.lifetime.start.p0(i64 96, ptr %63) #12
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 96, i1 false)
  invoke void @_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN18MonomorphEraseHrlsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %63)
          to label %699 unwind label %724

699:                                              ; preds = %698
  %700 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8 %62, ptr noundef nonnull align 8 dereferenceable(96) %63, ptr noundef nonnull align 8 dereferenceable(8) %700, ptr noundef nonnull align 8 dereferenceable(32) %59, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %701 unwind label %728

701:                                              ; preds = %699
  %702 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %703 unwind label %732

703:                                              ; preds = %701
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %63) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #12
  %704 = load ptr, ptr %61, align 8, !tbaa !5
  %705 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %704)
          to label %706 unwind label %720

706:                                              ; preds = %703
  %707 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData8is_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %705)
          to label %708 unwind label %720

708:                                              ; preds = %706
  br i1 %707, label %709, label %738

709:                                              ; preds = %708
  %710 = load ptr, ptr %61, align 8, !tbaa !5
  %711 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %710)
          to label %712 unwind label %720

712:                                              ; preds = %709
  %713 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK3HIR8TypeData8as_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %711)
          to label %714 unwind label %720

714:                                              ; preds = %712
  %715 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData10Data_Infer6is_litEv(ptr noundef nonnull align 4 dereferenceable(8) %713)
          to label %716 unwind label %720

716:                                              ; preds = %714
  %717 = zext i1 %715 to i32
  %718 = icmp eq i32 %717, 0
  br i1 %718, label %719, label %738

719:                                              ; preds = %716
  store i1 false, ptr %10, align 1
  store i32 1, ptr %36, align 4
  br label %973

720:                                              ; preds = %966, %964, %962, %959, %956, %714, %712, %709, %706, %703, %689
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %26, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %27, align 4
  br label %985

724:                                              ; preds = %698
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %26, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %27, align 4
  br label %737

728:                                              ; preds = %699
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %26, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %27, align 4
  br label %736

732:                                              ; preds = %701
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %26, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %27, align 4
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  br label %736

736:                                              ; preds = %732, %728
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %63) #12
  br label %737

737:                                              ; preds = %736, %724
  call void @llvm.lifetime.end.p0(i64 96, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #12
  br label %985

738:                                              ; preds = %716, %708
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %739 = load ptr, ptr %61, align 8, !tbaa !5
  %740 = load ptr, ptr %12, align 8, !tbaa !5
  %741 = load ptr, ptr %56, align 8, !tbaa !5
  %742 = invoke noundef i32 @_ZNK3HIR7TypeRef25compare_with_placeholdersERK4SpanRKS0_RKNS_19ResolvePlaceholdersE(ptr noundef nonnull align 8 dereferenceable(8) %739, ptr noundef nonnull align 8 dereferenceable(8) %740, ptr noundef nonnull align 8 dereferenceable(8) %741, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %743 unwind label %780

743:                                              ; preds = %738
  store i32 %742, ptr %64, align 4, !tbaa !74
  %744 = load i32, ptr %64, align 4, !tbaa !74
  %745 = icmp eq i32 %744, 0
  br i1 %745, label %746, label %825

746:                                              ; preds = %743
  %747 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %65) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %66) #12
  %748 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %68, i32 0, i32 0
  %749 = load ptr, ptr %61, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %748, ptr noundef nonnull align 8 dereferenceable(8) %749)
          to label %750 unwind label %784

750:                                              ; preds = %746
  %751 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %68, i32 0, i32 1
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %751, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %752 unwind label %788

752:                                              ; preds = %750
  %753 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %68, i32 0, i32 2
  %754 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %753, ptr noundef nonnull align 8 dereferenceable(8) %754)
          to label %755 unwind label %792

755:                                              ; preds = %752
  %756 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %68, i32 0, i32 3
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %756)
          to label %757 unwind label %796

757:                                              ; preds = %755
  %758 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %68, i32 0, i32 4
  call void @_ZNSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %758) #12
  invoke void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind writable sret(%"class.HIR::Path::Data") align 8 %67, ptr noundef %68)
          to label %759 unwind label %802

759:                                              ; preds = %757
  invoke void @_ZN3HIR4PathC2ENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(88) %66, ptr noundef %67)
          to label %760 unwind label %806

760:                                              ; preds = %759
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %65, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %66)
          to label %761 unwind label %810

761:                                              ; preds = %760
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %747, ptr noundef nonnull align 8 dereferenceable(96) %65)
          to label %762 unwind label %814

762:                                              ; preds = %761
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %65) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #12
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %67) #12
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %68) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %66) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %65) #12
  br label %763

763:                                              ; preds = %762
  %764 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %765 unwind label %780

765:                                              ; preds = %763
  br i1 %764, label %766, label %822

766:                                              ; preds = %765
  %767 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %768 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %767, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %769 unwind label %780

769:                                              ; preds = %766
  %770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %768, ptr noundef @.str.204)
          to label %771 unwind label %780

771:                                              ; preds = %769
  %772 = load ptr, ptr %19, align 8, !tbaa !5
  %773 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %772) #12
  %774 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %770, ptr noundef nonnull align 8 dereferenceable(96) %773)
          to label %775 unwind label %780

775:                                              ; preds = %771
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %774, ptr noundef @_ZSt3decRSt8ios_base)
          to label %777 unwind label %780

777:                                              ; preds = %775
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %776, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %779 unwind label %780

779:                                              ; preds = %777
  br label %822

780:                                              ; preds = %946, %944, %941, %939, %936, %934, %931, %928, %883, %881, %877, %875, %872, %869, %847, %845, %842, %840, %837, %835, %832, %829, %777, %775, %771, %769, %766, %763, %738
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %26, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %27, align 4
  br label %954

784:                                              ; preds = %746
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %26, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %27, align 4
  br label %821

788:                                              ; preds = %750
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %26, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %27, align 4
  br label %801

792:                                              ; preds = %752
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %26, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %27, align 4
  br label %800

796:                                              ; preds = %755
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %26, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %27, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %753) #12
  br label %800

800:                                              ; preds = %796, %792
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %751) #12
  br label %801

801:                                              ; preds = %800, %788
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %748) #12
  br label %821

802:                                              ; preds = %757
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %26, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %27, align 4
  br label %820

806:                                              ; preds = %759
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %26, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %27, align 4
  br label %819

810:                                              ; preds = %760
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %26, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %27, align 4
  br label %818

814:                                              ; preds = %761
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %26, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %65) #12
  br label %818

818:                                              ; preds = %814, %810
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #12
  br label %819

819:                                              ; preds = %818, %806
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %67) #12
  br label %820

820:                                              ; preds = %819, %802
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %68) #12
  br label %821

821:                                              ; preds = %820, %801, %784
  call void @llvm.lifetime.end.p0(i64 88, ptr %66) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %65) #12
  br label %954

822:                                              ; preds = %779, %765
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  store i8 1, ptr %20, align 1, !tbaa !13
  br label %953

825:                                              ; preds = %743
  %826 = load i32, ptr %64, align 4, !tbaa !74
  %827 = icmp eq i32 %826, 1
  br i1 %827, label %828, label %927

828:                                              ; preds = %825
  br label %829

829:                                              ; preds = %828
  %830 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %831 unwind label %780

831:                                              ; preds = %829
  br i1 %830, label %832, label %850

832:                                              ; preds = %831
  %833 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %833, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %835 unwind label %780

835:                                              ; preds = %832
  %836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %834, ptr noundef @.str.211)
          to label %837 unwind label %780

837:                                              ; preds = %835
  %838 = load ptr, ptr %61, align 8, !tbaa !5
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %836, ptr noundef nonnull align 8 dereferenceable(8) %838)
          to label %840 unwind label %780

840:                                              ; preds = %837
  %841 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %839, ptr noundef @.str.135)
          to label %842 unwind label %780

842:                                              ; preds = %840
  %843 = load ptr, ptr %56, align 8, !tbaa !5
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %841, ptr noundef nonnull align 8 dereferenceable(8) %843)
          to label %845 unwind label %780

845:                                              ; preds = %842
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %844, ptr noundef @_ZSt3decRSt8ios_base)
          to label %847 unwind label %780

847:                                              ; preds = %845
  %848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %846, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %849 unwind label %780

849:                                              ; preds = %847
  br label %850

850:                                              ; preds = %849, %831
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  %853 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %69) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %70) #12
  %854 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %72, i32 0, i32 0
  %855 = load ptr, ptr %61, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %854, ptr noundef nonnull align 8 dereferenceable(8) %855)
          to label %856 unwind label %886

856:                                              ; preds = %852
  %857 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %72, i32 0, i32 1
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %857, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %858 unwind label %890

858:                                              ; preds = %856
  %859 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %72, i32 0, i32 2
  %860 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull align 8 dereferenceable(8) %860)
          to label %861 unwind label %894

861:                                              ; preds = %858
  %862 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %72, i32 0, i32 3
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %862)
          to label %863 unwind label %898

863:                                              ; preds = %861
  %864 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %72, i32 0, i32 4
  call void @_ZNSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %864) #12
  invoke void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind writable sret(%"class.HIR::Path::Data") align 8 %71, ptr noundef %72)
          to label %865 unwind label %904

865:                                              ; preds = %863
  invoke void @_ZN3HIR4PathC2ENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(88) %70, ptr noundef %71)
          to label %866 unwind label %908

866:                                              ; preds = %865
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %69, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %70)
          to label %867 unwind label %912

867:                                              ; preds = %866
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %853, ptr noundef nonnull align 8 dereferenceable(96) %69)
          to label %868 unwind label %916

868:                                              ; preds = %867
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %69) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #12
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %71) #12
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %72) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %69) #12
  br label %869

869:                                              ; preds = %868
  %870 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %871 unwind label %780

871:                                              ; preds = %869
  br i1 %870, label %872, label %924

872:                                              ; preds = %871
  %873 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %873, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %875 unwind label %780

875:                                              ; preds = %872
  %876 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef @.str.204)
          to label %877 unwind label %780

877:                                              ; preds = %875
  %878 = load ptr, ptr %19, align 8, !tbaa !5
  %879 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %878) #12
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %876, ptr noundef nonnull align 8 dereferenceable(96) %879)
          to label %881 unwind label %780

881:                                              ; preds = %877
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %880, ptr noundef @_ZSt3decRSt8ios_base)
          to label %883 unwind label %780

883:                                              ; preds = %881
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %882, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %885 unwind label %780

885:                                              ; preds = %883
  br label %924

886:                                              ; preds = %852
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %26, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %27, align 4
  br label %923

890:                                              ; preds = %856
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %26, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %27, align 4
  br label %903

894:                                              ; preds = %858
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %26, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %27, align 4
  br label %902

898:                                              ; preds = %861
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %26, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %27, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %859) #12
  br label %902

902:                                              ; preds = %898, %894
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %857) #12
  br label %903

903:                                              ; preds = %902, %890
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %854) #12
  br label %923

904:                                              ; preds = %863
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %26, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %27, align 4
  br label %922

908:                                              ; preds = %865
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %26, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %27, align 4
  br label %921

912:                                              ; preds = %866
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %26, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %27, align 4
  br label %920

916:                                              ; preds = %867
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %26, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %69) #12
  br label %920

920:                                              ; preds = %916, %912
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #12
  br label %921

921:                                              ; preds = %920, %908
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %71) #12
  br label %922

922:                                              ; preds = %921, %904
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %72) #12
  br label %923

923:                                              ; preds = %922, %903, %886
  call void @llvm.lifetime.end.p0(i64 88, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %69) #12
  br label %954

924:                                              ; preds = %885, %871
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  store i8 1, ptr %20, align 1, !tbaa !13
  br label %952

927:                                              ; preds = %825
  br label %928

928:                                              ; preds = %927
  %929 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %930 unwind label %780

930:                                              ; preds = %928
  br i1 %929, label %931, label %949

931:                                              ; preds = %930
  %932 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %933 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %932, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %934 unwind label %780

934:                                              ; preds = %931
  %935 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %933, ptr noundef @.str.212)
          to label %936 unwind label %780

936:                                              ; preds = %934
  %937 = load ptr, ptr %61, align 8, !tbaa !5
  %938 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %935, ptr noundef nonnull align 8 dereferenceable(8) %937)
          to label %939 unwind label %780

939:                                              ; preds = %936
  %940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %938, ptr noundef @.str.135)
          to label %941 unwind label %780

941:                                              ; preds = %939
  %942 = load ptr, ptr %56, align 8, !tbaa !5
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %940, ptr noundef nonnull align 8 dereferenceable(8) %942)
          to label %944 unwind label %780

944:                                              ; preds = %941
  %945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %943, ptr noundef @_ZSt3decRSt8ios_base)
          to label %946 unwind label %780

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %945, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %948 unwind label %780

948:                                              ; preds = %946
  br label %949

949:                                              ; preds = %948, %930
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951, %926
  br label %953

953:                                              ; preds = %952, %824
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %972

954:                                              ; preds = %923, %821, %780
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %985

955:                                              ; preds = %695
  br label %956

956:                                              ; preds = %955
  %957 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %958 unwind label %720

958:                                              ; preds = %956
  br i1 %957, label %959, label %969

959:                                              ; preds = %958
  %960 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %960, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %962 unwind label %720

962:                                              ; preds = %959
  %963 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %961, ptr noundef @.str.213)
          to label %964 unwind label %720

964:                                              ; preds = %962
  %965 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %963, ptr noundef @_ZSt3decRSt8ios_base)
          to label %966 unwind label %720

966:                                              ; preds = %964
  %967 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %965, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %968 unwind label %720

968:                                              ; preds = %966
  br label %969

969:                                              ; preds = %968, %958
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %971, %953
  store i32 0, ptr %36, align 4
  br label %973

973:                                              ; preds = %972, %719
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #12
  %974 = load i32, ptr %36, align 4
  switch i32 %974, label %976 [
    i32 0, label %975
  ]

975:                                              ; preds = %973
  store i32 0, ptr %36, align 4
  br label %976

976:                                              ; preds = %975, %973, %668
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #12
  %977 = load i32, ptr %36, align 4
  switch i32 %977, label %979 [
    i32 0, label %978
  ]

978:                                              ; preds = %976
  store i32 0, ptr %36, align 4
  br label %979

979:                                              ; preds = %978, %976
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #12
  %980 = load i32, ptr %36, align 4
  switch i32 %980, label %989 [
    i32 0, label %981
    i32 15, label %982
  ]

981:                                              ; preds = %979
  br label %982

982:                                              ; preds = %981, %979
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %984 unwind label %601

984:                                              ; preds = %982
  br label %593

985:                                              ; preds = %954, %737, %720
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #12
  br label %986

986:                                              ; preds = %985, %662
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  br label %987

987:                                              ; preds = %986, %658
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #12
  br label %988

988:                                              ; preds = %987, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #12
  br label %991

989:                                              ; preds = %979, %596
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  %990 = load i32, ptr %36, align 4
  switch i32 %990, label %2424 [
    i32 14, label %993
  ]

991:                                              ; preds = %988, %601
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  br label %992

992:                                              ; preds = %991, %597
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  br label %2426

993:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 16, ptr %73) #12
  %994 = getelementptr inbounds %class.anon.667, ptr %73, i32 0, i32 0
  store ptr %192, ptr %994, align 8, !tbaa !76
  %995 = getelementptr inbounds %class.anon.667, ptr %73, i32 0, i32 1
  %996 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %995, ptr noundef nonnull align 8 dereferenceable(8) %996)
          to label %997 unwind label %1011

997:                                              ; preds = %993
  br label %998

998:                                              ; preds = %997
  %999 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1000 unwind label %1015

1000:                                             ; preds = %998
  br i1 %999, label %1001, label %1019

1001:                                             ; preds = %1000
  %1002 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1002, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1004 unwind label %1015

1004:                                             ; preds = %1001
  %1005 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1003, ptr noundef @.str.214)
          to label %1006 unwind label %1015

1006:                                             ; preds = %1004
  %1007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1005, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1008 unwind label %1015

1008:                                             ; preds = %1006
  %1009 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1007, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1010 unwind label %1015

1010:                                             ; preds = %1008
  br label %1019

1011:                                             ; preds = %993
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %26, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %27, align 4
  br label %2423

1015:                                             ; preds = %2055, %2053, %2051, %2048, %2045, %1008, %1006, %1004, %1001, %998
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %26, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %27, align 4
  br label %2422

1019:                                             ; preds = %1010, %1000
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #12
  %1022 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #12
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(1) %76) #12
  %1023 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(8) %1022, ptr noundef %75)
          to label %1024 unwind label %1072

1024:                                             ; preds = %1021
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #12
  store ptr %1023, ptr %74, align 8, !tbaa !5
  %1025 = load ptr, ptr %74, align 8, !tbaa !5
  %1026 = icmp ne ptr %1025, null
  br i1 %1026, label %1027, label %1197

1027:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #12
  %1028 = load ptr, ptr %74, align 8, !tbaa !5
  %1029 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1028)
          to label %1030 unwind label %1076

1030:                                             ; preds = %1027
  %1031 = invoke noundef nonnull align 8 dereferenceable(172) ptr @_ZNK3HIR8TypeData14as_TraitObjectEv(ptr noundef nonnull align 8 dereferenceable(184) %1029)
          to label %1032 unwind label %1076

1032:                                             ; preds = %1030
  store ptr %1031, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #12
  %1033 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 0
  %1034 = load ptr, ptr %1033, align 8, !tbaa !43
  %1035 = load ptr, ptr %12, align 8, !tbaa !5
  %1036 = load ptr, ptr %77, align 8, !tbaa !5
  %1037 = getelementptr inbounds %"struct.HIR::TypeData_TraitObject", ptr %1036, i32 0, i32 0
  %1038 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1037, i32 0, i32 1
  %1039 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1038, i32 0, i32 0
  %1040 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %1034, ptr noundef nonnull align 8 dereferenceable(8) %1035, ptr noundef nonnull align 8 dereferenceable(8) %1039)
          to label %1041 unwind label %1080

1041:                                             ; preds = %1032
  store ptr %1040, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #12
  store i8 0, ptr %79, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1042 unwind label %1084

1042:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #12
  %1043 = load ptr, ptr %12, align 8, !tbaa !5
  %1044 = load ptr, ptr %77, align 8, !tbaa !5
  %1045 = getelementptr inbounds %"struct.HIR::TypeData_TraitObject", ptr %1044, i32 0, i32 0
  %1046 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1045, i32 0, i32 1
  %1047 = load ptr, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %82)
          to label %1048 unwind label %1088

1048:                                             ; preds = %1042
  %1049 = load ptr, ptr %16, align 8, !tbaa !5
  %1050 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1043, ptr noundef nonnull align 8 dereferenceable(32) %1046, ptr noundef nonnull align 8 dereferenceable(400) %1047, ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %1049, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1051 unwind label %1092

1051:                                             ; preds = %1048
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #12
  store ptr %1050, ptr %81, align 8, !tbaa !5
  %1052 = load ptr, ptr %81, align 8, !tbaa !5
  %1053 = icmp ne ptr %1052, null
  br i1 %1053, label %1054, label %1183

1054:                                             ; preds = %1051
  br label %1055

1055:                                             ; preds = %1054
  %1056 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1057 unwind label %1097

1057:                                             ; preds = %1055
  br i1 %1056, label %1058, label %1101

1058:                                             ; preds = %1057
  %1059 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1060 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1059, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1061 unwind label %1097

1061:                                             ; preds = %1058
  %1062 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1060, ptr noundef @.str.199)
          to label %1063 unwind label %1097

1063:                                             ; preds = %1061
  %1064 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1062, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1065 unwind label %1097

1065:                                             ; preds = %1063
  %1066 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1064, ptr noundef @.str.215)
          to label %1067 unwind label %1097

1067:                                             ; preds = %1065
  %1068 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1066, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1069 unwind label %1097

1069:                                             ; preds = %1067
  %1070 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1068, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1071 unwind label %1097

1071:                                             ; preds = %1069
  br label %1101

1072:                                             ; preds = %1021
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %26, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #12
  br label %1223

1076:                                             ; preds = %1030, %1027
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %26, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %27, align 4
  br label %1196

1080:                                             ; preds = %1032
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %26, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %27, align 4
  br label %1195

1084:                                             ; preds = %1041
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %26, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %27, align 4
  br label %1194

1088:                                             ; preds = %1042
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %26, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %27, align 4
  br label %1096

1092:                                             ; preds = %1048
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %26, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %27, align 4
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  br label %1096

1096:                                             ; preds = %1092, %1088
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #12
  br label %1189

1097:                                             ; preds = %1069, %1067, %1065, %1063, %1061, %1058, %1055
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %26, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %27, align 4
  br label %1189

1101:                                             ; preds = %1071, %1057
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #12
  %1104 = load ptr, ptr %12, align 8, !tbaa !5
  %1105 = load ptr, ptr %81, align 8, !tbaa !5
  %1106 = load ptr, ptr %15, align 8, !tbaa !5
  %1107 = load i32, ptr %17, align 4, !tbaa !9
  %1108 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1104, ptr noundef nonnull align 8 dereferenceable(352) %1105, ptr noundef nonnull align 8 dereferenceable(8) %1106, i32 noundef %1107)
          to label %1109 unwind label %1140

1109:                                             ; preds = %1103
  store ptr %1108, ptr %83, align 8, !tbaa !5
  %1110 = load ptr, ptr %83, align 8, !tbaa !5
  %1111 = icmp ne ptr %1110, null
  br i1 %1111, label %1112, label %1181

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %84) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %85) #12
  %1114 = load ptr, ptr %83, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %86, ptr noundef nonnull align 8 dereferenceable(8) %1114)
          to label %1115 unwind label %1144

1115:                                             ; preds = %1112
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1116 unwind label %1148

1116:                                             ; preds = %1115
  %1117 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %1117)
          to label %1118 unwind label %1152

1118:                                             ; preds = %1116
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %1119 unwind label %1156

1119:                                             ; preds = %1118
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %85, ptr noundef %86, ptr noundef %87, ptr noundef %88, ptr noundef %89)
          to label %1120 unwind label %1160

1120:                                             ; preds = %1119
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %84, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %85)
          to label %1121 unwind label %1164

1121:                                             ; preds = %1120
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %1113, ptr noundef nonnull align 8 dereferenceable(96) %84)
          to label %1122 unwind label %1168

1122:                                             ; preds = %1121
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %84) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %85) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %84) #12
  br label %1123

1123:                                             ; preds = %1122
  %1124 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1125 unwind label %1140

1125:                                             ; preds = %1123
  br i1 %1124, label %1126, label %1178

1126:                                             ; preds = %1125
  %1127 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1127, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1129 unwind label %1140

1129:                                             ; preds = %1126
  %1130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1128, ptr noundef @.str.204)
          to label %1131 unwind label %1140

1131:                                             ; preds = %1129
  %1132 = load ptr, ptr %19, align 8, !tbaa !5
  %1133 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1132) #12
  %1134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1130, ptr noundef nonnull align 8 dereferenceable(96) %1133)
          to label %1135 unwind label %1140

1135:                                             ; preds = %1131
  %1136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1134, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1137 unwind label %1140

1137:                                             ; preds = %1135
  %1138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1136, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1139 unwind label %1140

1139:                                             ; preds = %1137
  br label %1178

1140:                                             ; preds = %1137, %1135, %1131, %1129, %1126, %1123, %1103
  %1141 = landingpad { ptr, i32 }
          cleanup
  %1142 = extractvalue { ptr, i32 } %1141, 0
  store ptr %1142, ptr %26, align 8
  %1143 = extractvalue { ptr, i32 } %1141, 1
  store i32 %1143, ptr %27, align 4
  br label %1182

1144:                                             ; preds = %1112
  %1145 = landingpad { ptr, i32 }
          cleanup
  %1146 = extractvalue { ptr, i32 } %1145, 0
  store ptr %1146, ptr %26, align 8
  %1147 = extractvalue { ptr, i32 } %1145, 1
  store i32 %1147, ptr %27, align 4
  br label %1177

1148:                                             ; preds = %1115
  %1149 = landingpad { ptr, i32 }
          cleanup
  %1150 = extractvalue { ptr, i32 } %1149, 0
  store ptr %1150, ptr %26, align 8
  %1151 = extractvalue { ptr, i32 } %1149, 1
  store i32 %1151, ptr %27, align 4
  br label %1176

1152:                                             ; preds = %1116
  %1153 = landingpad { ptr, i32 }
          cleanup
  %1154 = extractvalue { ptr, i32 } %1153, 0
  store ptr %1154, ptr %26, align 8
  %1155 = extractvalue { ptr, i32 } %1153, 1
  store i32 %1155, ptr %27, align 4
  br label %1175

1156:                                             ; preds = %1118
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %26, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %27, align 4
  br label %1174

1160:                                             ; preds = %1119
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %26, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %27, align 4
  br label %1173

1164:                                             ; preds = %1120
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %26, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %27, align 4
  br label %1172

1168:                                             ; preds = %1121
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %26, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %84) #12
  br label %1172

1172:                                             ; preds = %1168, %1164
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #12
  br label %1173

1173:                                             ; preds = %1172, %1160
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #12
  br label %1174

1174:                                             ; preds = %1173, %1156
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #12
  br label %1175

1175:                                             ; preds = %1174, %1152
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #12
  br label %1176

1176:                                             ; preds = %1175, %1148
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #12
  br label %1177

1177:                                             ; preds = %1176, %1144
  call void @llvm.lifetime.end.p0(i64 88, ptr %85) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %84) #12
  br label %1182

1178:                                             ; preds = %1139, %1125
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  store i8 1, ptr %20, align 1, !tbaa !13
  store i8 1, ptr %79, align 1, !tbaa !13
  br label %1181

1181:                                             ; preds = %1180, %1109
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #12
  br label %1183

1182:                                             ; preds = %1177, %1140
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #12
  br label %1189

1183:                                             ; preds = %1181, %1051
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #12
  %1184 = load i8, ptr %79, align 1, !tbaa !13, !range !48, !noundef !49
  %1185 = trunc i8 %1184 to i1
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1183
  %1187 = load i8, ptr %20, align 1, !tbaa !13, !range !48, !noundef !49
  %1188 = trunc i8 %1187 to i1
  store i1 %1188, ptr %10, align 1
  store i32 1, ptr %36, align 4
  br label %1191

1189:                                             ; preds = %1182, %1097, %1096
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #12
  br label %1194

1190:                                             ; preds = %1183
  store i32 0, ptr %36, align 4
  br label %1191

1191:                                             ; preds = %1190, %1186
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #12
  %1192 = load i32, ptr %36, align 4
  switch i32 %1192, label %1198 [
    i32 0, label %1193
  ]

1193:                                             ; preds = %1191
  br label %1197

1194:                                             ; preds = %1189, %1084
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #12
  br label %1195

1195:                                             ; preds = %1194, %1080
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #12
  br label %1196

1196:                                             ; preds = %1195, %1076
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #12
  br label %1223

1197:                                             ; preds = %1193, %1024
  store i32 0, ptr %36, align 4
  br label %1198

1198:                                             ; preds = %1197, %1191
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #12
  %1199 = load i32, ptr %36, align 4
  switch i32 %1199, label %2421 [
    i32 0, label %1200
  ]

1200:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #12
  %1201 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #12
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 1 dereferenceable(1) %92) #12
  %1202 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(8) %1201, ptr noundef %91)
          to label %1203 unwind label %1224

1203:                                             ; preds = %1200
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #12
  store ptr %1202, ptr %90, align 8, !tbaa !5
  %1204 = load ptr, ptr %90, align 8, !tbaa !5
  %1205 = icmp ne ptr %1204, null
  br i1 %1205, label %1206, label %1382

1206:                                             ; preds = %1203
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #12
  %1207 = load ptr, ptr %90, align 8, !tbaa !5
  %1208 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1207)
          to label %1209 unwind label %1228

1209:                                             ; preds = %1206
  %1210 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZNK3HIR8TypeData13as_ErasedTypeEv(ptr noundef nonnull align 8 dereferenceable(184) %1208)
          to label %1211 unwind label %1228

1211:                                             ; preds = %1209
  store ptr %1210, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #12
  %1212 = load ptr, ptr %93, align 8, !tbaa !5
  %1213 = getelementptr inbounds %"struct.HIR::TypeData_ErasedType", ptr %1212, i32 0, i32 1
  store ptr %1213, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #12
  %1214 = load ptr, ptr %94, align 8, !tbaa !5
  %1215 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1214) #12
  %1216 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.154", ptr %95, i32 0, i32 0
  store ptr %1215, ptr %1216, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #12
  %1217 = load ptr, ptr %94, align 8, !tbaa !5
  %1218 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1217) #12
  %1219 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.154", ptr %96, i32 0, i32 0
  store ptr %1218, ptr %1219, align 8
  br label %1220

1220:                                             ; preds = %1375, %1211
  %1221 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #12
  br i1 %1221, label %1232, label %1222

1222:                                             ; preds = %1220
  store i32 36, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #12
  br label %1380

1223:                                             ; preds = %1196, %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #12
  br label %2422

1224:                                             ; preds = %1200
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %26, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #12
  br label %2058

1228:                                             ; preds = %1209, %1206
  %1229 = landingpad { ptr, i32 }
          cleanup
  %1230 = extractvalue { ptr, i32 } %1229, 0
  store ptr %1230, ptr %26, align 8
  %1231 = extractvalue { ptr, i32 } %1229, 1
  store i32 %1231, ptr %27, align 4
  br label %1381

1232:                                             ; preds = %1220
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #12
  %1233 = call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #12
  store ptr %1233, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #12
  %1234 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 0
  %1235 = load ptr, ptr %1234, align 8, !tbaa !43
  %1236 = load ptr, ptr %12, align 8, !tbaa !5
  %1237 = load ptr, ptr %97, align 8, !tbaa !5
  %1238 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1237, i32 0, i32 1
  %1239 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1238, i32 0, i32 0
  %1240 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %1235, ptr noundef nonnull align 8 dereferenceable(8) %1236, ptr noundef nonnull align 8 dereferenceable(8) %1239)
          to label %1241 unwind label %1271

1241:                                             ; preds = %1232
  store ptr %1240, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1242 unwind label %1275

1242:                                             ; preds = %1241
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #12
  %1243 = load ptr, ptr %12, align 8, !tbaa !5
  %1244 = load ptr, ptr %97, align 8, !tbaa !5
  %1245 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1244, i32 0, i32 1
  %1246 = load ptr, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %101)
          to label %1247 unwind label %1279

1247:                                             ; preds = %1242
  %1248 = load ptr, ptr %16, align 8, !tbaa !5
  %1249 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1243, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef nonnull align 8 dereferenceable(400) %1246, ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %1248, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1250 unwind label %1283

1250:                                             ; preds = %1247
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #12
  store ptr %1249, ptr %100, align 8, !tbaa !5
  %1251 = load ptr, ptr %100, align 8, !tbaa !5
  %1252 = icmp ne ptr %1251, null
  br i1 %1252, label %1253, label %1374

1253:                                             ; preds = %1250
  br label %1254

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

1256:                                             ; preds = %1254
  br i1 %1255, label %1257, label %1292

1257:                                             ; preds = %1256
  %1258 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1258, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1260 unwind label %1288

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

1262:                                             ; preds = %1260
  %1263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1261, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1264 unwind label %1288

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

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

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

1270:                                             ; preds = %1268
  br label %1292

1271:                                             ; preds = %1232
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %26, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %27, align 4
  br label %1379

1275:                                             ; preds = %1241
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %26, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %27, align 4
  br label %1378

1279:                                             ; preds = %1242
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %26, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %27, align 4
  br label %1287

1283:                                             ; preds = %1247
  %1284 = landingpad { ptr, i32 }
          cleanup
  %1285 = extractvalue { ptr, i32 } %1284, 0
  store ptr %1285, ptr %26, align 8
  %1286 = extractvalue { ptr, i32 } %1284, 1
  store i32 %1286, ptr %27, align 4
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #12
  br label %1287

1287:                                             ; preds = %1283, %1279
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #12
  br label %1377

1288:                                             ; preds = %1268, %1266, %1264, %1262, %1260, %1257, %1254
  %1289 = landingpad { ptr, i32 }
          cleanup
  %1290 = extractvalue { ptr, i32 } %1289, 0
  store ptr %1290, ptr %26, align 8
  %1291 = extractvalue { ptr, i32 } %1289, 1
  store i32 %1291, ptr %27, align 4
  br label %1377

1292:                                             ; preds = %1270, %1256
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #12
  %1295 = load ptr, ptr %12, align 8, !tbaa !5
  %1296 = load ptr, ptr %100, align 8, !tbaa !5
  %1297 = load ptr, ptr %15, align 8, !tbaa !5
  %1298 = load i32, ptr %17, align 4, !tbaa !9
  %1299 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1295, ptr noundef nonnull align 8 dereferenceable(352) %1296, ptr noundef nonnull align 8 dereferenceable(8) %1297, i32 noundef %1298)
          to label %1300 unwind label %1331

1300:                                             ; preds = %1294
  store ptr %1299, ptr %102, align 8, !tbaa !5
  %1301 = load ptr, ptr %102, align 8, !tbaa !5
  %1302 = icmp ne ptr %1301, null
  br i1 %1302, label %1303, label %1372

1303:                                             ; preds = %1300
  %1304 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %103) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %104) #12
  %1305 = load ptr, ptr %102, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %105, ptr noundef nonnull align 8 dereferenceable(8) %1305)
          to label %1306 unwind label %1335

1306:                                             ; preds = %1303
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1307 unwind label %1339

1307:                                             ; preds = %1306
  %1308 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %1308)
          to label %1309 unwind label %1343

1309:                                             ; preds = %1307
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %108)
          to label %1310 unwind label %1347

1310:                                             ; preds = %1309
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %104, ptr noundef %105, ptr noundef %106, ptr noundef %107, ptr noundef %108)
          to label %1311 unwind label %1351

1311:                                             ; preds = %1310
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %103, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %104)
          to label %1312 unwind label %1355

1312:                                             ; preds = %1311
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %1304, ptr noundef nonnull align 8 dereferenceable(96) %103)
          to label %1313 unwind label %1359

1313:                                             ; preds = %1312
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %103) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %104) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %104) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #12
  br label %1314

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

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

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

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.204)
          to label %1322 unwind label %1331

1322:                                             ; preds = %1320
  %1323 = load ptr, ptr %19, align 8, !tbaa !5
  %1324 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1323) #12
  %1325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1321, ptr noundef nonnull align 8 dereferenceable(96) %1324)
          to label %1326 unwind label %1331

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

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

1330:                                             ; preds = %1328
  br label %1369

1331:                                             ; preds = %1328, %1326, %1322, %1320, %1317, %1314, %1294
  %1332 = landingpad { ptr, i32 }
          cleanup
  %1333 = extractvalue { ptr, i32 } %1332, 0
  store ptr %1333, ptr %26, align 8
  %1334 = extractvalue { ptr, i32 } %1332, 1
  store i32 %1334, ptr %27, align 4
  br label %1373

1335:                                             ; preds = %1303
  %1336 = landingpad { ptr, i32 }
          cleanup
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %26, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %27, align 4
  br label %1368

1339:                                             ; preds = %1306
  %1340 = landingpad { ptr, i32 }
          cleanup
  %1341 = extractvalue { ptr, i32 } %1340, 0
  store ptr %1341, ptr %26, align 8
  %1342 = extractvalue { ptr, i32 } %1340, 1
  store i32 %1342, ptr %27, align 4
  br label %1367

1343:                                             ; preds = %1307
  %1344 = landingpad { ptr, i32 }
          cleanup
  %1345 = extractvalue { ptr, i32 } %1344, 0
  store ptr %1345, ptr %26, align 8
  %1346 = extractvalue { ptr, i32 } %1344, 1
  store i32 %1346, ptr %27, align 4
  br label %1366

1347:                                             ; preds = %1309
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %26, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %27, align 4
  br label %1365

1351:                                             ; preds = %1310
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %26, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %27, align 4
  br label %1364

1355:                                             ; preds = %1311
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %26, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %27, align 4
  br label %1363

1359:                                             ; preds = %1312
  %1360 = landingpad { ptr, i32 }
          cleanup
  %1361 = extractvalue { ptr, i32 } %1360, 0
  store ptr %1361, ptr %26, align 8
  %1362 = extractvalue { ptr, i32 } %1360, 1
  store i32 %1362, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %103) #12
  br label %1363

1363:                                             ; preds = %1359, %1355
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %104) #12
  br label %1364

1364:                                             ; preds = %1363, %1351
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #12
  br label %1365

1365:                                             ; preds = %1364, %1347
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #12
  br label %1366

1366:                                             ; preds = %1365, %1343
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #12
  br label %1367

1367:                                             ; preds = %1366, %1339
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #12
  br label %1368

1368:                                             ; preds = %1367, %1335
  call void @llvm.lifetime.end.p0(i64 88, ptr %104) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #12
  br label %1373

1369:                                             ; preds = %1330, %1316
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

1371:                                             ; preds = %1370
  store i8 1, ptr %20, align 1, !tbaa !13
  br label %1372

1372:                                             ; preds = %1371, %1300
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #12
  br label %1374

1373:                                             ; preds = %1368, %1331
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #12
  br label %1377

1374:                                             ; preds = %1372, %1250
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #12
  br label %1375

1375:                                             ; preds = %1374
  %1376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #12
  br label %1220

1377:                                             ; preds = %1373, %1288, %1287
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #12
  br label %1378

1378:                                             ; preds = %1377, %1275
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #12
  br label %1379

1379:                                             ; preds = %1378, %1271
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #12
  br label %1381

1380:                                             ; preds = %1222
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  br label %2044

1381:                                             ; preds = %1379, %1228
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  br label %2058

1382:                                             ; preds = %1203
  %1383 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #12
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 1 dereferenceable(1) %110) #12
  %1384 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(8) %1383, ptr noundef %109)
          to label %1385 unwind label %1388

1385:                                             ; preds = %1382
  %1386 = icmp ne ptr %1384, null
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #12
  br i1 %1386, label %1387, label %1392

1387:                                             ; preds = %1385
  br label %2043

1388:                                             ; preds = %1382
  %1389 = landingpad { ptr, i32 }
          cleanup
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %26, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #12
  br label %2058

1392:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #12
  %1393 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #12
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 1 dereferenceable(1) %113) #12
  %1394 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(8) %1393, ptr noundef %112)
          to label %1395 unwind label %1425

1395:                                             ; preds = %1392
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #12
  store ptr %1394, ptr %111, align 8, !tbaa !5
  %1396 = load ptr, ptr %111, align 8, !tbaa !5
  %1397 = icmp ne ptr %1396, null
  br i1 %1397, label %1398, label %2040

1398:                                             ; preds = %1395
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #12
  %1399 = load ptr, ptr %111, align 8, !tbaa !5
  %1400 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1399)
          to label %1401 unwind label %1429

1401:                                             ; preds = %1398
  %1402 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1400)
          to label %1403 unwind label %1429

1403:                                             ; preds = %1401
  %1404 = getelementptr inbounds %"struct.HIR::TypeData_Path", ptr %1402, i32 0, i32 0
  %1405 = getelementptr inbounds %"class.HIR::Path", ptr %1404, i32 0, i32 0
  %1406 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %1405)
          to label %1407 unwind label %1429

1407:                                             ; preds = %1403
  store ptr %1406, ptr %114, align 8, !tbaa !5
  br label %1408

1408:                                             ; preds = %1407
  %1409 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1410 unwind label %1429

1410:                                             ; preds = %1408
  br i1 %1409, label %1411, label %1433

1411:                                             ; preds = %1410
  %1412 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1412, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1414 unwind label %1429

1414:                                             ; preds = %1411
  %1415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1413, ptr noundef @.str.217)
          to label %1416 unwind label %1429

1416:                                             ; preds = %1414
  %1417 = load ptr, ptr %114, align 8, !tbaa !5
  %1418 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1417, i32 0, i32 1
  %1419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1415, ptr noundef nonnull align 8 dereferenceable(32) %1418)
          to label %1420 unwind label %1429

1420:                                             ; preds = %1416
  %1421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1419, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1422 unwind label %1429

1422:                                             ; preds = %1420
  %1423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1421, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1424 unwind label %1429

1424:                                             ; preds = %1422
  br label %1433

1425:                                             ; preds = %1392
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %26, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #12
  br label %2042

1429:                                             ; preds = %1422, %1420, %1416, %1414, %1411, %1408, %1403, %1401, %1398
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %26, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %27, align 4
  br label %2039

1433:                                             ; preds = %1424, %1410
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 128, ptr %115) #12
  %1436 = load ptr, ptr %114, align 8, !tbaa !5
  %1437 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1436, i32 0, i32 0
  %1438 = load ptr, ptr %114, align 8, !tbaa !5
  %1439 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1438, i32 0, i32 1
  %1440 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1439, i32 0, i32 1
  invoke void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128) %115, ptr noundef %1437, ptr noundef %1440, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1441 unwind label %1467

1441:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #12
  %1442 = getelementptr inbounds %struct.TraitResolveCommon, ptr %192, i32 0, i32 0
  %1443 = load ptr, ptr %1442, align 8, !tbaa !43
  %1444 = load ptr, ptr %12, align 8, !tbaa !5
  %1445 = load ptr, ptr %114, align 8, !tbaa !5
  %1446 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1445, i32 0, i32 1
  %1447 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1446, i32 0, i32 0
  %1448 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %1443, ptr noundef nonnull align 8 dereferenceable(8) %1444, ptr noundef nonnull align 8 dereferenceable(8) %1447)
          to label %1449 unwind label %1471

1449:                                             ; preds = %1441
  store ptr %1448, ptr %116, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #12
  %1450 = load ptr, ptr %116, align 8, !tbaa !5
  %1451 = getelementptr inbounds %"class.HIR::Trait", ptr %1450, i32 0, i32 4
  %1452 = load ptr, ptr %114, align 8, !tbaa !5
  %1453 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1452, i32 0, i32 2
  %1454 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNKSt13unordered_mapI8RcStringN3HIR14AssociatedTypeESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE2atERS8_(ptr noundef nonnull align 8 dereferenceable(56) %1451, ptr noundef nonnull align 8 dereferenceable(8) %1453)
          to label %1455 unwind label %1475

1455:                                             ; preds = %1449
  store ptr %1454, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #12
  %1456 = load ptr, ptr %117, align 8, !tbaa !5
  %1457 = getelementptr inbounds %"struct.HIR::AssociatedType", ptr %1456, i32 0, i32 3
  store ptr %1457, ptr %118, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #12
  %1458 = load ptr, ptr %118, align 8, !tbaa !5
  %1459 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1458) #12
  %1460 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.154", ptr %119, i32 0, i32 0
  store ptr %1459, ptr %1460, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #12
  %1461 = load ptr, ptr %118, align 8, !tbaa !5
  %1462 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1461) #12
  %1463 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.154", ptr %120, i32 0, i32 0
  store ptr %1462, ptr %1463, align 8
  br label %1464

1464:                                             ; preds = %1740, %1455
  %1465 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120) #12
  br i1 %1465, label %1479, label %1466

1466:                                             ; preds = %1464
  store i32 44, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #12
  br label %1746

1467:                                             ; preds = %1435
  %1468 = landingpad { ptr, i32 }
          cleanup
  %1469 = extractvalue { ptr, i32 } %1468, 0
  store ptr %1469, ptr %26, align 8
  %1470 = extractvalue { ptr, i32 } %1468, 1
  store i32 %1470, ptr %27, align 4
  br label %2038

1471:                                             ; preds = %1441
  %1472 = landingpad { ptr, i32 }
          cleanup
  %1473 = extractvalue { ptr, i32 } %1472, 0
  store ptr %1473, ptr %26, align 8
  %1474 = extractvalue { ptr, i32 } %1472, 1
  store i32 %1474, ptr %27, align 4
  br label %2037

1475:                                             ; preds = %1449
  %1476 = landingpad { ptr, i32 }
          cleanup
  %1477 = extractvalue { ptr, i32 } %1476, 0
  store ptr %1477, ptr %26, align 8
  %1478 = extractvalue { ptr, i32 } %1476, 1
  store i32 %1478, ptr %27, align 4
  br label %2036

1479:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #12
  %1480 = call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #12
  store ptr %1480, ptr %121, align 8, !tbaa !5
  br label %1481

1481:                                             ; preds = %1479
  %1482 = load ptr, ptr %121, align 8, !tbaa !5
  %1483 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1482, i32 0, i32 4
  %1484 = load ptr, ptr %1483, align 8, !tbaa !79
  %1485 = icmp ne ptr %1484, null
  br i1 %1485, label %1513, label %1486

1486:                                             ; preds = %1481
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #12
  %1487 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(8) %1487)
          to label %1488 unwind label %1496

1488:                                             ; preds = %1486
  call void @llvm.lifetime.start.p0(i64 16, ptr %124) #12
  %1489 = getelementptr inbounds %class.anon.676, ptr %124, i32 0, i32 0
  %1490 = load ptr, ptr %121, align 8, !tbaa !5
  store ptr %1490, ptr %1489, align 8, !tbaa !5
  %1491 = getelementptr inbounds %class.anon.676, ptr %124, i32 0, i32 1
  %1492 = load ptr, ptr %114, align 8, !tbaa !5
  store ptr %1492, ptr %1491, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(16) %124) #12
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef %123)
          to label %1493 unwind label %1500

1493:                                             ; preds = %1488
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #12
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #12
  %1494 = call ptr @__cxa_allocate_exception(i64 16) #12
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1494, ptr noundef @.str.8)
          to label %1495 unwind label %1505

1495:                                             ; preds = %1493
  invoke void @__cxa_throw(ptr %1494, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #14
          to label %2437 unwind label %1509

1496:                                             ; preds = %1486
  %1497 = landingpad { ptr, i32 }
          cleanup
  %1498 = extractvalue { ptr, i32 } %1497, 0
  store ptr %1498, ptr %26, align 8
  %1499 = extractvalue { ptr, i32 } %1497, 1
  store i32 %1499, ptr %27, align 4
  br label %1504

1500:                                             ; preds = %1488
  %1501 = landingpad { ptr, i32 }
          cleanup
  %1502 = extractvalue { ptr, i32 } %1501, 0
  store ptr %1502, ptr %26, align 8
  %1503 = extractvalue { ptr, i32 } %1501, 1
  store i32 %1503, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #12
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #12
  br label %1504

1504:                                             ; preds = %1500, %1496
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #12
  br label %1745

1505:                                             ; preds = %1493
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %26, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %27, align 4
  call void @__cxa_free_exception(ptr %1494) #12
  br label %1745

1509:                                             ; preds = %1495
  %1510 = landingpad { ptr, i32 }
          cleanup
  %1511 = extractvalue { ptr, i32 } %1510, 0
  store ptr %1511, ptr %26, align 8
  %1512 = extractvalue { ptr, i32 } %1510, 1
  store i32 %1512, ptr %27, align 4
  br label %1745

1513:                                             ; preds = %1481
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

1515:                                             ; preds = %1514
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1516 unwind label %1557

1516:                                             ; preds = %1515
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %128)
          to label %1517 unwind label %1561

1517:                                             ; preds = %1516
  %1518 = load ptr, ptr %121, align 8, !tbaa !5
  %1519 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1518, i32 0, i32 1
  invoke void @_ZNK3HIR11GenericPath5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %1519)
          to label %1520 unwind label %1565

1520:                                             ; preds = %1517
  %1521 = load ptr, ptr %114, align 8, !tbaa !5
  %1522 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1521, i32 0, i32 2
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull align 8 dereferenceable(8) %1522)
          to label %1523 unwind label %1569

1523:                                             ; preds = %1520
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %131)
          to label %1524 unwind label %1573

1524:                                             ; preds = %1523
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %127, ptr noundef %128, ptr noundef %129, ptr noundef %130, ptr noundef %131)
          to label %1525 unwind label %1577

1525:                                             ; preds = %1524
  invoke void @_ZN3HIR15TypePathBinding11make_OpaqueENS0_11Data_OpaqueE(ptr dead_on_unwind writable sret(%"class.HIR::TypePathBinding") align 8 %132)
          to label %1526 unwind label %1581

1526:                                             ; preds = %1525
  invoke void @_ZN3HIR7TypeRef8new_pathENS_4PathENS_15TypePathBindingE(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %126, ptr noundef %127, ptr noundef %132)
          to label %1527 unwind label %1585

1527:                                             ; preds = %1526
  call void @_ZN3HIR15TypePathBindingD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %127) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %131) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #12
  %1528 = load ptr, ptr %12, align 8, !tbaa !5
  %1529 = load ptr, ptr %121, align 8, !tbaa !5
  %1530 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1529, i32 0, i32 1
  %1531 = load ptr, ptr %121, align 8, !tbaa !5
  %1532 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1531, i32 0, i32 4
  %1533 = load ptr, ptr %1532, align 8, !tbaa !79
  %1534 = load ptr, ptr %16, align 8, !tbaa !5
  %1535 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1528, ptr noundef nonnull align 8 dereferenceable(32) %1530, ptr noundef nonnull align 8 dereferenceable(400) %1533, ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %1534, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1536 unwind label %1594

1536:                                             ; preds = %1527
  store ptr %1535, ptr %134, align 8, !tbaa !5
  %1537 = load ptr, ptr %134, align 8, !tbaa !5
  %1538 = icmp ne ptr %1537, null
  br i1 %1538, label %1539, label %1739

1539:                                             ; preds = %1536
  br label %1540

1540:                                             ; preds = %1539
  %1541 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1542 unwind label %1594

1542:                                             ; preds = %1540
  br i1 %1541, label %1543, label %1598

1543:                                             ; preds = %1542
  %1544 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1544, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1546 unwind label %1594

1546:                                             ; preds = %1543
  %1547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1545, ptr noundef @.str.199)
          to label %1548 unwind label %1594

1548:                                             ; preds = %1546
  %1549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1547, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1550 unwind label %1594

1550:                                             ; preds = %1548
  %1551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1549, ptr noundef @.str.218)
          to label %1552 unwind label %1594

1552:                                             ; preds = %1550
  %1553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1551, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1554 unwind label %1594

1554:                                             ; preds = %1552
  %1555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1553, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1556 unwind label %1594

1556:                                             ; preds = %1554
  br label %1598

1557:                                             ; preds = %1515
  %1558 = landingpad { ptr, i32 }
          cleanup
  %1559 = extractvalue { ptr, i32 } %1558, 0
  store ptr %1559, ptr %26, align 8
  %1560 = extractvalue { ptr, i32 } %1558, 1
  store i32 %1560, ptr %27, align 4
  br label %1744

1561:                                             ; preds = %1516
  %1562 = landingpad { ptr, i32 }
          cleanup
  %1563 = extractvalue { ptr, i32 } %1562, 0
  store ptr %1563, ptr %26, align 8
  %1564 = extractvalue { ptr, i32 } %1562, 1
  store i32 %1564, ptr %27, align 4
  br label %1743

1565:                                             ; preds = %1517
  %1566 = landingpad { ptr, i32 }
          cleanup
  %1567 = extractvalue { ptr, i32 } %1566, 0
  store ptr %1567, ptr %26, align 8
  %1568 = extractvalue { ptr, i32 } %1566, 1
  store i32 %1568, ptr %27, align 4
  br label %1593

1569:                                             ; preds = %1520
  %1570 = landingpad { ptr, i32 }
          cleanup
  %1571 = extractvalue { ptr, i32 } %1570, 0
  store ptr %1571, ptr %26, align 8
  %1572 = extractvalue { ptr, i32 } %1570, 1
  store i32 %1572, ptr %27, align 4
  br label %1592

1573:                                             ; preds = %1523
  %1574 = landingpad { ptr, i32 }
          cleanup
  %1575 = extractvalue { ptr, i32 } %1574, 0
  store ptr %1575, ptr %26, align 8
  %1576 = extractvalue { ptr, i32 } %1574, 1
  store i32 %1576, ptr %27, align 4
  br label %1591

1577:                                             ; preds = %1524
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %26, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, ptr %27, align 4
  br label %1590

1581:                                             ; preds = %1525
  %1582 = landingpad { ptr, i32 }
          cleanup
  %1583 = extractvalue { ptr, i32 } %1582, 0
  store ptr %1583, ptr %26, align 8
  %1584 = extractvalue { ptr, i32 } %1582, 1
  store i32 %1584, ptr %27, align 4
  br label %1589

1585:                                             ; preds = %1526
  %1586 = landingpad { ptr, i32 }
          cleanup
  %1587 = extractvalue { ptr, i32 } %1586, 0
  store ptr %1587, ptr %26, align 8
  %1588 = extractvalue { ptr, i32 } %1586, 1
  store i32 %1588, ptr %27, align 4
  call void @_ZN3HIR15TypePathBindingD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #12
  br label %1589

1589:                                             ; preds = %1585, %1581
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %127) #12
  br label %1590

1590:                                             ; preds = %1589, %1577
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %131) #12
  br label %1591

1591:                                             ; preds = %1590, %1573
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #12
  br label %1592

1592:                                             ; preds = %1591, %1569
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #12
  br label %1593

1593:                                             ; preds = %1592, %1565
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #12
  br label %1743

1594:                                             ; preds = %1554, %1552, %1550, %1548, %1546, %1543, %1540, %1527
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %26, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %27, align 4
  br label %1742

1598:                                             ; preds = %1556, %1542
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #12
  %1601 = load ptr, ptr %12, align 8, !tbaa !5
  %1602 = load ptr, ptr %134, align 8, !tbaa !5
  %1603 = load ptr, ptr %15, align 8, !tbaa !5
  %1604 = load i32, ptr %17, align 4, !tbaa !9
  %1605 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1601, ptr noundef nonnull align 8 dereferenceable(352) %1602, ptr noundef nonnull align 8 dereferenceable(8) %1603, i32 noundef %1604)
          to label %1606 unwind label %1646

1606:                                             ; preds = %1600
  store ptr %1605, ptr %135, align 8, !tbaa !5
  %1607 = load ptr, ptr %135, align 8, !tbaa !5
  %1608 = icmp ne ptr %1607, null
  br i1 %1608, label %1609, label %1737

1609:                                             ; preds = %1606
  %1610 = load ptr, ptr %135, align 8, !tbaa !5
  %1611 = load ptr, ptr %111, align 8, !tbaa !5
  %1612 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1610, ptr noundef nonnull align 8 dereferenceable(8) %1611)
          to label %1613 unwind label %1646

1613:                                             ; preds = %1609
  br i1 %1612, label %1614, label %1736

1614:                                             ; preds = %1613
  call void @llvm.lifetime.start.p0(i64 24, ptr %136) #12
  %1615 = load ptr, ptr %121, align 8, !tbaa !5
  %1616 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1615, i32 0, i32 0
  %1617 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1616) #12
  br i1 %1617, label %1618, label %1623

1618:                                             ; preds = %1614
  %1619 = load ptr, ptr %121, align 8, !tbaa !5
  %1620 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1619, i32 0, i32 0
  %1621 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1620) #12
  invoke void @_ZNK3HIR13GenericParams17make_empty_paramsEb(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8 %136, ptr noundef nonnull align 8 dereferenceable(96) %1621, i1 noundef zeroext true)
          to label %1622 unwind label %1650

1622:                                             ; preds = %1618
  br label %1625

1623:                                             ; preds = %1614
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %136)
          to label %1624 unwind label %1650

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624, %1622
  %1626 = getelementptr inbounds %struct.MonomorphStatePtr, ptr %115, i32 0, i32 4
  store ptr %136, ptr %1626, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #12
  %1627 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8 %137, ptr noundef nonnull align 8 dereferenceable(96) %115, ptr noundef nonnull align 8 dereferenceable(8) %1627, ptr noundef nonnull align 8 dereferenceable(32) %125, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %1628 unwind label %1654

1628:                                             ; preds = %1625
  %1629 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %1630 unwind label %1658

1630:                                             ; preds = %1628
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #12
  br label %1631

1631:                                             ; preds = %1630
  %1632 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1633 unwind label %1663

1633:                                             ; preds = %1631
  br i1 %1632, label %1634, label %1667

1634:                                             ; preds = %1633
  %1635 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1635, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1637 unwind label %1663

1637:                                             ; preds = %1634
  %1638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1636, ptr noundef @.str.219)
          to label %1639 unwind label %1663

1639:                                             ; preds = %1637
  %1640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1638, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1641 unwind label %1663

1641:                                             ; preds = %1639
  %1642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1640, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1643 unwind label %1663

1643:                                             ; preds = %1641
  %1644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1642, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1645 unwind label %1663

1645:                                             ; preds = %1643
  br label %1667

1646:                                             ; preds = %1609, %1600
  %1647 = landingpad { ptr, i32 }
          cleanup
  %1648 = extractvalue { ptr, i32 } %1647, 0
  store ptr %1648, ptr %26, align 8
  %1649 = extractvalue { ptr, i32 } %1647, 1
  store i32 %1649, ptr %27, align 4
  br label %1738

1650:                                             ; preds = %1623, %1618
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %26, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %27, align 4
  br label %1735

1654:                                             ; preds = %1625
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %26, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %27, align 4
  br label %1662

1658:                                             ; preds = %1628
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %26, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %27, align 4
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #12
  br label %1662

1662:                                             ; preds = %1658, %1654
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #12
  br label %1734

1663:                                             ; preds = %1694, %1692, %1688, %1686, %1683, %1680, %1643, %1641, %1639, %1637, %1634, %1631
  %1664 = landingpad { ptr, i32 }
          cleanup
  %1665 = extractvalue { ptr, i32 } %1664, 0
  store ptr %1665, ptr %26, align 8
  %1666 = extractvalue { ptr, i32 } %1664, 1
  store i32 %1666, ptr %27, align 4
  br label %1734

1667:                                             ; preds = %1645, %1633
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  %1670 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %138) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %139) #12
  %1671 = load ptr, ptr %135, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %140, ptr noundef nonnull align 8 dereferenceable(8) %1671)
          to label %1672 unwind label %1697

1672:                                             ; preds = %1669
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1673 unwind label %1701

1673:                                             ; preds = %1672
  %1674 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(8) %1674)
          to label %1675 unwind label %1705

1675:                                             ; preds = %1673
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %143)
          to label %1676 unwind label %1709

1676:                                             ; preds = %1675
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %139, ptr noundef %140, ptr noundef %141, ptr noundef %142, ptr noundef %143)
          to label %1677 unwind label %1713

1677:                                             ; preds = %1676
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %138, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %139)
          to label %1678 unwind label %1717

1678:                                             ; preds = %1677
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %1670, ptr noundef nonnull align 8 dereferenceable(96) %138)
          to label %1679 unwind label %1721

1679:                                             ; preds = %1678
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %138) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %143) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %139) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %138) #12
  br label %1680

1680:                                             ; preds = %1679
  %1681 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1682 unwind label %1663

1682:                                             ; preds = %1680
  br i1 %1681, label %1683, label %1731

1683:                                             ; preds = %1682
  %1684 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1684, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1686 unwind label %1663

1686:                                             ; preds = %1683
  %1687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1685, ptr noundef @.str.204)
          to label %1688 unwind label %1663

1688:                                             ; preds = %1686
  %1689 = load ptr, ptr %19, align 8, !tbaa !5
  %1690 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1689) #12
  %1691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1687, ptr noundef nonnull align 8 dereferenceable(96) %1690)
          to label %1692 unwind label %1663

1692:                                             ; preds = %1688
  %1693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1691, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1694 unwind label %1663

1694:                                             ; preds = %1692
  %1695 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1693, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1696 unwind label %1663

1696:                                             ; preds = %1694
  br label %1731

1697:                                             ; preds = %1669
  %1698 = landingpad { ptr, i32 }
          cleanup
  %1699 = extractvalue { ptr, i32 } %1698, 0
  store ptr %1699, ptr %26, align 8
  %1700 = extractvalue { ptr, i32 } %1698, 1
  store i32 %1700, ptr %27, align 4
  br label %1730

1701:                                             ; preds = %1672
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %26, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %27, align 4
  br label %1729

1705:                                             ; preds = %1673
  %1706 = landingpad { ptr, i32 }
          cleanup
  %1707 = extractvalue { ptr, i32 } %1706, 0
  store ptr %1707, ptr %26, align 8
  %1708 = extractvalue { ptr, i32 } %1706, 1
  store i32 %1708, ptr %27, align 4
  br label %1728

1709:                                             ; preds = %1675
  %1710 = landingpad { ptr, i32 }
          cleanup
  %1711 = extractvalue { ptr, i32 } %1710, 0
  store ptr %1711, ptr %26, align 8
  %1712 = extractvalue { ptr, i32 } %1710, 1
  store i32 %1712, ptr %27, align 4
  br label %1727

1713:                                             ; preds = %1676
  %1714 = landingpad { ptr, i32 }
          cleanup
  %1715 = extractvalue { ptr, i32 } %1714, 0
  store ptr %1715, ptr %26, align 8
  %1716 = extractvalue { ptr, i32 } %1714, 1
  store i32 %1716, ptr %27, align 4
  br label %1726

1717:                                             ; preds = %1677
  %1718 = landingpad { ptr, i32 }
          cleanup
  %1719 = extractvalue { ptr, i32 } %1718, 0
  store ptr %1719, ptr %26, align 8
  %1720 = extractvalue { ptr, i32 } %1718, 1
  store i32 %1720, ptr %27, align 4
  br label %1725

1721:                                             ; preds = %1678
  %1722 = landingpad { ptr, i32 }
          cleanup
  %1723 = extractvalue { ptr, i32 } %1722, 0
  store ptr %1723, ptr %26, align 8
  %1724 = extractvalue { ptr, i32 } %1722, 1
  store i32 %1724, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %138) #12
  br label %1725

1725:                                             ; preds = %1721, %1717
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #12
  br label %1726

1726:                                             ; preds = %1725, %1713
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %143) #12
  br label %1727

1727:                                             ; preds = %1726, %1709
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #12
  br label %1728

1728:                                             ; preds = %1727, %1705
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #12
  br label %1729

1729:                                             ; preds = %1728, %1701
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #12
  br label %1730

1730:                                             ; preds = %1729, %1697
  call void @llvm.lifetime.end.p0(i64 88, ptr %139) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %138) #12
  br label %1734

1731:                                             ; preds = %1696, %1682
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  store i8 1, ptr %20, align 1, !tbaa !13
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %136) #12
  br label %1736

1734:                                             ; preds = %1730, %1663, %1662
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #12
  br label %1735

1735:                                             ; preds = %1734, %1650
  call void @llvm.lifetime.end.p0(i64 24, ptr %136) #12
  br label %1738

1736:                                             ; preds = %1733, %1613
  br label %1737

1737:                                             ; preds = %1736, %1606
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #12
  br label %1739

1738:                                             ; preds = %1735, %1646
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #12
  br label %1742

1739:                                             ; preds = %1737, %1536
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #12
  br label %1740

1740:                                             ; preds = %1739
  %1741 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #12
  br label %1464

1742:                                             ; preds = %1738, %1594
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #12
  br label %1743

1743:                                             ; preds = %1742, %1593, %1561
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #12
  br label %1744

1744:                                             ; preds = %1743, %1557
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #12
  br label %1745

1745:                                             ; preds = %1744, %1509, %1505, %1504
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #12
  br label %2036

1746:                                             ; preds = %1466
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #12
  %1747 = load ptr, ptr %116, align 8, !tbaa !5
  %1748 = getelementptr inbounds %"class.HIR::Trait", ptr %1747, i32 0, i32 0
  %1749 = getelementptr inbounds %"class.HIR::GenericParams", ptr %1748, i32 0, i32 3
  store ptr %1749, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #12
  %1750 = load ptr, ptr %144, align 8, !tbaa !5
  %1751 = call ptr @_ZNKSt6vectorIN3HIR12GenericBoundESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1750) #12
  %1752 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.443", ptr %145, i32 0, i32 0
  store ptr %1751, ptr %1752, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #12
  %1753 = load ptr, ptr %144, align 8, !tbaa !5
  %1754 = call ptr @_ZNKSt6vectorIN3HIR12GenericBoundESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1753) #12
  %1755 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.443", ptr %146, i32 0, i32 0
  store ptr %1754, ptr %1755, align 8
  br label %1756

1756:                                             ; preds = %2028, %1746
  %1757 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 8 dereferenceable(8) %146) #12
  br i1 %1757, label %1759, label %1758

1758:                                             ; preds = %1756
  store i32 54, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #12
  br label %2035

1759:                                             ; preds = %1756
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #12
  %1760 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %145) #12
  store ptr %1760, ptr %147, align 8, !tbaa !5
  %1761 = load ptr, ptr %147, align 8, !tbaa !5
  %1762 = invoke noundef zeroext i1 @_ZNK3HIR12GenericBound13is_TraitBoundEv(ptr noundef nonnull align 8 dereferenceable(168) %1761)
          to label %1763 unwind label %1765

1763:                                             ; preds = %1759
  br i1 %1762, label %1769, label %1764

1764:                                             ; preds = %1763
  store i32 55, ptr %36, align 4
  br label %2025

1765:                                             ; preds = %1759
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %26, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %27, align 4
  br label %2034

1769:                                             ; preds = %1763
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #12
  %1770 = load ptr, ptr %147, align 8, !tbaa !5
  %1771 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZNK3HIR12GenericBound13as_TraitBoundEv(ptr noundef nonnull align 8 dereferenceable(168) %1770)
          to label %1772 unwind label %1780

1772:                                             ; preds = %1769
  store ptr %1771, ptr %148, align 8, !tbaa !5
  %1773 = load ptr, ptr %148, align 8, !tbaa !5
  %1774 = getelementptr inbounds %"struct.HIR::GenericBound::Data_TraitBound", ptr %1773, i32 0, i32 1
  %1775 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1774)
          to label %1776 unwind label %1780

1776:                                             ; preds = %1772
  %1777 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData7is_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1775)
          to label %1778 unwind label %1780

1778:                                             ; preds = %1776
  br i1 %1777, label %1784, label %1779

1779:                                             ; preds = %1778
  store i32 55, ptr %36, align 4
  br label %2022

1780:                                             ; preds = %1790, %1788, %1784, %1776, %1772, %1769
  %1781 = landingpad { ptr, i32 }
          cleanup
  %1782 = extractvalue { ptr, i32 } %1781, 0
  store ptr %1782, ptr %26, align 8
  %1783 = extractvalue { ptr, i32 } %1781, 1
  store i32 %1783, ptr %27, align 4
  br label %2033

1784:                                             ; preds = %1778
  %1785 = load ptr, ptr %148, align 8, !tbaa !5
  %1786 = getelementptr inbounds %"struct.HIR::GenericBound::Data_TraitBound", ptr %1785, i32 0, i32 1
  %1787 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1786)
          to label %1788 unwind label %1780

1788:                                             ; preds = %1784
  %1789 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1787)
          to label %1790 unwind label %1780

1790:                                             ; preds = %1788
  %1791 = getelementptr inbounds %"struct.HIR::TypeData_Path", ptr %1789, i32 0, i32 1
  %1792 = invoke noundef zeroext i1 @_ZNK3HIR15TypePathBinding9is_OpaqueEv(ptr noundef nonnull align 8 dereferenceable(16) %1791)
          to label %1793 unwind label %1780

1793:                                             ; preds = %1790
  br i1 %1792, label %1795, label %1794

1794:                                             ; preds = %1793
  store i32 55, ptr %36, align 4
  br label %2022

1795:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #12
  %1796 = load ptr, ptr %148, align 8, !tbaa !5
  %1797 = getelementptr inbounds %"struct.HIR::GenericBound::Data_TraitBound", ptr %1796, i32 0, i32 1
  %1798 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1797)
          to label %1799 unwind label %1812

1799:                                             ; preds = %1795
  %1800 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1798)
          to label %1801 unwind label %1812

1801:                                             ; preds = %1799
  %1802 = getelementptr inbounds %"struct.HIR::TypeData_Path", ptr %1800, i32 0, i32 0
  %1803 = getelementptr inbounds %"class.HIR::Path", ptr %1802, i32 0, i32 0
  %1804 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %1803)
          to label %1805 unwind label %1812

1805:                                             ; preds = %1801
  store ptr %1804, ptr %149, align 8, !tbaa !5
  %1806 = load ptr, ptr %149, align 8, !tbaa !5
  %1807 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1806, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %150)
          to label %1808 unwind label %1816

1808:                                             ; preds = %1805
  %1809 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1807, ptr noundef nonnull align 8 dereferenceable(8) %150)
          to label %1810 unwind label %1820

1810:                                             ; preds = %1808
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #12
  br i1 %1809, label %1811, label %1825

1811:                                             ; preds = %1810
  store i32 55, ptr %36, align 4
  br label %2021

1812:                                             ; preds = %1835, %1825, %1801, %1799, %1795
  %1813 = landingpad { ptr, i32 }
          cleanup
  %1814 = extractvalue { ptr, i32 } %1813, 0
  store ptr %1814, ptr %26, align 8
  %1815 = extractvalue { ptr, i32 } %1813, 1
  store i32 %1815, ptr %27, align 4
  br label %2032

1816:                                             ; preds = %1805
  %1817 = landingpad { ptr, i32 }
          cleanup
  %1818 = extractvalue { ptr, i32 } %1817, 0
  store ptr %1818, ptr %26, align 8
  %1819 = extractvalue { ptr, i32 } %1817, 1
  store i32 %1819, ptr %27, align 4
  br label %1824

1820:                                             ; preds = %1808
  %1821 = landingpad { ptr, i32 }
          cleanup
  %1822 = extractvalue { ptr, i32 } %1821, 0
  store ptr %1822, ptr %26, align 8
  %1823 = extractvalue { ptr, i32 } %1821, 1
  store i32 %1823, ptr %27, align 4
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #12
  br label %1824

1824:                                             ; preds = %1820, %1816
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #12
  br label %2032

1825:                                             ; preds = %1810
  %1826 = load ptr, ptr %149, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1826, i32 0, i32 1
  %1828 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1827, i32 0, i32 0
  %1829 = load ptr, ptr %114, align 8, !tbaa !5
  %1830 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1829, i32 0, i32 1
  %1831 = getelementptr inbounds %"class.HIR::GenericPath", ptr %1830, i32 0, i32 0
  %1832 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePathneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1828, ptr noundef nonnull align 8 dereferenceable(8) %1831)
          to label %1833 unwind label %1812

1833:                                             ; preds = %1825
  br i1 %1832, label %1834, label %1835

1834:                                             ; preds = %1833
  store i32 55, ptr %36, align 4
  br label %2021

1835:                                             ; preds = %1833
  %1836 = load ptr, ptr %149, align 8, !tbaa !5
  %1837 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1836, i32 0, i32 2
  %1838 = load ptr, ptr %114, align 8, !tbaa !5
  %1839 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %1838, i32 0, i32 2
  %1840 = invoke noundef zeroext i1 @_ZNK8RcStringneERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1837, ptr noundef nonnull align 8 dereferenceable(8) %1839)
          to label %1841 unwind label %1812

1841:                                             ; preds = %1835
  br i1 %1840, label %1842, label %1843

1842:                                             ; preds = %1841
  store i32 55, ptr %36, align 4
  br label %2021

1843:                                             ; preds = %1841
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1844 unwind label %1877

1844:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #12
  %1845 = load ptr, ptr %12, align 8, !tbaa !5
  %1846 = load ptr, ptr %148, align 8, !tbaa !5
  %1847 = getelementptr inbounds %"struct.HIR::GenericBound::Data_TraitBound", ptr %1846, i32 0, i32 2
  %1848 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1847, i32 0, i32 1
  %1849 = load ptr, ptr %148, align 8, !tbaa !5
  %1850 = getelementptr inbounds %"struct.HIR::GenericBound::Data_TraitBound", ptr %1849, i32 0, i32 2
  %1851 = getelementptr inbounds %"class.HIR::TraitPath", ptr %1850, i32 0, i32 4
  %1852 = load ptr, ptr %1851, align 8, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %153)
          to label %1853 unwind label %1881

1853:                                             ; preds = %1844
  %1854 = load ptr, ptr %16, align 8, !tbaa !5
  %1855 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1845, ptr noundef nonnull align 8 dereferenceable(32) %1848, ptr noundef nonnull align 8 dereferenceable(400) %1852, ptr noundef nonnull align 8 dereferenceable(8) %153, ptr noundef nonnull align 8 dereferenceable(8) %1854, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1856 unwind label %1885

1856:                                             ; preds = %1853
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #12
  store ptr %1855, ptr %152, align 8, !tbaa !5
  %1857 = load ptr, ptr %152, align 8, !tbaa !5
  %1858 = icmp ne ptr %1857, null
  br i1 %1858, label %1859, label %2020

1859:                                             ; preds = %1856
  br label %1860

1860:                                             ; preds = %1859
  %1861 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1862 unwind label %1890

1862:                                             ; preds = %1860
  br i1 %1861, label %1863, label %1894

1863:                                             ; preds = %1862
  %1864 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1865 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1864, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1866 unwind label %1890

1866:                                             ; preds = %1863
  %1867 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1865, ptr noundef @.str.199)
          to label %1868 unwind label %1890

1868:                                             ; preds = %1866
  %1869 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1867, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1870 unwind label %1890

1870:                                             ; preds = %1868
  %1871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1869, ptr noundef @.str.220)
          to label %1872 unwind label %1890

1872:                                             ; preds = %1870
  %1873 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1871, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1874 unwind label %1890

1874:                                             ; preds = %1872
  %1875 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1873, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1876 unwind label %1890

1876:                                             ; preds = %1874
  br label %1894

1877:                                             ; preds = %1843
  %1878 = landingpad { ptr, i32 }
          cleanup
  %1879 = extractvalue { ptr, i32 } %1878, 0
  store ptr %1879, ptr %26, align 8
  %1880 = extractvalue { ptr, i32 } %1878, 1
  store i32 %1880, ptr %27, align 4
  br label %2031

1881:                                             ; preds = %1844
  %1882 = landingpad { ptr, i32 }
          cleanup
  %1883 = extractvalue { ptr, i32 } %1882, 0
  store ptr %1883, ptr %26, align 8
  %1884 = extractvalue { ptr, i32 } %1882, 1
  store i32 %1884, ptr %27, align 4
  br label %1889

1885:                                             ; preds = %1853
  %1886 = landingpad { ptr, i32 }
          cleanup
  %1887 = extractvalue { ptr, i32 } %1886, 0
  store ptr %1887, ptr %26, align 8
  %1888 = extractvalue { ptr, i32 } %1886, 1
  store i32 %1888, ptr %27, align 4
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #12
  br label %1889

1889:                                             ; preds = %1885, %1881
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #12
  br label %2030

1890:                                             ; preds = %1874, %1872, %1870, %1868, %1866, %1863, %1860
  %1891 = landingpad { ptr, i32 }
          cleanup
  %1892 = extractvalue { ptr, i32 } %1891, 0
  store ptr %1892, ptr %26, align 8
  %1893 = extractvalue { ptr, i32 } %1891, 1
  store i32 %1893, ptr %27, align 4
  br label %2030

1894:                                             ; preds = %1876, %1862
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #12
  %1897 = load ptr, ptr %12, align 8, !tbaa !5
  %1898 = load ptr, ptr %152, align 8, !tbaa !5
  %1899 = load ptr, ptr %15, align 8, !tbaa !5
  %1900 = load i32, ptr %17, align 4, !tbaa !9
  %1901 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %1897, ptr noundef nonnull align 8 dereferenceable(352) %1898, ptr noundef nonnull align 8 dereferenceable(8) %1899, i32 noundef %1900)
          to label %1902 unwind label %1936

1902:                                             ; preds = %1896
  store ptr %1901, ptr %154, align 8, !tbaa !5
  %1903 = load ptr, ptr %154, align 8, !tbaa !5
  %1904 = icmp ne ptr %1903, null
  br i1 %1904, label %1905, label %2018

1905:                                             ; preds = %1902
  %1906 = load ptr, ptr %154, align 8, !tbaa !5
  %1907 = load ptr, ptr %111, align 8, !tbaa !5
  %1908 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1906, ptr noundef nonnull align 8 dereferenceable(8) %1907)
          to label %1909 unwind label %1936

1909:                                             ; preds = %1905
  br i1 %1908, label %1910, label %2017

1910:                                             ; preds = %1909
  %1911 = getelementptr inbounds %"class.HIR::GenericPath", ptr %151, i32 0, i32 1
  %1912 = invoke noundef zeroext i1 @_Z30monomorphise_pathparams_neededRKN3HIR10PathParamsEb(ptr noundef nonnull align 8 dereferenceable(24) %1911, i1 noundef zeroext false)
          to label %1913 unwind label %1936

1913:                                             ; preds = %1910
  br i1 %1912, label %1914, label %1952

1914:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 24, ptr %155) #12
  %1915 = load ptr, ptr %12, align 8, !tbaa !5
  %1916 = getelementptr inbounds %"class.HIR::GenericPath", ptr %151, i32 0, i32 1
  invoke void @_ZNK13Monomorphiser21monomorph_path_paramsERK4SpanRKN3HIR10PathParamsEb(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8 %155, ptr noundef nonnull align 8 dereferenceable(96) %115, ptr noundef nonnull align 8 dereferenceable(8) %1915, ptr noundef nonnull align 8 dereferenceable(24) %1916, i1 noundef zeroext false)
          to label %1917 unwind label %1940

1917:                                             ; preds = %1914
  %1918 = getelementptr inbounds %"class.HIR::GenericPath", ptr %151, i32 0, i32 1
  %1919 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR10PathParamsaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1918, ptr noundef nonnull align 8 dereferenceable(24) %155)
          to label %1920 unwind label %1944

1920:                                             ; preds = %1917
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %155) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %155) #12
  br label %1921

1921:                                             ; preds = %1920
  %1922 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1923 unwind label %1936

1923:                                             ; preds = %1921
  br i1 %1922, label %1924, label %1949

1924:                                             ; preds = %1923
  %1925 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1926 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1925, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1927 unwind label %1936

1927:                                             ; preds = %1924
  %1928 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1926, ptr noundef @.str.219)
          to label %1929 unwind label %1936

1929:                                             ; preds = %1927
  %1930 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1928, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1931 unwind label %1936

1931:                                             ; preds = %1929
  %1932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1930, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1933 unwind label %1936

1933:                                             ; preds = %1931
  %1934 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1932, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1935 unwind label %1936

1935:                                             ; preds = %1933
  br label %1949

1936:                                             ; preds = %1977, %1975, %1971, %1969, %1966, %1963, %1933, %1931, %1929, %1927, %1924, %1921, %1910, %1905, %1896
  %1937 = landingpad { ptr, i32 }
          cleanup
  %1938 = extractvalue { ptr, i32 } %1937, 0
  store ptr %1938, ptr %26, align 8
  %1939 = extractvalue { ptr, i32 } %1937, 1
  store i32 %1939, ptr %27, align 4
  br label %2019

1940:                                             ; preds = %1914
  %1941 = landingpad { ptr, i32 }
          cleanup
  %1942 = extractvalue { ptr, i32 } %1941, 0
  store ptr %1942, ptr %26, align 8
  %1943 = extractvalue { ptr, i32 } %1941, 1
  store i32 %1943, ptr %27, align 4
  br label %1948

1944:                                             ; preds = %1917
  %1945 = landingpad { ptr, i32 }
          cleanup
  %1946 = extractvalue { ptr, i32 } %1945, 0
  store ptr %1946, ptr %26, align 8
  %1947 = extractvalue { ptr, i32 } %1945, 1
  store i32 %1947, ptr %27, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %155) #12
  br label %1948

1948:                                             ; preds = %1944, %1940
  call void @llvm.lifetime.end.p0(i64 24, ptr %155) #12
  br label %2019

1949:                                             ; preds = %1935, %1923
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951, %1913
  %1953 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %156) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %157) #12
  %1954 = load ptr, ptr %154, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %158, ptr noundef nonnull align 8 dereferenceable(8) %1954)
          to label %1955 unwind label %1980

1955:                                             ; preds = %1952
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1956 unwind label %1984

1956:                                             ; preds = %1955
  %1957 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef nonnull align 8 dereferenceable(8) %1957)
          to label %1958 unwind label %1988

1958:                                             ; preds = %1956
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %161)
          to label %1959 unwind label %1992

1959:                                             ; preds = %1958
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %157, ptr noundef %158, ptr noundef %159, ptr noundef %160, ptr noundef %161)
          to label %1960 unwind label %1996

1960:                                             ; preds = %1959
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %156, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %157)
          to label %1961 unwind label %2000

1961:                                             ; preds = %1960
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %1953, ptr noundef nonnull align 8 dereferenceable(96) %156)
          to label %1962 unwind label %2004

1962:                                             ; preds = %1961
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %156) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %157) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %161) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %157) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %156) #12
  br label %1963

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

1965:                                             ; preds = %1963
  br i1 %1964, label %1966, label %2014

1966:                                             ; preds = %1965
  %1967 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1968 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1967, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1969 unwind label %1936

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

1971:                                             ; preds = %1969
  %1972 = load ptr, ptr %19, align 8, !tbaa !5
  %1973 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1972) #12
  %1974 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1970, ptr noundef nonnull align 8 dereferenceable(96) %1973)
          to label %1975 unwind label %1936

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

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

1979:                                             ; preds = %1977
  br label %2014

1980:                                             ; preds = %1952
  %1981 = landingpad { ptr, i32 }
          cleanup
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %26, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %27, align 4
  br label %2013

1984:                                             ; preds = %1955
  %1985 = landingpad { ptr, i32 }
          cleanup
  %1986 = extractvalue { ptr, i32 } %1985, 0
  store ptr %1986, ptr %26, align 8
  %1987 = extractvalue { ptr, i32 } %1985, 1
  store i32 %1987, ptr %27, align 4
  br label %2012

1988:                                             ; preds = %1956
  %1989 = landingpad { ptr, i32 }
          cleanup
  %1990 = extractvalue { ptr, i32 } %1989, 0
  store ptr %1990, ptr %26, align 8
  %1991 = extractvalue { ptr, i32 } %1989, 1
  store i32 %1991, ptr %27, align 4
  br label %2011

1992:                                             ; preds = %1958
  %1993 = landingpad { ptr, i32 }
          cleanup
  %1994 = extractvalue { ptr, i32 } %1993, 0
  store ptr %1994, ptr %26, align 8
  %1995 = extractvalue { ptr, i32 } %1993, 1
  store i32 %1995, ptr %27, align 4
  br label %2010

1996:                                             ; preds = %1959
  %1997 = landingpad { ptr, i32 }
          cleanup
  %1998 = extractvalue { ptr, i32 } %1997, 0
  store ptr %1998, ptr %26, align 8
  %1999 = extractvalue { ptr, i32 } %1997, 1
  store i32 %1999, ptr %27, align 4
  br label %2009

2000:                                             ; preds = %1960
  %2001 = landingpad { ptr, i32 }
          cleanup
  %2002 = extractvalue { ptr, i32 } %2001, 0
  store ptr %2002, ptr %26, align 8
  %2003 = extractvalue { ptr, i32 } %2001, 1
  store i32 %2003, ptr %27, align 4
  br label %2008

2004:                                             ; preds = %1961
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %26, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %156) #12
  br label %2008

2008:                                             ; preds = %2004, %2000
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %157) #12
  br label %2009

2009:                                             ; preds = %2008, %1996
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %161) #12
  br label %2010

2010:                                             ; preds = %2009, %1992
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #12
  br label %2011

2011:                                             ; preds = %2010, %1988
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #12
  br label %2012

2012:                                             ; preds = %2011, %1984
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #12
  br label %2013

2013:                                             ; preds = %2012, %1980
  call void @llvm.lifetime.end.p0(i64 88, ptr %157) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %156) #12
  br label %2019

2014:                                             ; preds = %1979, %1965
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015
  store i8 1, ptr %20, align 1, !tbaa !13
  br label %2017

2017:                                             ; preds = %2016, %1909
  br label %2018

2018:                                             ; preds = %2017, %1902
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #12
  br label %2020

2019:                                             ; preds = %2013, %1948, %1936
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #12
  br label %2030

2020:                                             ; preds = %2018, %1856
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #12
  store i32 0, ptr %36, align 4
  br label %2021

2021:                                             ; preds = %2020, %1842, %1834, %1811
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #12
  br label %2022

2022:                                             ; preds = %2021, %1794, %1779
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #12
  %2023 = load i32, ptr %36, align 4
  switch i32 %2023, label %2025 [
    i32 0, label %2024
  ]

2024:                                             ; preds = %2022
  store i32 0, ptr %36, align 4
  br label %2025

2025:                                             ; preds = %2024, %2022, %1764
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #12
  %2026 = load i32, ptr %36, align 4
  switch i32 %2026, label %2437 [
    i32 0, label %2027
    i32 55, label %2028
  ]

2027:                                             ; preds = %2025
  br label %2028

2028:                                             ; preds = %2027, %2025
  %2029 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %145) #12
  br label %1756

2030:                                             ; preds = %2019, %1890, %1889
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #12
  br label %2031

2031:                                             ; preds = %2030, %1877
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #12
  br label %2032

2032:                                             ; preds = %2031, %1824, %1812
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #12
  br label %2033

2033:                                             ; preds = %2032, %1780
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #12
  br label %2034

2034:                                             ; preds = %2033, %1765
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #12
  br label %2036

2035:                                             ; preds = %1758
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #12
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %115) #12
  call void @llvm.lifetime.end.p0(i64 128, ptr %115) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #12
  br label %2041

2036:                                             ; preds = %2034, %1745, %1475
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #12
  br label %2037

2037:                                             ; preds = %2036, %1471
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #12
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %115) #12
  br label %2038

2038:                                             ; preds = %2037, %1467
  call void @llvm.lifetime.end.p0(i64 128, ptr %115) #12
  br label %2039

2039:                                             ; preds = %2038, %1429
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #12
  br label %2042

2040:                                             ; preds = %1395
  br label %2041

2041:                                             ; preds = %2040, %2035
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #12
  br label %2043

2042:                                             ; preds = %2039, %1425
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #12
  br label %2058

2043:                                             ; preds = %2041, %1387
  br label %2044

2044:                                             ; preds = %2043, %1380
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #12
  br label %2045

2045:                                             ; preds = %2044
  %2046 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2047 unwind label %1015

2047:                                             ; preds = %2045
  br i1 %2046, label %2048, label %2059

2048:                                             ; preds = %2047
  %2049 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2049, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2051 unwind label %1015

2051:                                             ; preds = %2048
  %2052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2050, ptr noundef @.str.221)
          to label %2053 unwind label %1015

2053:                                             ; preds = %2051
  %2054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2052, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2055 unwind label %1015

2055:                                             ; preds = %2053
  %2056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2054, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2057 unwind label %1015

2057:                                             ; preds = %2055
  br label %2059

2058:                                             ; preds = %2042, %1388, %1381, %1224
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #12
  br label %2422

2059:                                             ; preds = %2057, %2047
  br label %2060

2060:                                             ; preds = %2059
  br label %2061

2061:                                             ; preds = %2060
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #12
  %2062 = load ptr, ptr %13, align 8, !tbaa !5
  %2063 = invoke ptr @_Z7reverseIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEE17reversion_wrapperIT_EOSF_(ptr noundef nonnull align 8 dereferenceable(24) %2062)
          to label %2064 unwind label %2078

2064:                                             ; preds = %2061
  %2065 = getelementptr inbounds %struct.reversion_wrapper, ptr %163, i32 0, i32 0
  store ptr %2063, ptr %2065, align 8
  store ptr %163, ptr %162, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #12
  %2066 = load ptr, ptr %162, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %165, ptr align 8 %2066, i64 8, i1 false), !tbaa.struct !107
  %2067 = getelementptr inbounds %struct.reversion_wrapper, ptr %165, i32 0, i32 0
  %2068 = load ptr, ptr %2067, align 8
  invoke void @_Z5beginIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %164, ptr %2068)
          to label %2069 unwind label %2082

2069:                                             ; preds = %2064
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #12
  %2070 = load ptr, ptr %162, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %167, ptr align 8 %2070, i64 8, i1 false), !tbaa.struct !107
  %2071 = getelementptr inbounds %struct.reversion_wrapper, ptr %167, i32 0, i32 0
  %2072 = load ptr, ptr %2071, align 8
  invoke void @_Z3endIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %166, ptr %2072)
          to label %2073 unwind label %2086

2073:                                             ; preds = %2069
  br label %2074

2074:                                             ; preds = %2409, %2073
  %2075 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEbRKSt16reverse_iteratorIT_ESL_(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %2076 unwind label %2086

2076:                                             ; preds = %2074
  br i1 %2075, label %2090, label %2077

2077:                                             ; preds = %2076
  store i32 64, ptr %36, align 4
  br label %2414

2078:                                             ; preds = %2061
  %2079 = landingpad { ptr, i32 }
          cleanup
  %2080 = extractvalue { ptr, i32 } %2079, 0
  store ptr %2080, ptr %26, align 8
  %2081 = extractvalue { ptr, i32 } %2079, 1
  store i32 %2081, ptr %27, align 4
  br label %2417

2082:                                             ; preds = %2064
  %2083 = landingpad { ptr, i32 }
          cleanup
  %2084 = extractvalue { ptr, i32 } %2083, 0
  store ptr %2084, ptr %26, align 8
  %2085 = extractvalue { ptr, i32 } %2083, 1
  store i32 %2085, ptr %27, align 4
  br label %2416

2086:                                             ; preds = %2407, %2074, %2069
  %2087 = landingpad { ptr, i32 }
          cleanup
  %2088 = extractvalue { ptr, i32 } %2087, 0
  store ptr %2088, ptr %26, align 8
  %2089 = extractvalue { ptr, i32 } %2087, 1
  store i32 %2089, ptr %27, align 4
  br label %2415

2090:                                             ; preds = %2076
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #12
  %2091 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %2092 unwind label %2098

2092:                                             ; preds = %2090
  store ptr %2091, ptr %168, align 8, !tbaa !5
  %2093 = load ptr, ptr %168, align 8, !tbaa !5
  %2094 = getelementptr inbounds %"struct.std::pair.678", ptr %2093, i32 0, i32 0
  %2095 = load ptr, ptr %2094, align 8, !tbaa !108
  %2096 = icmp eq ptr %2095, null
  br i1 %2096, label %2097, label %2102

2097:                                             ; preds = %2092
  store i32 64, ptr %36, align 4
  br label %2404

2098:                                             ; preds = %2090
  %2099 = landingpad { ptr, i32 }
          cleanup
  %2100 = extractvalue { ptr, i32 } %2099, 0
  store ptr %2100, ptr %26, align 8
  %2101 = extractvalue { ptr, i32 } %2099, 1
  store i32 %2101, ptr %27, align 4
  br label %2413

2102:                                             ; preds = %2092
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #12
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %2103 unwind label %2120

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #12
  %2104 = load ptr, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #12
  %2105 = load ptr, ptr %168, align 8, !tbaa !5
  %2106 = getelementptr inbounds %"struct.std::pair.678", ptr %2105, i32 0, i32 0
  %2107 = load ptr, ptr %2106, align 8, !tbaa !108
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %2107)
          to label %2108 unwind label %2124

2108:                                             ; preds = %2103
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef %172)
          to label %2109 unwind label %2128

2109:                                             ; preds = %2108
  %2110 = load ptr, ptr %168, align 8, !tbaa !5
  %2111 = getelementptr inbounds %"struct.std::pair.678", ptr %2110, i32 0, i32 1
  %2112 = load ptr, ptr %2111, align 8, !tbaa !110
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #12
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %173)
          to label %2113 unwind label %2132

2113:                                             ; preds = %2109
  %2114 = load ptr, ptr %16, align 8, !tbaa !5
  %2115 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %2104, ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull align 8 dereferenceable(400) %2112, ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull align 8 dereferenceable(8) %2114, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %2116 unwind label %2136

2116:                                             ; preds = %2113
  store ptr %2115, ptr %170, align 8, !tbaa !5
  %2117 = icmp ne ptr %2115, null
  %2118 = xor i1 %2117, true
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #12
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #12
  br i1 %2118, label %2119, label %2143

2119:                                             ; preds = %2116
  store i32 65, ptr %36, align 4
  br label %2401

2120:                                             ; preds = %2102
  %2121 = landingpad { ptr, i32 }
          cleanup
  %2122 = extractvalue { ptr, i32 } %2121, 0
  store ptr %2122, ptr %26, align 8
  %2123 = extractvalue { ptr, i32 } %2121, 1
  store i32 %2123, ptr %27, align 4
  br label %2412

2124:                                             ; preds = %2103
  %2125 = landingpad { ptr, i32 }
          cleanup
  %2126 = extractvalue { ptr, i32 } %2125, 0
  store ptr %2126, ptr %26, align 8
  %2127 = extractvalue { ptr, i32 } %2125, 1
  store i32 %2127, ptr %27, align 4
  br label %2142

2128:                                             ; preds = %2108
  %2129 = landingpad { ptr, i32 }
          cleanup
  %2130 = extractvalue { ptr, i32 } %2129, 0
  store ptr %2130, ptr %26, align 8
  %2131 = extractvalue { ptr, i32 } %2129, 1
  store i32 %2131, ptr %27, align 4
  br label %2141

2132:                                             ; preds = %2109
  %2133 = landingpad { ptr, i32 }
          cleanup
  %2134 = extractvalue { ptr, i32 } %2133, 0
  store ptr %2134, ptr %26, align 8
  %2135 = extractvalue { ptr, i32 } %2133, 1
  store i32 %2135, ptr %27, align 4
  br label %2140

2136:                                             ; preds = %2113
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %26, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %27, align 4
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #12
  br label %2140

2140:                                             ; preds = %2136, %2132
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #12
  br label %2141

2141:                                             ; preds = %2140, %2128
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #12
  br label %2142

2142:                                             ; preds = %2141, %2124
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #12
  br label %2411

2143:                                             ; preds = %2116
  br label %2144

2144:                                             ; preds = %2143
  %2145 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2146 unwind label %2161

2146:                                             ; preds = %2144
  br i1 %2145, label %2147, label %2165

2147:                                             ; preds = %2146
  %2148 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2148, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2150 unwind label %2161

2150:                                             ; preds = %2147
  %2151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2149, ptr noundef @.str.199)
          to label %2152 unwind label %2161

2152:                                             ; preds = %2150
  %2153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %2151, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %2154 unwind label %2161

2154:                                             ; preds = %2152
  %2155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2153, ptr noundef @.str.222)
          to label %2156 unwind label %2161

2156:                                             ; preds = %2154
  %2157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2155, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2158 unwind label %2161

2158:                                             ; preds = %2156
  %2159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2157, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2160 unwind label %2161

2160:                                             ; preds = %2158
  br label %2165

2161:                                             ; preds = %2158, %2156, %2154, %2152, %2150, %2147, %2144
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %26, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %27, align 4
  br label %2411

2165:                                             ; preds = %2160, %2146
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #12
  %2168 = load ptr, ptr %12, align 8, !tbaa !5
  %2169 = load ptr, ptr %170, align 8, !tbaa !5
  %2170 = load ptr, ptr %15, align 8, !tbaa !5
  %2171 = load i32, ptr %17, align 4, !tbaa !9
  %2172 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %2168, ptr noundef nonnull align 8 dereferenceable(352) %2169, ptr noundef nonnull align 8 dereferenceable(8) %2170, i32 noundef %2171)
          to label %2173 unwind label %2201

2173:                                             ; preds = %2167
  store ptr %2172, ptr %174, align 8, !tbaa !5
  %2174 = load ptr, ptr %174, align 8, !tbaa !5
  %2175 = icmp ne ptr %2174, null
  br i1 %2175, label %2176, label %2383

2176:                                             ; preds = %2173
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #12
  %2177 = load ptr, ptr %174, align 8, !tbaa !5
  store ptr %2177, ptr %175, align 8, !tbaa !5
  br label %2178

2178:                                             ; preds = %2176
  %2179 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2180 unwind label %2205

2180:                                             ; preds = %2178
  br i1 %2179, label %2181, label %2209

2181:                                             ; preds = %2180
  %2182 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2182, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2184 unwind label %2205

2184:                                             ; preds = %2181
  %2185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2183, ptr noundef @.str.223)
          to label %2186 unwind label %2205

2186:                                             ; preds = %2184
  %2187 = load ptr, ptr %168, align 8, !tbaa !5
  %2188 = getelementptr inbounds %"struct.std::pair.678", ptr %2187, i32 0, i32 0
  %2189 = load ptr, ptr %2188, align 8, !tbaa !108
  %2190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2185, ptr noundef nonnull align 8 dereferenceable(8) %2189)
          to label %2191 unwind label %2205

2191:                                             ; preds = %2186
  %2192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2190, ptr noundef @.str.202)
          to label %2193 unwind label %2205

2193:                                             ; preds = %2191
  %2194 = load ptr, ptr %175, align 8, !tbaa !5
  %2195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %2192, ptr noundef nonnull align 8 dereferenceable(8) %2194)
          to label %2196 unwind label %2205

2196:                                             ; preds = %2193
  %2197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2195, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2198 unwind label %2205

2198:                                             ; preds = %2196
  %2199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2197, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2200 unwind label %2205

2200:                                             ; preds = %2198
  br label %2209

2201:                                             ; preds = %2394, %2392, %2390, %2387, %2384, %2167
  %2202 = landingpad { ptr, i32 }
          cleanup
  %2203 = extractvalue { ptr, i32 } %2202, 0
  store ptr %2203, ptr %26, align 8
  %2204 = extractvalue { ptr, i32 } %2202, 1
  store i32 %2204, ptr %27, align 4
  br label %2410

2205:                                             ; preds = %2198, %2196, %2193, %2191, %2186, %2184, %2181, %2178
  %2206 = landingpad { ptr, i32 }
          cleanup
  %2207 = extractvalue { ptr, i32 } %2206, 0
  store ptr %2207, ptr %26, align 8
  %2208 = extractvalue { ptr, i32 } %2206, 1
  store i32 %2208, ptr %27, align 4
  br label %2382

2209:                                             ; preds = %2200, %2180
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

2211:                                             ; preds = %2210
  call void @llvm.lifetime.start.p0(i64 24, ptr %176) #12
  %2212 = load ptr, ptr %168, align 8, !tbaa !5
  %2213 = getelementptr inbounds %"struct.std::pair.678", ptr %2212, i32 0, i32 1
  %2214 = load ptr, ptr %2213, align 8, !tbaa !110
  %2215 = getelementptr inbounds %"class.HIR::Trait", ptr %2214, i32 0, i32 0
  invoke void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8 %176, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(96) %2215)
          to label %2216 unwind label %2277

2216:                                             ; preds = %2211
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #12
  store i8 0, ptr %177, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %178) #12
  store i8 0, ptr %178, align 1, !tbaa !13
  %2217 = load ptr, ptr %12, align 8, !tbaa !5
  %2218 = load ptr, ptr %168, align 8, !tbaa !5
  %2219 = getelementptr inbounds %"struct.std::pair.678", ptr %2218, i32 0, i32 0
  %2220 = load ptr, ptr %2219, align 8, !tbaa !108
  %2221 = load ptr, ptr %175, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %180) #12
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 1 dereferenceable(1) %180) #12
  %2222 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_magicERK4SpanRKN3HIR10SimplePathERKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %2217, ptr noundef nonnull align 8 dereferenceable(8) %2220, ptr noundef nonnull align 8 dereferenceable(24) %176, ptr noundef nonnull align 8 dereferenceable(8) %2221, ptr noundef %179)
          to label %2223 unwind label %2281

2223:                                             ; preds = %2216
  %2224 = zext i1 %2222 to i8
  store i8 %2224, ptr %178, align 1, !tbaa !13
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #12
  %2225 = load ptr, ptr %12, align 8, !tbaa !5
  %2226 = load ptr, ptr %168, align 8, !tbaa !5
  %2227 = getelementptr inbounds %"struct.std::pair.678", ptr %2226, i32 0, i32 0
  %2228 = load ptr, ptr %2227, align 8, !tbaa !108
  %2229 = load ptr, ptr %175, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %182) #12
  %2230 = getelementptr inbounds %class.anon.682, ptr %182, i32 0, i32 0
  store ptr %177, ptr %2230, align 8, !tbaa !5
  %2231 = getelementptr inbounds %class.anon.682, ptr %182, i32 0, i32 1
  store ptr %178, ptr %2231, align 8, !tbaa !5
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(16) %182) #12
  %2232 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %192, ptr noundef nonnull align 8 dereferenceable(8) %2225, ptr noundef nonnull align 8 dereferenceable(8) %2228, ptr noundef %176, ptr noundef nonnull align 8 dereferenceable(8) %2229, ptr noundef %181)
          to label %2233 unwind label %2285

2233:                                             ; preds = %2223
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #12
  %2234 = load i8, ptr %178, align 1, !tbaa !13, !range !48, !noundef !49
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2379

2236:                                             ; preds = %2233
  br label %2237

2237:                                             ; preds = %2236
  %2238 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2239 unwind label %2289

2239:                                             ; preds = %2237
  br i1 %2238, label %2240, label %2297

2240:                                             ; preds = %2239
  %2241 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2241, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2243 unwind label %2289

2243:                                             ; preds = %2240
  %2244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2242, ptr noundef @.str.201)
          to label %2245 unwind label %2289

2245:                                             ; preds = %2243
  %2246 = load ptr, ptr %168, align 8, !tbaa !5
  %2247 = getelementptr inbounds %"struct.std::pair.678", ptr %2246, i32 0, i32 0
  %2248 = load ptr, ptr %2247, align 8, !tbaa !108
  %2249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2244, ptr noundef nonnull align 8 dereferenceable(8) %2248)
          to label %2250 unwind label %2289

2250:                                             ; preds = %2245
  %2251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(8) %2249, ptr noundef nonnull align 8 dereferenceable(24) %176)
          to label %2252 unwind label %2289

2252:                                             ; preds = %2250
  %2253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2251, ptr noundef @.str.202)
          to label %2254 unwind label %2289

2254:                                             ; preds = %2252
  %2255 = load ptr, ptr %175, align 8, !tbaa !5
  %2256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %2253, ptr noundef nonnull align 8 dereferenceable(8) %2255)
          to label %2257 unwind label %2289

2257:                                             ; preds = %2254
  %2258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2256, ptr noundef @.str.203)
          to label %2259 unwind label %2289

2259:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 16, ptr %183) #12
  %2260 = getelementptr inbounds %class.TraitResolution, ptr %192, i32 0, i32 2
  %2261 = load ptr, ptr %2260, align 8, !tbaa !15
  %2262 = load ptr, ptr %175, align 8, !tbaa !5
  %2263 = invoke { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49) %2261, ptr noundef nonnull align 8 dereferenceable(8) %2262)
          to label %2264 unwind label %2293

2264:                                             ; preds = %2259
  %2265 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 0
  %2266 = extractvalue { ptr, ptr } %2263, 0
  store ptr %2266, ptr %2265, align 8
  %2267 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 1
  %2268 = extractvalue { ptr, ptr } %2263, 1
  store ptr %2268, ptr %2267, align 8
  %2269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRKN16HMTypeInferrence7FmtTypeE(ptr noundef nonnull align 8 dereferenceable(8) %2258, ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %2270 unwind label %2293

2270:                                             ; preds = %2264
  %2271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2269, ptr noundef @.str.37)
          to label %2272 unwind label %2293

2272:                                             ; preds = %2270
  %2273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2271, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2274 unwind label %2293

2274:                                             ; preds = %2272
  %2275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2273, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2276 unwind label %2293

2276:                                             ; preds = %2274
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #12
  br label %2297

2277:                                             ; preds = %2211
  %2278 = landingpad { ptr, i32 }
          cleanup
  %2279 = extractvalue { ptr, i32 } %2278, 0
  store ptr %2279, ptr %26, align 8
  %2280 = extractvalue { ptr, i32 } %2278, 1
  store i32 %2280, ptr %27, align 4
  br label %2381

2281:                                             ; preds = %2216
  %2282 = landingpad { ptr, i32 }
          cleanup
  %2283 = extractvalue { ptr, i32 } %2282, 0
  store ptr %2283, ptr %26, align 8
  %2284 = extractvalue { ptr, i32 } %2282, 1
  store i32 %2284, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #12
  br label %2380

2285:                                             ; preds = %2223
  %2286 = landingpad { ptr, i32 }
          cleanup
  %2287 = extractvalue { ptr, i32 } %2286, 0
  store ptr %2287, ptr %26, align 8
  %2288 = extractvalue { ptr, i32 } %2286, 1
  store i32 %2288, ptr %27, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #12
  br label %2380

2289:                                             ; preds = %2329, %2327, %2323, %2321, %2318, %2315, %2257, %2254, %2252, %2250, %2245, %2243, %2240, %2237
  %2290 = landingpad { ptr, i32 }
          cleanup
  %2291 = extractvalue { ptr, i32 } %2290, 0
  store ptr %2291, ptr %26, align 8
  %2292 = extractvalue { ptr, i32 } %2290, 1
  store i32 %2292, ptr %27, align 4
  br label %2380

2293:                                             ; preds = %2274, %2272, %2270, %2264, %2259
  %2294 = landingpad { ptr, i32 }
          cleanup
  %2295 = extractvalue { ptr, i32 } %2294, 0
  store ptr %2295, ptr %26, align 8
  %2296 = extractvalue { ptr, i32 } %2294, 1
  store i32 %2296, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #12
  br label %2380

2297:                                             ; preds = %2276, %2239
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  %2300 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %184) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %185) #12
  %2301 = load ptr, ptr %175, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %186, ptr noundef nonnull align 8 dereferenceable(8) %2301)
          to label %2302 unwind label %2332

2302:                                             ; preds = %2299
  %2303 = load ptr, ptr %168, align 8, !tbaa !5
  %2304 = getelementptr inbounds %"struct.std::pair.678", ptr %2303, i32 0, i32 0
  %2305 = load ptr, ptr %2304, align 8, !tbaa !108
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull align 8 dereferenceable(8) %2305)
          to label %2306 unwind label %2336

2306:                                             ; preds = %2302
  invoke void @_ZN3HIR10PathParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %189, ptr noundef nonnull align 8 dereferenceable(24) %176)
          to label %2307 unwind label %2340

2307:                                             ; preds = %2306
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef %188, ptr noundef %189)
          to label %2308 unwind label %2344

2308:                                             ; preds = %2307
  %2309 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull align 8 dereferenceable(8) %2309)
          to label %2310 unwind label %2348

2310:                                             ; preds = %2308
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %191)
          to label %2311 unwind label %2352

2311:                                             ; preds = %2310
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %185, ptr noundef %186, ptr noundef %187, ptr noundef %190, ptr noundef %191)
          to label %2312 unwind label %2356

2312:                                             ; preds = %2311
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.653") align 8 %184, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(88) %185)
          to label %2313 unwind label %2360

2313:                                             ; preds = %2312
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %2300, ptr noundef nonnull align 8 dereferenceable(96) %184)
          to label %2314 unwind label %2364

2314:                                             ; preds = %2313
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %184) #12
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %185) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %191) #12
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %189) #12
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #12
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %185) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %184) #12
  br label %2315

2315:                                             ; preds = %2314
  %2316 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2317 unwind label %2289

2317:                                             ; preds = %2315
  br i1 %2316, label %2318, label %2376

2318:                                             ; preds = %2317
  %2319 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2319, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2321 unwind label %2289

2321:                                             ; preds = %2318
  %2322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2320, ptr noundef @.str.204)
          to label %2323 unwind label %2289

2323:                                             ; preds = %2321
  %2324 = load ptr, ptr %19, align 8, !tbaa !5
  %2325 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %2324) #12
  %2326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %2322, ptr noundef nonnull align 8 dereferenceable(96) %2325)
          to label %2327 unwind label %2289

2327:                                             ; preds = %2323
  %2328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2326, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2329 unwind label %2289

2329:                                             ; preds = %2327
  %2330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2328, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2331 unwind label %2289

2331:                                             ; preds = %2329
  br label %2376

2332:                                             ; preds = %2299
  %2333 = landingpad { ptr, i32 }
          cleanup
  %2334 = extractvalue { ptr, i32 } %2333, 0
  store ptr %2334, ptr %26, align 8
  %2335 = extractvalue { ptr, i32 } %2333, 1
  store i32 %2335, ptr %27, align 4
  br label %2375

2336:                                             ; preds = %2302
  %2337 = landingpad { ptr, i32 }
          cleanup
  %2338 = extractvalue { ptr, i32 } %2337, 0
  store ptr %2338, ptr %26, align 8
  %2339 = extractvalue { ptr, i32 } %2337, 1
  store i32 %2339, ptr %27, align 4
  br label %2374

2340:                                             ; preds = %2306
  %2341 = landingpad { ptr, i32 }
          cleanup
  %2342 = extractvalue { ptr, i32 } %2341, 0
  store ptr %2342, ptr %26, align 8
  %2343 = extractvalue { ptr, i32 } %2341, 1
  store i32 %2343, ptr %27, align 4
  br label %2373

2344:                                             ; preds = %2307
  %2345 = landingpad { ptr, i32 }
          cleanup
  %2346 = extractvalue { ptr, i32 } %2345, 0
  store ptr %2346, ptr %26, align 8
  %2347 = extractvalue { ptr, i32 } %2345, 1
  store i32 %2347, ptr %27, align 4
  br label %2372

2348:                                             ; preds = %2308
  %2349 = landingpad { ptr, i32 }
          cleanup
  %2350 = extractvalue { ptr, i32 } %2349, 0
  store ptr %2350, ptr %26, align 8
  %2351 = extractvalue { ptr, i32 } %2349, 1
  store i32 %2351, ptr %27, align 4
  br label %2371

2352:                                             ; preds = %2310
  %2353 = landingpad { ptr, i32 }
          cleanup
  %2354 = extractvalue { ptr, i32 } %2353, 0
  store ptr %2354, ptr %26, align 8
  %2355 = extractvalue { ptr, i32 } %2353, 1
  store i32 %2355, ptr %27, align 4
  br label %2370

2356:                                             ; preds = %2311
  %2357 = landingpad { ptr, i32 }
          cleanup
  %2358 = extractvalue { ptr, i32 } %2357, 0
  store ptr %2358, ptr %26, align 8
  %2359 = extractvalue { ptr, i32 } %2357, 1
  store i32 %2359, ptr %27, align 4
  br label %2369

2360:                                             ; preds = %2312
  %2361 = landingpad { ptr, i32 }
          cleanup
  %2362 = extractvalue { ptr, i32 } %2361, 0
  store ptr %2362, ptr %26, align 8
  %2363 = extractvalue { ptr, i32 } %2361, 1
  store i32 %2363, ptr %27, align 4
  br label %2368

2364:                                             ; preds = %2313
  %2365 = landingpad { ptr, i32 }
          cleanup
  %2366 = extractvalue { ptr, i32 } %2365, 0
  store ptr %2366, ptr %26, align 8
  %2367 = extractvalue { ptr, i32 } %2365, 1
  store i32 %2367, ptr %27, align 4
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %184) #12
  br label %2368

2368:                                             ; preds = %2364, %2360
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %185) #12
  br label %2369

2369:                                             ; preds = %2368, %2356
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %191) #12
  br label %2370

2370:                                             ; preds = %2369, %2352
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #12
  br label %2371

2371:                                             ; preds = %2370, %2348
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #12
  br label %2372

2372:                                             ; preds = %2371, %2344
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %189) #12
  br label %2373

2373:                                             ; preds = %2372, %2340
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #12
  br label %2374

2374:                                             ; preds = %2373, %2336
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #12
  br label %2375

2375:                                             ; preds = %2374, %2332
  call void @llvm.lifetime.end.p0(i64 88, ptr %185) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr %184) #12
  br label %2380

2376:                                             ; preds = %2331, %2317
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  store i8 1, ptr %20, align 1, !tbaa !13
  br label %2379

2379:                                             ; preds = %2378, %2233
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %176) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #12
  br label %2400

2380:                                             ; preds = %2375, %2293, %2289, %2285, %2281
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #12
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %176) #12
  br label %2381

2381:                                             ; preds = %2380, %2277
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #12
  br label %2382

2382:                                             ; preds = %2381, %2205
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #12
  br label %2410

2383:                                             ; preds = %2173
  br label %2384

2384:                                             ; preds = %2383
  %2385 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2386 unwind label %2201

2386:                                             ; preds = %2384
  br i1 %2385, label %2387, label %2397

2387:                                             ; preds = %2386
  %2388 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %2389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2388, ptr noundef @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %2390 unwind label %2201

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.224)
          to label %2392 unwind label %2201

2392:                                             ; preds = %2390
  %2393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2391, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2394 unwind label %2201

2394:                                             ; preds = %2392
  %2395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2393, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2396 unwind label %2201

2396:                                             ; preds = %2394
  br label %2397

2397:                                             ; preds = %2396, %2386
  br label %2398

2398:                                             ; preds = %2397
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399, %2379
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #12
  store i32 0, ptr %36, align 4
  br label %2401

2401:                                             ; preds = %2400, %2119
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #12
  %2402 = load i32, ptr %36, align 4
  switch i32 %2402, label %2404 [
    i32 0, label %2403
  ]

2403:                                             ; preds = %2401
  store i32 0, ptr %36, align 4
  br label %2404

2404:                                             ; preds = %2403, %2401, %2097
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #12
  %2405 = load i32, ptr %36, align 4
  switch i32 %2405, label %2414 [
    i32 0, label %2406
    i32 65, label %2407
  ]

2406:                                             ; preds = %2404
  br label %2407

2407:                                             ; preds = %2406, %2404
  %2408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %2409 unwind label %2086

2409:                                             ; preds = %2407
  br label %2074

2410:                                             ; preds = %2382, %2201
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #12
  br label %2411

2411:                                             ; preds = %2410, %2161, %2142
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #12
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #12
  br label %2412

2412:                                             ; preds = %2411, %2120
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #12
  br label %2413

2413:                                             ; preds = %2412, %2098
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #12
  br label %2415

2414:                                             ; preds = %2404, %2077
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #12
  br label %2418

2415:                                             ; preds = %2413, %2086
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #12
  br label %2416

2416:                                             ; preds = %2415, %2082
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #12
  br label %2417

2417:                                             ; preds = %2416, %2078
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #12
  br label %2422

2418:                                             ; preds = %2414
  %2419 = load i8, ptr %20, align 1, !tbaa !13, !range !48, !noundef !49
  %2420 = trunc i8 %2419 to i1
  store i1 %2420, ptr %10, align 1
  store i32 1, ptr %36, align 4
  br label %2421

2421:                                             ; preds = %2418, %1198
  call void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %73) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #12
  br label %2424

2422:                                             ; preds = %2417, %2058, %1223, %1015
  call void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %73) #12
  br label %2423

2423:                                             ; preds = %2422, %1011
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #12
  br label %2426

2424:                                             ; preds = %2421, %989, %560
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #12
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  %2425 = load i1, ptr %10, align 1
  ret i1 %2425

2426:                                             ; preds = %2423, %992, %564, %307, %234
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #12
  br label %2427

2427:                                             ; preds = %2426, %230
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #12
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #12
  br label %2428

2428:                                             ; preds = %2427, %226
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  br label %2429

2429:                                             ; preds = %2428
  %2430 = load ptr, ptr %26, align 8
  %2431 = load i32, ptr %27, align 4
  %2432 = insertvalue { ptr, i32 } poison, ptr %2430, 0
  %2433 = insertvalue { ptr, i32 } %2432, i32 %2431, 1
  resume { ptr, i32 } %2433

2434:                                             ; preds = %533
  %2435 = landingpad { ptr, i32 }
          catch ptr null
  %2436 = extractvalue { ptr, i32 } %2435, 0
  call void @__clang_call_terminate(ptr %2436) #13
  unreachable

2437:                                             ; preds = %2025, %1495
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

declare void @_ZNK3HIR13InherentCache4findERK4SpanRK8RcStringRKNS_7TypeRefERKNS_19ResolvePlaceholdersESt8functionIFvS9_RKNS_8TypeImplEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRKN3HIR7TypeRefERKNS0_8TypeImplEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISM_EERKSE_IjSaIjEES3_RK8RcStringNSA_12MethodAccessENSA_15AutoderefBorrowERSE_ISF_ISZ_NS0_4PathEESaIS11_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(48)) 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 #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind noalias writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.653") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(88)) #3

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #10

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #11

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN18MonomorphEraseHrlsC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

declare void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Path::Data") align 8, ptr noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR13GenericParams17make_empty_paramsEb(ptr dead_on_unwind noalias writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(96), i1 noundef zeroext) #3 align 2

declare noundef zeroext i1 @_Z30monomorphise_pathparams_neededRKN3HIR10PathParamsEb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z5beginIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z3endIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind memory(none) }
attributes #11 = { noinline noreturn nounwind uwtable "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 #12 = { nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { 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 = !{!"_ZTSN15TraitResolution12MethodAccessE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN15TraitResolution15AutoderefBorrowE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !6, i64 224}
!16 = !{!"_ZTS15TraitResolution", !17, i64 0, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !35, i64 256}
!17 = !{!"_ZTS18TraitResolveCommon", !6, i64 0, !6, i64 8, !6, i64 16, !18, i64 24, !27, i64 72, !33, i64 104, !33, i64 112, !33, i64 120, !33, i64 128, !33, i64 136, !33, i64 144, !33, i64 152, !33, i64 160, !33, i64 168, !33, i64 176, !33, i64 184, !33, i64 192, !33, i64 200, !33, i64 208}
!18 = !{!"_ZTSSt3mapIN3HIR7TypeRefEN18TraitResolveCommon14CachedEqualityESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !19, i64 0}
!19 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !20, i64 0}
!20 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !21, i64 0, !23, i64 8}
!21 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR7TypeRefEEE", !22, i64 0}
!22 = !{!"_ZTSSt4lessIN3HIR7TypeRefEE"}
!23 = !{!"_ZTSSt15_Rb_tree_header", !24, i64 0, !26, i64 32}
!24 = !{!"_ZTSSt18_Rb_tree_node_base", !25, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!25 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTS11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE", !28, i64 0, !32, i64 24}
!28 = !{!"_ZTSSt6vectorISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSN18TraitResolveCommon14CachedBoundCmpE"}
!33 = !{!"_ZTSN3HIR10SimplePathE", !34, i64 0}
!34 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!35 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!40, !6, i64 16}
!40 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE3$_2", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!42, !42, i64 0}
!42 = !{!"int", !7, i64 0}
!43 = !{!17, !6, i64 0}
!44 = !{!45, !6, i64 8}
!45 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE3$_3", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!46 = !{!16, !6, i64 240}
!47 = !{!16, !6, i64 248}
!48 = !{i8 0, i8 2}
!49 = !{}
!50 = !{!51, !6, i64 96}
!51 = !{!"_ZTSN18TraitResolveCommon11CachedBoundE", !52, i64 0, !6, i64 96, !69, i64 104}
!52 = !{!"_ZTSN3HIR13GenericParamsE", !53, i64 0, !57, i64 24, !61, i64 48, !65, i64 72}
!53 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!61 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!65 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!69 = !{!"_ZTSSt3mapI8RcStringN3HIR9TraitPath8AtyEqualESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !70, i64 0}
!70 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyEqualEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !71, i64 0}
!71 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyEqualEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !72, i64 0, !23, i64 8}
!72 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !73, i64 0}
!73 = !{!"_ZTSSt4lessI8RcStringE"}
!74 = !{!75, !75, i64 0}
!75 = !{!"_ZTSN3HIR7CompareE", !7, i64 0}
!76 = !{!77, !6, i64 0}
!77 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE4$_12", !6, i64 0, !78, i64 8}
!78 = !{!"_ZTS4Span", !6, i64 0}
!79 = !{!80, !6, i64 136}
!80 = !{!"_ZTSN3HIR9TraitPathE", !81, i64 0, !87, i64 8, !69, i64 40, !92, i64 88, !6, i64 136}
!81 = !{!"_ZTSSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EE", !82, i64 0}
!82 = !{!"_ZTSSt15__uniq_ptr_dataIN3HIR13GenericParamsESt14default_deleteIS1_ELb1ELb1EE", !83, i64 0}
!83 = !{!"_ZTSSt15__uniq_ptr_implIN3HIR13GenericParamsESt14default_deleteIS1_EE", !84, i64 0}
!84 = !{!"_ZTSSt5tupleIJPN3HIR13GenericParamsESt14default_deleteIS1_EEE", !85, i64 0}
!85 = !{!"_ZTSSt11_Tuple_implILm0EJPN3HIR13GenericParamsESt14default_deleteIS1_EEE", !86, i64 0}
!86 = !{!"_ZTSSt10_Head_baseILm0EPN3HIR13GenericParamsELb0EE", !6, i64 0}
!87 = !{!"_ZTSN3HIR11GenericPathE", !33, i64 0, !88, i64 8}
!88 = !{!"_ZTSN3HIR10PathParamsE", !89, i64 0, !90, i64 8, !91, i64 16}
!89 = !{!"_ZTS10ThinVectorIN3HIR11LifetimeRefEE", !6, i64 0}
!90 = !{!"_ZTS10ThinVectorIN3HIR7TypeRefEE", !6, i64 0}
!91 = !{!"_ZTS10ThinVectorIN3HIR12ConstGenericEE", !6, i64 0}
!92 = !{!"_ZTSSt3mapI8RcStringN3HIR9TraitPath8AtyBoundESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !93, i64 0}
!93 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyBoundEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !94, i64 0}
!94 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyBoundEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !72, i64 0, !23, i64 8}
!95 = !{!96, !6, i64 120}
!96 = !{!"_ZTS17MonomorphStatePtr", !97, i64 0, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!97 = !{!"_ZTS15MonomorphiserPP", !98, i64 0}
!98 = !{!"_ZTS13Monomorphiser", !6, i64 8, !99, i64 16, !100, i64 72}
!99 = !{!"_ZTSN3HIR8ItemPathE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!100 = !{!"_ZTSSt6vectorIPKN3HIR13GenericParamsESaIS3_EE", !101, i64 0}
!101 = !{!"_ZTSSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE", !102, i64 0}
!102 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE12_Vector_implE", !103, i64 0}
!103 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!104 = !{!105, !6, i64 152}
!105 = !{!"_ZTSN3HIR12GenericBound15Data_TraitBoundE", !81, i64 0, !106, i64 8, !80, i64 16}
!106 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!107 = !{i64 0, i64 8, !5}
!108 = !{!109, !6, i64 0}
!109 = !{!"_ZTSSt4pairIPKN3HIR10SimplePathEPKNS0_5TraitEE", !6, i64 0, !6, i64 8}
!110 = !{!109, !6, i64 8}


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

%"class.HIR::TypeRef" = type { ptr }
%"struct.HMTypeInferrence::ResolvePlaceholders" = type { %"class.HIR::ResolvePlaceholders", ptr }
%"class.HIR::ResolvePlaceholders" = type { ptr }
%"class.HIR::TypePathBinding" = type { i32, %"union.HIR::TypePathBinding::DataUnion" }
%"union.HIR::TypePathBinding::DataUnion" = type { ptr }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"struct.HIR::PathParams" = type { %class.ThinVector.26, %class.ThinVector.27, %class.ThinVector.28 }
%class.ThinVector.26 = type { ptr }
%class.ThinVector.27 = type { ptr }
%class.ThinVector.28 = type { ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.659 = type { ptr, ptr, ptr }
%class.anon.660 = type { ptr, ptr }
%class.anon.661 = type { ptr, ptr, ptr }
%"class.std::function.662" = type { %"class.std::_Function_base", ptr }
%class.anon.665 = type { ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::function.444" = type { %"class.std::_Function_base", ptr }
%class.anon.666 = type { ptr }
%"struct.HMTypeInferrence::FmtType" = type { ptr, ptr }
%"struct.std::pair.653" = type { i32, %"class.HIR::Path" }
%"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.29" }
%class.RcString = type { ptr }
%"class.std::unique_ptr.29" = type { %"struct.std::__uniq_ptr_data.30" }
%"struct.std::__uniq_ptr_data.30" = type { %"class.std::__uniq_ptr_impl.31" }
%"class.std::__uniq_ptr_impl.31" = type { %"class.std::tuple.32" }
%"class.std::tuple.32" = type { %"struct.std::_Tuple_impl.33" }
%"struct.std::_Tuple_impl.33" = type { %"struct.std::_Head_base.36" }
%"struct.std::_Head_base.36" = type { ptr }
%"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator" = type { %"class.__gnu_cxx::__normal_iterator.224" }
%"class.__gnu_cxx::__normal_iterator.224" = type { ptr }
%struct.MonomorphEraseHrls = type { %class.Monomorphiser }
%class.Monomorphiser = type { ptr, ptr, %"class.HIR::ItemPath", %"class.std::vector.181" }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.181" = type { %"struct.std::_Vector_base.182" }
%"struct.std::_Vector_base.182" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.667 = type { ptr, %struct.Span }
%struct.Span = type { ptr }
%"class.std::function.521" = type { %"class.std::_Function_base", ptr }
%class.anon.668 = type { i8 }
%class.anon.670 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.154" = type { ptr }
%class.anon.672 = type { i8 }
%class.anon.674 = type { i8 }
%struct.MonomorphStatePtr = type { %class.MonomorphiserPP, ptr, ptr, ptr, ptr }
%class.MonomorphiserPP = type { %class.Monomorphiser }
%class.anon.676 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.443" = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator.677" }
%"class.__gnu_cxx::__normal_iterator.677" = type { ptr }
%class.anon.680 = type { i8 }
%class.anon.682 = type { ptr, ptr }

@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.7 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN15TraitResolution17RecursionDetectedE = external dso_local constant { ptr, ptr }, align 8
@.str.135 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE = external hidden unnamed_addr constant [12 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [23 x i8], align 1
@__PRETTY_FUNCTION__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE = external hidden unnamed_addr constant [252 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [21 x i8], align 1

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeData8is_InferEv(ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #5 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 #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #1

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

declare noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind noalias writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8, ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

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

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

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

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

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

declare void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

declare noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_magicERK4SpanRKN3HIR10SimplePathERKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

declare void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

declare void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #1

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

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

; 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 #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR7TypeRef8new_pathENS_4PathENS_15TypePathBindingE(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypeRef") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2 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 #5 align 2

declare void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR15TypePathBinding11make_OpaqueENS0_11Data_OpaqueE(ptr dead_on_unwind noalias writable sret(%"class.HIR::TypePathBinding") align 8) local_unnamed_addr #3 align 2

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

declare void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #3 align 2

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef, ptr noundef) unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(400), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

declare void @_ZNK3HIR11GenericPath5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

declare void @_ZNK13Monomorphiser21monomorph_path_paramsERK4SpanRKN3HIR10PathParamsEb(ptr dead_on_unwind writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, i32 noundef %6, i32 noundef %7, ptr noundef nonnull align 8 dereferenceable(24) %8) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca %class.TraceLog, align 8
  %14 = alloca %"class.std::function", align 8
  %15 = alloca %class.anon.659, align 8
  %16 = alloca %"class.std::function", align 8
  %17 = alloca %class.anon.660, align 8
  %18 = alloca %"struct.HMTypeInferrence::ResolvePlaceholders", align 8
  %19 = alloca %class.anon.661, align 8
  %20 = alloca %"struct.HMTypeInferrence::ResolvePlaceholders", align 8
  %21 = alloca %"class.std::function.662", align 8
  %22 = alloca %class.anon.665, align 8
  %23 = alloca %"class.HIR::GenericPath", align 8
  %24 = alloca %"struct.HIR::PathParams", align 8
  %25 = alloca i8, align 1
  %26 = alloca %"class.std::function.444", align 8
  %27 = alloca %class.anon.666, align 8
  %28 = alloca %"struct.HMTypeInferrence::FmtType", align 8
  %29 = alloca %"struct.std::pair.653", align 8
  %30 = alloca %"class.HIR::Path", align 8
  %31 = alloca %"class.HIR::TypeRef", align 8
  %32 = alloca %"class.HIR::GenericPath", align 8
  %33 = alloca %"struct.HIR::SimplePath", align 8
  %34 = alloca %"struct.HIR::PathParams", align 8
  %35 = alloca %class.RcString, align 8
  %36 = alloca %"struct.HIR::PathParams", align 8
  %37 = alloca %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", align 8
  %38 = alloca %"class.RangeVecMap<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound, TraitResolveCommon::CachedBoundCmp>::const_iterator", align 8
  %39 = alloca %"class.HIR::GenericPath", align 8
  %40 = alloca %"class.HIR::GenericPath", align 8
  %41 = alloca %struct.MonomorphEraseHrls, align 8
  %42 = alloca %"struct.std::pair.653", align 8
  %43 = alloca %"class.HIR::Path", align 8
  %44 = alloca %"class.HIR::Path::Data", align 8
  %45 = alloca %"struct.HIR::Path::Data::Data_UfcsKnown", align 8
  %46 = alloca %"struct.std::pair.653", align 8
  %47 = alloca %"class.HIR::Path", align 8
  %48 = alloca %"class.HIR::Path::Data", align 8
  %49 = alloca %"struct.HIR::Path::Data::Data_UfcsKnown", align 8
  %50 = alloca %class.anon.667, align 8
  %51 = alloca %"class.std::function.521", align 8
  %52 = alloca %class.anon.668, align 1
  %53 = alloca %"class.HIR::GenericPath", align 8
  %54 = alloca %"class.HIR::TypeRef", align 8
  %55 = alloca %"struct.std::pair.653", align 8
  %56 = alloca %"class.HIR::Path", align 8
  %57 = alloca %"class.HIR::TypeRef", align 8
  %58 = alloca %"class.HIR::GenericPath", align 8
  %59 = alloca %class.RcString, align 8
  %60 = alloca %"struct.HIR::PathParams", align 8
  %61 = alloca %"class.std::function.521", align 8
  %62 = alloca %class.anon.670, align 1
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %65 = alloca %"class.HIR::GenericPath", align 8
  %66 = alloca %"class.HIR::TypeRef", align 8
  %67 = alloca %"struct.std::pair.653", align 8
  %68 = alloca %"class.HIR::Path", align 8
  %69 = alloca %"class.HIR::TypeRef", align 8
  %70 = alloca %"class.HIR::GenericPath", align 8
  %71 = alloca %class.RcString, align 8
  %72 = alloca %"struct.HIR::PathParams", align 8
  %73 = alloca %"class.std::function.521", align 8
  %74 = alloca %class.anon.672, align 1
  %75 = alloca %"class.std::function.521", align 8
  %76 = alloca %class.anon.674, align 1
  %77 = alloca %struct.MonomorphStatePtr, align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %79 = alloca %"class.__gnu_cxx::__normal_iterator.154", align 8
  %80 = alloca %struct.Span, align 8
  %81 = alloca %"class.std::function", align 8
  %82 = alloca %class.anon.676, align 8
  %83 = alloca %"class.HIR::GenericPath", align 8
  %84 = alloca %"class.HIR::TypeRef", align 8
  %85 = alloca %"class.HIR::Path", align 8
  %86 = alloca %"class.HIR::TypeRef", align 8
  %87 = alloca %"class.HIR::GenericPath", align 8
  %88 = alloca %class.RcString, align 8
  %89 = alloca %"struct.HIR::PathParams", align 8
  %90 = alloca %"class.HIR::TypePathBinding", align 8
  %91 = alloca %"struct.HIR::PathParams", align 8
  %92 = alloca %"class.HIR::GenericPath", align 8
  %93 = alloca %"struct.std::pair.653", align 8
  %94 = alloca %"class.HIR::Path", align 8
  %95 = alloca %"class.HIR::TypeRef", align 8
  %96 = alloca %"class.HIR::GenericPath", align 8
  %97 = alloca %class.RcString, align 8
  %98 = alloca %"struct.HIR::PathParams", align 8
  %99 = alloca %"class.__gnu_cxx::__normal_iterator.443", align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator.443", align 8
  %101 = alloca %"class.HIR::TypeRef", align 8
  %102 = alloca %"class.HIR::GenericPath", align 8
  %103 = alloca %"class.HIR::TypeRef", align 8
  %104 = alloca %"struct.HIR::PathParams", align 8
  %105 = alloca %"struct.std::pair.653", align 8
  %106 = alloca %"class.HIR::Path", align 8
  %107 = alloca %"class.HIR::TypeRef", align 8
  %108 = alloca %"class.HIR::GenericPath", align 8
  %109 = alloca %class.RcString, align 8
  %110 = alloca %"struct.HIR::PathParams", align 8
  %111 = alloca %"class.std::reverse_iterator", align 8
  %112 = alloca %"class.std::reverse_iterator", align 8
  %113 = alloca %"class.HIR::GenericPath", align 8
  %114 = alloca %"class.HIR::GenericPath", align 8
  %115 = alloca %"struct.HIR::SimplePath", align 8
  %116 = alloca %"class.HIR::TypeRef", align 8
  %117 = alloca %"struct.HIR::PathParams", align 8
  %118 = alloca i8, align 1
  %119 = alloca i8, align 1
  %120 = alloca %"class.std::function.444", align 8
  %121 = alloca %class.anon.680, align 1
  %122 = alloca %"class.std::function.444", align 8
  %123 = alloca %class.anon.682, align 8
  %124 = alloca %"struct.HMTypeInferrence::FmtType", align 8
  %125 = alloca %"struct.std::pair.653", align 8
  %126 = alloca %"class.HIR::Path", align 8
  %127 = alloca %"class.HIR::TypeRef", align 8
  %128 = alloca %"class.HIR::GenericPath", align 8
  %129 = alloca %"struct.HIR::SimplePath", align 8
  %130 = alloca %"struct.HIR::PathParams", align 8
  %131 = alloca %class.RcString, align 8
  %132 = alloca %"struct.HIR::PathParams", align 8
  store i32 %6, ptr %10, align 4, !tbaa !5
  store i32 %7, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  store i8 0, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #11
  %133 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %134 = select i1 %133, ptr @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE, ptr null
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #11
  store ptr %4, ptr %15, align 8, !tbaa !13
  %135 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %5, ptr %135, align 8, !tbaa !13
  %136 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %10, ptr %136, align 8, !tbaa !13
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(24) %15)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #11
  store ptr %12, ptr %17, align 8, !tbaa !13
  %137 = getelementptr inbounds i8, ptr %17, i64 8
  store ptr %8, ptr %137, align 8, !tbaa !13
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40) %13, ptr noundef %134, ptr noundef nonnull %14, ptr noundef nonnull %16)
          to label %138 unwind label %155

138:                                              ; preds = %9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #11
  %139 = getelementptr inbounds i8, ptr %0, i64 224
  %140 = load ptr, ptr %139, align 8, !tbaa !15
  invoke void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind nonnull writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8 %18, ptr noundef nonnull align 8 dereferenceable(49) %140)
          to label %141 unwind label %159

141:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #11
  store ptr %3, ptr %19, align 8, !tbaa !13
  %142 = getelementptr inbounds i8, ptr %19, i64 8
  store ptr %1, ptr %142, align 8, !tbaa !13
  %143 = getelementptr inbounds i8, ptr %19, i64 16
  store ptr %0, ptr %143, align 8, !tbaa !39
  %144 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %145 unwind label %163

145:                                              ; preds = %141
  br i1 %144, label %146, label %167

146:                                              ; preds = %145
  %147 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %147, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %149 unwind label %163

149:                                              ; preds = %146
  %150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull @.str.198)
          to label %151 unwind label %163

151:                                              ; preds = %149
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %153 unwind label %163

153:                                              ; preds = %151
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %167 unwind label %163

155:                                              ; preds = %9
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  %158 = extractvalue { ptr, i32 } %156, 1
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  br label %1400

159:                                              ; preds = %138
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  %162 = extractvalue { ptr, i32 } %160, 1
  br label %1399

163:                                              ; preds = %377, %375, %373, %370, %367, %153, %151, %149, %146, %141
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  %166 = extractvalue { ptr, i32 } %164, 1
  br label %1398

167:                                              ; preds = %153, %145
  %168 = load ptr, ptr %0, align 8, !tbaa !43
  %169 = getelementptr inbounds i8, ptr %168, i64 376
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #11
  %170 = load ptr, ptr %139, align 8, !tbaa !15
  invoke void @_ZNK16HMTypeInferrence22callback_resolve_inferEv(ptr dead_on_unwind nonnull writable sret(%"struct.HMTypeInferrence::ResolvePlaceholders") align 8 %20, ptr noundef nonnull align 8 dereferenceable(49) %170)
          to label %171 unwind label %204

171:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #11
  store ptr %5, ptr %22, align 8, !tbaa !13
  %172 = getelementptr inbounds i8, ptr %22, i64 8
  store ptr %0, ptr %172, align 8, !tbaa !44
  %173 = getelementptr inbounds i8, ptr %22, i64 16
  store ptr %1, ptr %173, align 8, !tbaa !13
  %174 = getelementptr inbounds i8, ptr %22, i64 24
  store ptr %8, ptr %174, align 8, !tbaa !13
  %175 = getelementptr inbounds i8, ptr %22, i64 32
  store ptr %11, ptr %175, align 8, !tbaa !13
  %176 = getelementptr inbounds i8, ptr %22, i64 40
  store ptr %12, ptr %176, align 8, !tbaa !13
  invoke void @"_ZNSt8functionIFvRKN3HIR7TypeRefERKNS0_8TypeImplEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISM_EERKSE_IjSaIjEES3_RK8RcStringNSA_12MethodAccessENSA_15AutoderefBorrowERSE_ISF_ISZ_NS0_4PathEESaIS11_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %177 unwind label %206

177:                                              ; preds = %171
  invoke void @_ZNK3HIR13InherentCache4findERK4SpanRK8RcStringRKNS_7TypeRefERKNS_19ResolvePlaceholdersESt8functionIFvS9_RKNS_8TypeImplEEE(ptr noundef nonnull align 8 dereferenceable(48) %169, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull %21)
          to label %178 unwind label %208

178:                                              ; preds = %177
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #11
  %179 = getelementptr inbounds i8, ptr %0, i64 240
  %180 = load ptr, ptr %179, align 8, !tbaa !46
  %.not = icmp eq ptr %180, null
  br i1 %.not, label %367, label %181

181:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %182 unwind label %212

182:                                              ; preds = %181
  %183 = load ptr, ptr %179, align 8, !tbaa !46
  %184 = getelementptr inbounds i8, ptr %0, i64 248
  %185 = load ptr, ptr %184, align 8, !tbaa !47
  %186 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(400) %185, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %187 unwind label %216

187:                                              ; preds = %182
  %.not398 = icmp eq ptr %186, null
  br i1 %.not398, label %.thread, label %188

188:                                              ; preds = %187
  %189 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %190 unwind label %216

190:                                              ; preds = %188
  br i1 %189, label %191, label %220

191:                                              ; preds = %190
  %192 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %192, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %194 unwind label %216

194:                                              ; preds = %191
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull @.str.199)
          to label %196 unwind label %216

196:                                              ; preds = %194
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %198 unwind label %216

198:                                              ; preds = %196
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @.str.200)
          to label %200 unwind label %216

200:                                              ; preds = %198
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %202 unwind label %216

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %220 unwind label %216

204:                                              ; preds = %167
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

206:                                              ; preds = %171
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %177
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %210

210:                                              ; preds = %208, %206
  %.pn = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #11
  br label %211

211:                                              ; preds = %210, %204
  %.pn.pn = phi { ptr, i32 } [ %.pn, %210 ], [ %205, %204 ]
  %.1238 = extractvalue { ptr, i32 } %.pn.pn, 0
  %.1254 = extractvalue { ptr, i32 } %.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #11
  br label %1398

212:                                              ; preds = %181
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  %215 = extractvalue { ptr, i32 } %213, 1
  br label %366

216:                                              ; preds = %202, %200, %198, %196, %194, %191, %188, %182
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  %219 = extractvalue { ptr, i32 } %217, 1
  br label %365

220:                                              ; preds = %202, %190
  %221 = load i32, ptr %10, align 4, !tbaa !5
  %222 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %186, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %221)
          to label %223 unwind label %232

223:                                              ; preds = %220
  %.not399 = icmp eq ptr %222, null
  br i1 %.not399, label %.thread, label %224

224:                                              ; preds = %223
  %225 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %222)
  %226 = call noundef zeroext i1 @_ZNK3HIR8TypeData8is_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %225)
  br i1 %226, label %227, label %236

227:                                              ; preds = %224
  %228 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %222)
  %229 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK3HIR8TypeData8as_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %228)
  %230 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData10Data_Infer6is_litEv(ptr noundef nonnull align 4 dereferenceable(8) %229)
          to label %231 unwind label %232

231:                                              ; preds = %227
  br i1 %230, label %236, label %.thread551

.thread551:                                       ; preds = %231
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %1397

232:                                              ; preds = %227, %220
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  %235 = extractvalue { ptr, i32 } %233, 1
  br label %365

236:                                              ; preds = %231, %224
  %237 = load ptr, ptr %0, align 8, !tbaa !43
  %238 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %237, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %239 unwind label %279

239:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #11
  invoke void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::PathParams") align 8 %24, ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(96) %238)
          to label %240 unwind label %283

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #11
  store i8 0, ptr %25, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  store ptr %25, ptr %27, align 8, !tbaa !13
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  %241 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull %26)
          to label %242 unwind label %287

242:                                              ; preds = %240
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %243 = load i8, ptr %25, align 1, !tbaa !11, !range !48, !noundef !49
  %244 = trunc nuw i8 %243 to i1
  br i1 %244, label %245, label %339

245:                                              ; preds = %242
  %246 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %247 unwind label %289

247:                                              ; preds = %245
  br i1 %246, label %248, label %293

248:                                              ; preds = %247
  %249 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %249, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %251 unwind label %289

251:                                              ; preds = %248
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull @.str.201)
          to label %253 unwind label %289

253:                                              ; preds = %251
  %254 = load ptr, ptr %179, align 8, !tbaa !46
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull align 8 dereferenceable(8) %254)
          to label %256 unwind label %289

256:                                              ; preds = %253
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %258 unwind label %289

258:                                              ; preds = %256
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull @.str.202)
          to label %260 unwind label %289

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %259, ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %262 unwind label %289

262:                                              ; preds = %260
  %263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull @.str.203)
          to label %264 unwind label %289

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #11
  %265 = load ptr, ptr %139, align 8, !tbaa !15
  %266 = invoke { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49) %265, ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %267 unwind label %291

267:                                              ; preds = %264
  %268 = extractvalue { ptr, ptr } %266, 0
  store ptr %268, ptr %28, align 8
  %269 = getelementptr inbounds i8, ptr %28, i64 8
  %270 = extractvalue { ptr, ptr } %266, 1
  store ptr %270, ptr %269, align 8
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRKN16HMTypeInferrence7FmtTypeE(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %272 unwind label %291

272:                                              ; preds = %267
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull @.str.37)
          to label %274 unwind label %291

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %276 unwind label %291

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %278 unwind label %291

278:                                              ; preds = %276
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #11
  br label %293

279:                                              ; preds = %236
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  %282 = extractvalue { ptr, i32 } %280, 1
  br label %365

283:                                              ; preds = %239
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  %286 = extractvalue { ptr, i32 } %284, 1
  br label %363

287:                                              ; preds = %240
  %288 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  br label %340

289:                                              ; preds = %314, %312, %309, %307, %304, %301, %262, %260, %258, %256, %253, %251, %248, %245
  %290 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %340

291:                                              ; preds = %276, %274, %272, %267, %264
  %292 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #11
  br label %340

293:                                              ; preds = %278, %247
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %30) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %31, ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %294 unwind label %316

294:                                              ; preds = %293
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %295 unwind label %318

295:                                              ; preds = %294
  invoke void @_ZN3HIR10PathParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %296 unwind label %320

296:                                              ; preds = %295
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull %33, ptr noundef nonnull %34)
          to label %297 unwind label %322

297:                                              ; preds = %296
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %36)
          to label %298 unwind label %324

298:                                              ; preds = %297
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %30, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %35, ptr noundef nonnull %36)
          to label %299 unwind label %326

299:                                              ; preds = %298
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %29, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %30)
          to label %300 unwind label %328

300:                                              ; preds = %299
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %29)
          to label %301 unwind label %330

301:                                              ; preds = %300
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %29) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %29) #11
  %302 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %303 unwind label %289

303:                                              ; preds = %301
  br i1 %302, label %304, label %339

304:                                              ; preds = %303
  %305 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %305, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %307 unwind label %289

307:                                              ; preds = %304
  %308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @.str.204)
          to label %309 unwind label %289

309:                                              ; preds = %307
  %310 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %308, ptr noundef nonnull align 8 dereferenceable(96) %310)
          to label %312 unwind label %289

312:                                              ; preds = %309
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %314 unwind label %289

314:                                              ; preds = %312
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %339 unwind label %289

316:                                              ; preds = %293
  %317 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %338

318:                                              ; preds = %294
  %319 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %337

320:                                              ; preds = %295
  %321 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %336

322:                                              ; preds = %296
  %323 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %335

324:                                              ; preds = %297
  %325 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %334

326:                                              ; preds = %298
  %327 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %333

328:                                              ; preds = %299
  %329 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  br label %332

330:                                              ; preds = %300
  %331 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN15TraitResolution17RecursionDetectedE
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %29) #11
  br label %332

332:                                              ; preds = %330, %328
  %.pn400 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #11
  br label %333

333:                                              ; preds = %332, %326
  %.pn400.pn = phi { ptr, i32 } [ %.pn400, %332 ], [ %327, %326 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #11
  br label %334

334:                                              ; preds = %333, %324
  %.pn400.pn.pn = phi { ptr, i32 } [ %.pn400.pn, %333 ], [ %325, %324 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  br label %335

335:                                              ; preds = %334, %322
  %.pn400.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn, %334 ], [ %323, %322 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  br label %336

336:                                              ; preds = %335, %320
  %.pn400.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn.pn, %335 ], [ %321, %320 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  br label %337

337:                                              ; preds = %336, %318
  %.pn400.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn.pn.pn, %336 ], [ %319, %318 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  br label %338

338:                                              ; preds = %337, %316
  %.pn400.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn.pn.pn.pn, %337 ], [ %317, %316 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %29) #11
  br label %340

339:                                              ; preds = %242, %303, %314
  %.0365 = phi i32 [ 1, %314 ], [ 1, %303 ], [ 0, %242 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #11
  br label %364

340:                                              ; preds = %338, %291, %289, %287
  %.pn408 = phi { ptr, i32 } [ %290, %289 ], [ %.pn400.pn.pn.pn.pn.pn.pn, %338 ], [ %292, %291 ], [ %288, %287 ]
  %.9246 = extractvalue { ptr, i32 } %.pn408, 0
  %.9262 = extractvalue { ptr, i32 } %.pn408, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #11
  %341 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN15TraitResolution17RecursionDetectedE) #11
  %342 = icmp eq i32 %.9262, %341
  br i1 %342, label %343, label %362

343:                                              ; preds = %340
  %344 = call ptr @__cxa_begin_catch(ptr %.9246) #11
  %345 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %346 unwind label %356

346:                                              ; preds = %343
  br i1 %345, label %347, label %358

347:                                              ; preds = %346
  %348 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %348, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %350 unwind label %356

350:                                              ; preds = %347
  %351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull @.str.205)
          to label %352 unwind label %356

352:                                              ; preds = %350
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %354 unwind label %356

354:                                              ; preds = %352
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %358 unwind label %356

356:                                              ; preds = %354, %352, %350, %347, %343
  %357 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %361 unwind label %1403

358:                                              ; preds = %354, %346
  invoke void @__cxa_end_catch()
          to label %364 unwind label %359

359:                                              ; preds = %358
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %361

361:                                              ; preds = %356, %359
  %.pn410 = phi { ptr, i32 } [ %360, %359 ], [ %357, %356 ]
  %.10247 = extractvalue { ptr, i32 } %.pn410, 0
  %.10263 = extractvalue { ptr, i32 } %.pn410, 1
  br label %362

362:                                              ; preds = %361, %340
  %.11264 = phi i32 [ %.10263, %361 ], [ %.9262, %340 ]
  %.11248 = phi ptr [ %.10247, %361 ], [ %.9246, %340 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #11
  br label %363

363:                                              ; preds = %362, %283
  %.12265 = phi i32 [ %.11264, %362 ], [ %286, %283 ]
  %.12249 = phi ptr [ %.11248, %362 ], [ %285, %283 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #11
  br label %365

.thread:                                          ; preds = %187, %223
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %367

364:                                              ; preds = %339, %358
  %.1366 = phi i32 [ %.0365, %339 ], [ 1, %358 ]
  %.1 = phi i1 [ true, %339 ], [ false, %358 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #11
  %cond9 = icmp eq i32 %.1366, 0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br i1 %cond9, label %367, label %1397

365:                                              ; preds = %232, %363, %279, %216
  %.15268 = phi i32 [ %219, %216 ], [ %235, %232 ], [ %.12265, %363 ], [ %282, %279 ]
  %.15252 = phi ptr [ %218, %216 ], [ %234, %232 ], [ %.12249, %363 ], [ %281, %279 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %366

366:                                              ; preds = %365, %212
  %.16269 = phi i32 [ %.15268, %365 ], [ %215, %212 ]
  %.16 = phi ptr [ %.15252, %365 ], [ %214, %212 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %1398

367:                                              ; preds = %.thread, %178, %364
  %368 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %369 unwind label %163

369:                                              ; preds = %367
  br i1 %368, label %370, label %379

370:                                              ; preds = %369
  %371 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %371, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %373 unwind label %163

373:                                              ; preds = %370
  %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.206)
          to label %375 unwind label %163

375:                                              ; preds = %373
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %377 unwind label %163

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %379 unwind label %163

379:                                              ; preds = %377, %369
  %380 = getelementptr inbounds i8, ptr %0, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %381 = invoke ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE5beginEv(ptr noundef nonnull align 8 dereferenceable(25) %380)
          to label %382 unwind label %394

382:                                              ; preds = %379
  store ptr %381, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #11
  %383 = invoke ptr @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE3endEv(ptr noundef nonnull align 8 dereferenceable(25) %380)
          to label %384 unwind label %396

384:                                              ; preds = %382
  store ptr %383, ptr %38, align 8
  %385 = call noundef zeroext i1 @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratorneERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38)
  br i1 %385, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %384
  %386 = getelementptr inbounds i8, ptr %49, i64 8
  %387 = getelementptr inbounds i8, ptr %49, i64 40
  %388 = getelementptr inbounds i8, ptr %49, i64 48
  %389 = getelementptr inbounds i8, ptr %49, i64 72
  %390 = getelementptr inbounds i8, ptr %45, i64 8
  %391 = getelementptr inbounds i8, ptr %45, i64 40
  %392 = getelementptr inbounds i8, ptr %45, i64 48
  %393 = getelementptr inbounds i8, ptr %45, i64 72
  br label %398

394:                                              ; preds = %379
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %606

396:                                              ; preds = %382
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %605

398:                                              ; preds = %.lr.ph, %600
  %399 = call noundef nonnull align 8 dereferenceable(192) ptr @_ZN11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  %400 = getelementptr inbounds i8, ptr %399, i64 8
  %401 = getelementptr inbounds i8, ptr %399, i64 136
  %402 = load ptr, ptr %401, align 8, !tbaa !50
  %.not412 = icmp eq ptr %402, null
  br i1 %.not412, label %403, label %404

403:                                              ; preds = %398
  call void @__assert_fail(ptr noundef nonnull @.str.207, ptr noundef nonnull @.str.7, i32 noundef 4826, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE) #12
  unreachable

404:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %405 unwind label %425

405:                                              ; preds = %404
  %406 = load ptr, ptr %401, align 8, !tbaa !50
  %407 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef nonnull align 8 dereferenceable(400) %406, ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %408 unwind label %427

408:                                              ; preds = %405
  %.not413 = icmp eq ptr %407, null
  br i1 %.not413, label %409, label %429

409:                                              ; preds = %408
  %410 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %411 unwind label %427

411:                                              ; preds = %409
  br i1 %410, label %412, label %600

412:                                              ; preds = %411
  %413 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %413, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %415 unwind label %427

415:                                              ; preds = %412
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %414, ptr noundef nonnull @.str.208)
          to label %417 unwind label %427

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %419 unwind label %427

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull @.str.209)
          to label %421 unwind label %427

421:                                              ; preds = %419
  %422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %423 unwind label %427

423:                                              ; preds = %421
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %422, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %600 unwind label %427

425:                                              ; preds = %404
  %426 = landingpad { ptr, i32 }
          cleanup
  br label %604

427:                                              ; preds = %443, %441, %439, %437, %435, %432, %429, %423, %421, %419, %417, %415, %412, %409, %405
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %603

429:                                              ; preds = %408
  %430 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %431 unwind label %427

431:                                              ; preds = %429
  br i1 %430, label %432, label %445

432:                                              ; preds = %431
  %433 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %433, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %435 unwind label %427

435:                                              ; preds = %432
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull @.str.199)
          to label %437 unwind label %427

437:                                              ; preds = %435
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %439 unwind label %427

439:                                              ; preds = %437
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef nonnull @.str.210)
          to label %441 unwind label %427

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %443 unwind label %427

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %445 unwind label %427

445:                                              ; preds = %443, %431
  %446 = load i32, ptr %10, align 4, !tbaa !5
  %447 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %407, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %446)
          to label %448 unwind label %461

448:                                              ; preds = %445
  %.not414 = icmp eq ptr %447, null
  br i1 %.not414, label %588, label %449

449:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #11
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %41) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %41, i8 0, i64 96, i1 false)
  invoke void @_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN18MonomorphEraseHrlsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %41)
          to label %450 unwind label %463

450:                                              ; preds = %449
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind nonnull writable sret(%"class.HIR::GenericPath") align 8 %40, ptr noundef nonnull align 8 dereferenceable(96) %41, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %39, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %451 unwind label %465

451:                                              ; preds = %450
  %452 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %453 unwind label %467

453:                                              ; preds = %451
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %41) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #11
  %454 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %447)
  %455 = call noundef zeroext i1 @_ZNK3HIR8TypeData8is_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %454)
  br i1 %455, label %456, label %471

456:                                              ; preds = %453
  %457 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %447)
  %458 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK3HIR8TypeData8as_InferEv(ptr noundef nonnull align 8 dereferenceable(184) %457)
  %459 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData10Data_Infer6is_litEv(ptr noundef nonnull align 4 dereferenceable(8) %458)
          to label %460 unwind label %461

460:                                              ; preds = %456
  br i1 %459, label %471, label %.thread559

461:                                              ; preds = %598, %596, %594, %591, %588, %456, %445
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %603

463:                                              ; preds = %449
  %464 = landingpad { ptr, i32 }
          cleanup
  br label %470

465:                                              ; preds = %450
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %469

467:                                              ; preds = %451
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  br label %469

469:                                              ; preds = %467, %465
  %.pn415 = phi { ptr, i32 } [ %468, %467 ], [ %466, %465 ]
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %41) #11
  br label %470

470:                                              ; preds = %469, %463
  %.pn415.pn = phi { ptr, i32 } [ %.pn415, %469 ], [ %464, %463 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #11
  br label %603

471:                                              ; preds = %460, %453
  %472 = invoke noundef i32 @_ZNK3HIR7TypeRef25compare_with_placeholdersERK4SpanRKS0_RKNS_19ResolvePlaceholdersE(ptr noundef nonnull align 8 dereferenceable(8) %447, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %473 unwind label %495

473:                                              ; preds = %471
  switch i32 %472, label %570 [
    i32 0, label %474
    i32 1, label %514
  ]

474:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %43) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %475 unwind label %497

475:                                              ; preds = %474
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %476 unwind label %499

476:                                              ; preds = %475
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %392)
          to label %477 unwind label %501

477:                                              ; preds = %476
  call void @_ZNSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %393) #11
  invoke void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path::Data") align 8 %44, ptr noundef nonnull %45)
          to label %478 unwind label %504

478:                                              ; preds = %477
  call void @_ZN3HIR4PathC2ENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(88) %43, ptr noundef nonnull %44)
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %42, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %43)
          to label %479 unwind label %506

479:                                              ; preds = %478
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %42)
          to label %480 unwind label %508

480:                                              ; preds = %479
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %42) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #11
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #11
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %45) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %42) #11
  %481 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %482 unwind label %495

482:                                              ; preds = %480
  br i1 %481, label %483, label %513

483:                                              ; preds = %482
  %484 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %484, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %486 unwind label %495

486:                                              ; preds = %483
  %487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %485, ptr noundef nonnull @.str.204)
          to label %488 unwind label %495

488:                                              ; preds = %486
  %489 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %487, ptr noundef nonnull align 8 dereferenceable(96) %489)
          to label %491 unwind label %495

491:                                              ; preds = %488
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %490, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %493 unwind label %495

493:                                              ; preds = %491
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %513 unwind label %495

495:                                              ; preds = %586, %584, %582, %580, %578, %576, %573, %570, %551, %549, %546, %544, %541, %538, %530, %528, %526, %524, %522, %520, %517, %514, %493, %491, %488, %486, %483, %480, %471
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %603

497:                                              ; preds = %474
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %512

499:                                              ; preds = %475
  %500 = landingpad { ptr, i32 }
          cleanup
  br label %503

501:                                              ; preds = %476
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #11
  br label %503

503:                                              ; preds = %501, %499
  %.pn424 = phi { ptr, i32 } [ %502, %501 ], [ %500, %499 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br label %512

504:                                              ; preds = %477
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %511

506:                                              ; preds = %478
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %510

508:                                              ; preds = %479
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %42) #11
  br label %510

510:                                              ; preds = %508, %506
  %.pn426 = phi { ptr, i32 } [ %509, %508 ], [ %507, %506 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #11
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #11
  br label %511

511:                                              ; preds = %510, %504
  %.pn426.pn = phi { ptr, i32 } [ %.pn426, %510 ], [ %505, %504 ]
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %45) #11
  br label %512

512:                                              ; preds = %511, %503, %497
  %.pn426.pn.pn = phi { ptr, i32 } [ %.pn426.pn, %511 ], [ %.pn424, %503 ], [ %498, %497 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %42) #11
  br label %603

513:                                              ; preds = %493, %482
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %600

514:                                              ; preds = %473
  %515 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %516 unwind label %495

516:                                              ; preds = %514
  br i1 %515, label %517, label %532

517:                                              ; preds = %516
  %518 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %518, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %520 unwind label %495

520:                                              ; preds = %517
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef nonnull @.str.211)
          to label %522 unwind label %495

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

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull @.str.135)
          to label %526 unwind label %495

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %525, ptr noundef nonnull align 8 dereferenceable(8) %399)
          to label %528 unwind label %495

528:                                              ; preds = %526
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %530 unwind label %495

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %529, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %532 unwind label %495

532:                                              ; preds = %530, %516
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %46) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %47) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %49, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %533 unwind label %553

533:                                              ; preds = %532
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %534 unwind label %555

534:                                              ; preds = %533
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %388)
          to label %535 unwind label %557

535:                                              ; preds = %534
  call void @_ZNSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %389) #11
  invoke void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path::Data") align 8 %48, ptr noundef nonnull %49)
          to label %536 unwind label %560

536:                                              ; preds = %535
  call void @_ZN3HIR4PathC2ENS0_4DataE(ptr noundef nonnull align 8 dereferenceable(88) %47, ptr noundef nonnull %48)
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %46, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %47)
          to label %537 unwind label %562

537:                                              ; preds = %536
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %46)
          to label %538 unwind label %564

538:                                              ; preds = %537
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %46) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #11
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %48) #11
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %49) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %46) #11
  %539 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %540 unwind label %495

540:                                              ; preds = %538
  br i1 %539, label %541, label %569

541:                                              ; preds = %540
  %542 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %542, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %544 unwind label %495

544:                                              ; preds = %541
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %543, ptr noundef nonnull @.str.204)
          to label %546 unwind label %495

546:                                              ; preds = %544
  %547 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %545, ptr noundef nonnull align 8 dereferenceable(96) %547)
          to label %549 unwind label %495

549:                                              ; preds = %546
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %548, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %551 unwind label %495

551:                                              ; preds = %549
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %569 unwind label %495

553:                                              ; preds = %532
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %568

555:                                              ; preds = %533
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %559

557:                                              ; preds = %534
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %387) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #11
  br label %559

559:                                              ; preds = %557, %555
  %.pn418 = phi { ptr, i32 } [ %558, %557 ], [ %556, %555 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #11
  br label %568

560:                                              ; preds = %535
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %567

562:                                              ; preds = %536
  %563 = landingpad { ptr, i32 }
          cleanup
  br label %566

564:                                              ; preds = %537
  %565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %46) #11
  br label %566

566:                                              ; preds = %564, %562
  %.pn420 = phi { ptr, i32 } [ %565, %564 ], [ %563, %562 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #11
  call void @_ZN3HIR4Path4DataD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %48) #11
  br label %567

567:                                              ; preds = %566, %560
  %.pn420.pn = phi { ptr, i32 } [ %.pn420, %566 ], [ %561, %560 ]
  call void @_ZN3HIR4Path4Data14Data_UfcsKnownD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %49) #11
  br label %568

568:                                              ; preds = %567, %559, %553
  %.pn420.pn.pn = phi { ptr, i32 } [ %.pn420.pn, %567 ], [ %.pn418, %559 ], [ %554, %553 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %46) #11
  br label %603

569:                                              ; preds = %551, %540
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %600

570:                                              ; preds = %473
  %571 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %572 unwind label %495

572:                                              ; preds = %570
  br i1 %571, label %573, label %600

573:                                              ; preds = %572
  %574 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %574, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %576 unwind label %495

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

578:                                              ; preds = %576
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %577, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %580 unwind label %495

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef nonnull @.str.135)
          to label %582 unwind label %495

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

584:                                              ; preds = %582
  %585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %583, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %586 unwind label %495

586:                                              ; preds = %584
  %587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %585, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %600 unwind label %495

588:                                              ; preds = %448
  %589 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %590 unwind label %461

590:                                              ; preds = %588
  br i1 %589, label %591, label %600

591:                                              ; preds = %590
  %592 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %592, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %594 unwind label %461

594:                                              ; preds = %591
  %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.213)
          to label %596 unwind label %461

596:                                              ; preds = %594
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %598 unwind label %461

598:                                              ; preds = %596
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %597, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %600 unwind label %461

.thread559:                                       ; preds = %460
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %1397

600:                                              ; preds = %423, %411, %513, %572, %586, %569, %590, %598
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #11
  %601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  %602 = call noundef zeroext i1 @_ZNK11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE14const_iteratorneERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38)
  br i1 %602, label %398, label %._crit_edge

603:                                              ; preds = %461, %470, %568, %512, %495, %427
  %.pn430.pn.pn = phi { ptr, i32 } [ %428, %427 ], [ %462, %461 ], [ %.pn415.pn, %470 ], [ %496, %495 ], [ %.pn426.pn.pn, %512 ], [ %.pn420.pn.pn, %568 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  br label %604

604:                                              ; preds = %603, %425
  %.pn430.pn.pn.pn = phi { ptr, i32 } [ %.pn430.pn.pn, %603 ], [ %426, %425 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #11
  br label %605

605:                                              ; preds = %604, %396
  %.pn430.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn430.pn.pn.pn, %604 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  br label %606

606:                                              ; preds = %605, %394
  %.pn430.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn430.pn.pn.pn.pn, %605 ], [ %395, %394 ]
  %.32 = extractvalue { ptr, i32 } %.pn430.pn.pn.pn.pn.pn, 0
  %.32285 = extractvalue { ptr, i32 } %.pn430.pn.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %1398

._crit_edge:                                      ; preds = %600, %384
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #11
  store ptr %0, ptr %50, align 8, !tbaa !74
  %607 = getelementptr inbounds i8, ptr %50, i64 8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %607, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %608 unwind label %620

608:                                              ; preds = %._crit_edge
  %609 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %610 unwind label %622

610:                                              ; preds = %608
  br i1 %609, label %611, label %624

611:                                              ; preds = %610
  %612 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %612, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %614 unwind label %622

614:                                              ; preds = %611
  %615 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %613, ptr noundef nonnull @.str.214)
          to label %616 unwind label %622

616:                                              ; preds = %614
  %617 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %615, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %618 unwind label %622

618:                                              ; preds = %616
  %619 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %617, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %624 unwind label %622

620:                                              ; preds = %._crit_edge
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %1396

622:                                              ; preds = %1186, %1184, %1182, %1179, %1176, %618, %616, %614, %611, %608
  %623 = landingpad { ptr, i32 }
          cleanup
  br label %1395

624:                                              ; preds = %618, %610
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #11
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  %625 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %51)
          to label %626 unwind label %654

626:                                              ; preds = %624
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #11
  %.not437 = icmp eq ptr %625, null
  br i1 %.not437, label %715, label %627

627:                                              ; preds = %626
  %628 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %625)
  %629 = call noundef nonnull align 8 dereferenceable(172) ptr @_ZNK3HIR8TypeData14as_TraitObjectEv(ptr noundef nonnull align 8 dereferenceable(184) %628)
  %630 = load ptr, ptr %0, align 8, !tbaa !43
  %631 = getelementptr inbounds i8, ptr %629, i64 8
  %632 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %630, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %631)
          to label %633 unwind label %656

633:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %634 unwind label %658

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %54)
          to label %635 unwind label %660

635:                                              ; preds = %634
  %636 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %631, ptr noundef nonnull align 8 dereferenceable(400) %632, ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %637 unwind label %662

637:                                              ; preds = %635
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #11
  %.not440 = icmp eq ptr %636, null
  br i1 %.not440, label %711, label %638

638:                                              ; preds = %637
  %639 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %640 unwind label %665

640:                                              ; preds = %638
  br i1 %639, label %641, label %667

641:                                              ; preds = %640
  %642 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %642, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %644 unwind label %665

644:                                              ; preds = %641
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %643, ptr noundef nonnull @.str.199)
          to label %646 unwind label %665

646:                                              ; preds = %644
  %647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %645, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %648 unwind label %665

648:                                              ; preds = %646
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %647, ptr noundef nonnull @.str.215)
          to label %650 unwind label %665

650:                                              ; preds = %648
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %649, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %652 unwind label %665

652:                                              ; preds = %650
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %667 unwind label %665

654:                                              ; preds = %624
  %655 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #11
  br label %1395

656:                                              ; preds = %627
  %657 = landingpad { ptr, i32 }
          cleanup
  br label %1395

658:                                              ; preds = %633
  %659 = landingpad { ptr, i32 }
          cleanup
  br label %713

660:                                              ; preds = %634
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %664

662:                                              ; preds = %635
  %663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  br label %664

664:                                              ; preds = %662, %660
  %.pn438 = phi { ptr, i32 } [ %663, %662 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #11
  br label %712

665:                                              ; preds = %652, %650, %648, %646, %644, %641, %638
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %712

667:                                              ; preds = %652, %640
  %668 = load i32, ptr %10, align 4, !tbaa !5
  %669 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %636, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %668)
          to label %670 unwind label %692

670:                                              ; preds = %667
  %.not441.not = icmp eq ptr %669, null
  br i1 %.not441.not, label %711, label %671

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %55) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %56) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %57, ptr noundef nonnull align 8 dereferenceable(8) %669)
          to label %672 unwind label %694

672:                                              ; preds = %671
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %673 unwind label %696

673:                                              ; preds = %672
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %60)
          to label %674 unwind label %698

674:                                              ; preds = %673
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %56, ptr noundef nonnull %57, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60)
          to label %675 unwind label %700

675:                                              ; preds = %674
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %55, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %56)
          to label %676 unwind label %702

676:                                              ; preds = %675
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %55)
          to label %677 unwind label %704

677:                                              ; preds = %676
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %55) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %56) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %55) #11
  %678 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %679 unwind label %692

679:                                              ; preds = %677
  br i1 %678, label %680, label %714

680:                                              ; preds = %679
  %681 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %682 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %681, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %683 unwind label %692

683:                                              ; preds = %680
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %682, ptr noundef nonnull @.str.204)
          to label %685 unwind label %692

685:                                              ; preds = %683
  %686 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef nonnull align 8 dereferenceable(96) %686)
          to label %688 unwind label %692

688:                                              ; preds = %685
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %690 unwind label %692

690:                                              ; preds = %688
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %689, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %714 unwind label %692

692:                                              ; preds = %690, %688, %685, %683, %680, %677, %667
  %693 = landingpad { ptr, i32 }
          cleanup
  br label %712

694:                                              ; preds = %671
  %695 = landingpad { ptr, i32 }
          cleanup
  br label %710

696:                                              ; preds = %672
  %697 = landingpad { ptr, i32 }
          cleanup
  br label %709

698:                                              ; preds = %673
  %699 = landingpad { ptr, i32 }
          cleanup
  br label %708

700:                                              ; preds = %674
  %701 = landingpad { ptr, i32 }
          cleanup
  br label %707

702:                                              ; preds = %675
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %706

704:                                              ; preds = %676
  %705 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %55) #11
  br label %706

706:                                              ; preds = %704, %702
  %.pn442 = phi { ptr, i32 } [ %705, %704 ], [ %703, %702 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #11
  br label %707

707:                                              ; preds = %706, %700
  %.pn442.pn = phi { ptr, i32 } [ %.pn442, %706 ], [ %701, %700 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #11
  br label %708

708:                                              ; preds = %707, %698
  %.pn442.pn.pn = phi { ptr, i32 } [ %.pn442.pn, %707 ], [ %699, %698 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %709

709:                                              ; preds = %708, %696
  %.pn442.pn.pn.pn = phi { ptr, i32 } [ %.pn442.pn.pn, %708 ], [ %697, %696 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #11
  br label %710

710:                                              ; preds = %709, %694
  %.pn442.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn442.pn.pn.pn, %709 ], [ %695, %694 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %56) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %55) #11
  br label %712

711:                                              ; preds = %637, %670
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  br label %715

712:                                              ; preds = %692, %710, %665, %664
  %.pn448.pn = phi { ptr, i32 } [ %666, %665 ], [ %.pn438, %664 ], [ %693, %692 ], [ %.pn442.pn.pn.pn.pn, %710 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %713

713:                                              ; preds = %712, %658
  %.pn448.pn.pn = phi { ptr, i32 } [ %.pn448.pn, %712 ], [ %659, %658 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  br label %1395

714:                                              ; preds = %690, %679
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  br label %1394

715:                                              ; preds = %626, %711
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %62) #11
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  %716 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %61)
          to label %717 unwind label %725

717:                                              ; preds = %715
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #11
  %.not454 = icmp eq ptr %716, null
  br i1 %.not454, label %814, label %718

718:                                              ; preds = %717
  %719 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %716)
  %720 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZNK3HIR8TypeData13as_ErasedTypeEv(ptr noundef nonnull align 8 dereferenceable(184) %719)
  %721 = getelementptr inbounds i8, ptr %720, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #11
  %722 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %721) #11
  store ptr %722, ptr %63, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #11
  %723 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %721) #11
  store ptr %723, ptr %64, align 8
  %724 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  br i1 %724, label %.lr.ph611, label %._crit_edge612

._crit_edge612:                                   ; preds = %808, %718
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #11
  br label %1176

725:                                              ; preds = %715
  %726 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #11
  br label %1395

.lr.ph611:                                        ; preds = %718, %808
  %727 = call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #11
  %728 = load ptr, ptr %0, align 8, !tbaa !43
  %729 = getelementptr inbounds i8, ptr %727, i64 8
  %730 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %728, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %729)
          to label %731 unwind label %752

731:                                              ; preds = %.lr.ph611
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %732 unwind label %754

732:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %66)
          to label %733 unwind label %756

733:                                              ; preds = %732
  %734 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %729, ptr noundef nonnull align 8 dereferenceable(400) %730, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %735 unwind label %758

735:                                              ; preds = %733
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #11
  %.not531 = icmp eq ptr %734, null
  br i1 %.not531, label %808, label %736

736:                                              ; preds = %735
  %737 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %738 unwind label %761

738:                                              ; preds = %736
  br i1 %737, label %739, label %763

739:                                              ; preds = %738
  %740 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %740, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %742 unwind label %761

742:                                              ; preds = %739
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %741, ptr noundef nonnull @.str.199)
          to label %744 unwind label %761

744:                                              ; preds = %742
  %745 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %743, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %746 unwind label %761

746:                                              ; preds = %744
  %747 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %745, ptr noundef nonnull @.str.216)
          to label %748 unwind label %761

748:                                              ; preds = %746
  %749 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %747, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %750 unwind label %761

750:                                              ; preds = %748
  %751 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %749, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %763 unwind label %761

752:                                              ; preds = %.lr.ph611
  %753 = landingpad { ptr, i32 }
          cleanup
  br label %813

754:                                              ; preds = %731
  %755 = landingpad { ptr, i32 }
          cleanup
  br label %812

756:                                              ; preds = %732
  %757 = landingpad { ptr, i32 }
          cleanup
  br label %760

758:                                              ; preds = %733
  %759 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  br label %760

760:                                              ; preds = %758, %756
  %.pn529 = phi { ptr, i32 } [ %759, %758 ], [ %757, %756 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #11
  br label %811

761:                                              ; preds = %750, %748, %746, %744, %742, %739, %736
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %811

763:                                              ; preds = %750, %738
  %764 = load i32, ptr %10, align 4, !tbaa !5
  %765 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %734, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %764)
          to label %766 unwind label %788

766:                                              ; preds = %763
  %.not532 = icmp eq ptr %765, null
  br i1 %.not532, label %808, label %767

767:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %67) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %68) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %69, ptr noundef nonnull align 8 dereferenceable(8) %765)
          to label %768 unwind label %790

768:                                              ; preds = %767
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %769 unwind label %792

769:                                              ; preds = %768
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %72)
          to label %770 unwind label %794

770:                                              ; preds = %769
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %68, ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull %71, ptr noundef nonnull %72)
          to label %771 unwind label %796

771:                                              ; preds = %770
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %67, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %68)
          to label %772 unwind label %798

772:                                              ; preds = %771
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %67)
          to label %773 unwind label %800

773:                                              ; preds = %772
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %67) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %67) #11
  %774 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %775 unwind label %788

775:                                              ; preds = %773
  br i1 %774, label %776, label %807

776:                                              ; preds = %775
  %777 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %777, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %779 unwind label %788

779:                                              ; preds = %776
  %780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %778, ptr noundef nonnull @.str.204)
          to label %781 unwind label %788

781:                                              ; preds = %779
  %782 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %780, ptr noundef nonnull align 8 dereferenceable(96) %782)
          to label %784 unwind label %788

784:                                              ; preds = %781
  %785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %783, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %786 unwind label %788

786:                                              ; preds = %784
  %787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %785, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %807 unwind label %788

788:                                              ; preds = %786, %784, %781, %779, %776, %773, %763
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %811

790:                                              ; preds = %767
  %791 = landingpad { ptr, i32 }
          cleanup
  br label %806

792:                                              ; preds = %768
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %805

794:                                              ; preds = %769
  %795 = landingpad { ptr, i32 }
          cleanup
  br label %804

796:                                              ; preds = %770
  %797 = landingpad { ptr, i32 }
          cleanup
  br label %803

798:                                              ; preds = %771
  %799 = landingpad { ptr, i32 }
          cleanup
  br label %802

800:                                              ; preds = %772
  %801 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %67) #11
  br label %802

802:                                              ; preds = %800, %798
  %.pn533 = phi { ptr, i32 } [ %801, %800 ], [ %799, %798 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #11
  br label %803

803:                                              ; preds = %802, %796
  %.pn533.pn = phi { ptr, i32 } [ %.pn533, %802 ], [ %797, %796 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #11
  br label %804

804:                                              ; preds = %803, %794
  %.pn533.pn.pn = phi { ptr, i32 } [ %.pn533.pn, %803 ], [ %795, %794 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  br label %805

805:                                              ; preds = %804, %792
  %.pn533.pn.pn.pn = phi { ptr, i32 } [ %.pn533.pn.pn, %804 ], [ %793, %792 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #11
  br label %806

806:                                              ; preds = %805, %790
  %.pn533.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn533.pn.pn.pn, %805 ], [ %791, %790 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %67) #11
  br label %811

807:                                              ; preds = %786, %775
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %808

808:                                              ; preds = %766, %807, %735
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #11
  %809 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #11
  %810 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  br i1 %810, label %.lr.ph611, label %._crit_edge612

811:                                              ; preds = %788, %806, %761, %760
  %.pn539.pn = phi { ptr, i32 } [ %762, %761 ], [ %.pn529, %760 ], [ %789, %788 ], [ %.pn533.pn.pn.pn.pn, %806 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  br label %812

812:                                              ; preds = %811, %754
  %.pn539.pn.pn = phi { ptr, i32 } [ %.pn539.pn, %811 ], [ %755, %754 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #11
  br label %813

813:                                              ; preds = %812, %752
  %.pn539.pn.pn.pn = phi { ptr, i32 } [ %.pn539.pn.pn, %812 ], [ %753, %752 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #11
  br label %1395

814:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #11
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  %815 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %73)
          to label %816 unwind label %817

816:                                              ; preds = %814
  %.not455 = icmp eq ptr %815, null
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #11
  br i1 %.not455, label %819, label %1176

817:                                              ; preds = %814
  %818 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #11
  br label %1395

819:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #11
  call void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  %820 = invoke noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %75)
          to label %821 unwind label %840

821:                                              ; preds = %819
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  %.not456 = icmp eq ptr %820, null
  br i1 %.not456, label %1176, label %822

822:                                              ; preds = %821
  %823 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %820)
  %824 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %823)
  %825 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %824)
  %826 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %827 unwind label %842

827:                                              ; preds = %822
  br i1 %826, label %828, label %844

828:                                              ; preds = %827
  %829 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %830 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %829, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %831 unwind label %842

831:                                              ; preds = %828
  %832 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %830, ptr noundef nonnull @.str.217)
          to label %833 unwind label %842

833:                                              ; preds = %831
  %834 = getelementptr inbounds i8, ptr %825, i64 8
  %835 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %832, ptr noundef nonnull align 8 dereferenceable(32) %834)
          to label %836 unwind label %842

836:                                              ; preds = %833
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %835, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %838 unwind label %842

838:                                              ; preds = %836
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %837, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %844 unwind label %842

840:                                              ; preds = %819
  %841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  br label %1395

842:                                              ; preds = %838, %836, %833, %831, %828, %822
  %843 = landingpad { ptr, i32 }
          cleanup
  br label %1395

844:                                              ; preds = %838, %827
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %77) #11
  %845 = getelementptr inbounds i8, ptr %825, i64 8
  %846 = getelementptr inbounds i8, ptr %825, i64 16
  invoke void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128) %77, ptr noundef nonnull %825, ptr noundef nonnull %846, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %847 unwind label %865

847:                                              ; preds = %844
  %848 = load ptr, ptr %0, align 8, !tbaa !43
  %849 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %848, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %845)
          to label %850 unwind label %867

850:                                              ; preds = %847
  %851 = getelementptr inbounds i8, ptr %849, i64 136
  %852 = getelementptr inbounds i8, ptr %825, i64 40
  %853 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNKSt13unordered_mapI8RcStringN3HIR14AssociatedTypeESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE2atERS8_(ptr noundef nonnull align 8 dereferenceable(56) %851, ptr noundef nonnull align 8 dereferenceable(8) %852)
          to label %854 unwind label %869

854:                                              ; preds = %850
  %855 = getelementptr inbounds i8, ptr %853, i64 104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #11
  %856 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %855) #11
  store ptr %856, ptr %78, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #11
  %857 = call ptr @_ZNKSt6vectorIN3HIR9TraitPathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %855) #11
  store ptr %857, ptr %79, align 8
  %858 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  br i1 %858, label %.lr.ph614, label %._crit_edge615

.lr.ph614:                                        ; preds = %854
  %859 = getelementptr inbounds i8, ptr %77, i64 120
  br label %871

._crit_edge615:                                   ; preds = %1019, %854
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #11
  %860 = getelementptr inbounds i8, ptr %849, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #11
  %861 = call ptr @_ZNKSt6vectorIN3HIR12GenericBoundESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %860) #11
  store ptr %861, ptr %99, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #11
  %862 = call ptr @_ZNKSt6vectorIN3HIR12GenericBoundESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %860) #11
  store ptr %862, ptr %100, align 8
  %863 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  br i1 %863, label %.lr.ph617, label %._crit_edge618

.lr.ph617:                                        ; preds = %._crit_edge615
  %864 = getelementptr inbounds i8, ptr %102, i64 8
  br label %1026

865:                                              ; preds = %844
  %866 = landingpad { ptr, i32 }
          cleanup
  br label %1175

867:                                              ; preds = %847
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %1174

869:                                              ; preds = %850
  %870 = landingpad { ptr, i32 }
          cleanup
  br label %1174

871:                                              ; preds = %.lr.ph614, %1019
  %872 = call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  %873 = getelementptr inbounds i8, ptr %872, i64 136
  %874 = load ptr, ptr %873, align 8, !tbaa !77
  %.not476 = icmp eq ptr %874, null
  br i1 %.not476, label %875, label %890

875:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %876 unwind label %881

876:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #11
  store ptr %872, ptr %82, align 8, !tbaa !13
  %877 = getelementptr inbounds i8, ptr %82, i64 8
  store ptr %825, ptr %877, align 8, !tbaa !13
  call void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(16) %82) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull %81)
          to label %878 unwind label %883

878:                                              ; preds = %876
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  %879 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %879, ptr noundef nonnull @.str.8)
          to label %880 unwind label %886

880:                                              ; preds = %878
  invoke void @__cxa_throw(ptr nonnull %879, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #13
          to label %1406 unwind label %888

881:                                              ; preds = %875
  %882 = landingpad { ptr, i32 }
          cleanup
  br label %885

883:                                              ; preds = %876
  %884 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  br label %885

885:                                              ; preds = %883, %881
  %.pn477 = phi { ptr, i32 } [ %884, %883 ], [ %882, %881 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  br label %1025

886:                                              ; preds = %878
  %887 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %879) #11
  br label %1025

888:                                              ; preds = %880
  %889 = landingpad { ptr, i32 }
          cleanup
  br label %1025

890:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %891 unwind label %918

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %86)
          to label %892 unwind label %920

892:                                              ; preds = %891
  %893 = getelementptr inbounds i8, ptr %872, i64 8
  invoke void @_ZNK3HIR11GenericPath5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::GenericPath") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %893)
          to label %894 unwind label %922

894:                                              ; preds = %892
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %852)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %895 unwind label %924

895:                                              ; preds = %894
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %85, ptr noundef nonnull %86, ptr noundef nonnull %87, ptr noundef nonnull %88, ptr noundef nonnull %89)
          to label %896 unwind label %926

896:                                              ; preds = %895
  invoke void @_ZN3HIR15TypePathBinding11make_OpaqueENS0_11Data_OpaqueE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypePathBinding") align 8 %90)
          to label %897 unwind label %928

897:                                              ; preds = %896
  invoke void @_ZN3HIR7TypeRef8new_pathENS_4PathENS_15TypePathBindingE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %84, ptr noundef nonnull %85, ptr noundef nonnull %90)
          to label %898 unwind label %930

898:                                              ; preds = %897
  call void @_ZN3HIR15TypePathBindingD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  %899 = load ptr, ptr %873, align 8, !tbaa !77
  %900 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %893, ptr noundef nonnull align 8 dereferenceable(400) %899, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %901 unwind label %936

901:                                              ; preds = %898
  %.not484 = icmp eq ptr %900, null
  br i1 %.not484, label %1019, label %902

902:                                              ; preds = %901
  %903 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %904 unwind label %936

904:                                              ; preds = %902
  br i1 %903, label %905, label %938

905:                                              ; preds = %904
  %906 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %906, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %908 unwind label %936

908:                                              ; preds = %905
  %909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %907, ptr noundef nonnull @.str.199)
          to label %910 unwind label %936

910:                                              ; preds = %908
  %911 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %909, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %912 unwind label %936

912:                                              ; preds = %910
  %913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %911, ptr noundef nonnull @.str.218)
          to label %914 unwind label %936

914:                                              ; preds = %912
  %915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %913, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %916 unwind label %936

916:                                              ; preds = %914
  %917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %915, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %938 unwind label %936

918:                                              ; preds = %890
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %1024

920:                                              ; preds = %891
  %921 = landingpad { ptr, i32 }
          cleanup
  br label %1023

922:                                              ; preds = %892
  %923 = landingpad { ptr, i32 }
          cleanup
  br label %935

924:                                              ; preds = %894
  %925 = landingpad { ptr, i32 }
          cleanup
  br label %934

926:                                              ; preds = %895
  %927 = landingpad { ptr, i32 }
          cleanup
  br label %933

928:                                              ; preds = %896
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %932

930:                                              ; preds = %897
  %931 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR15TypePathBindingD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #11
  br label %932

932:                                              ; preds = %930, %928
  %.pn479 = phi { ptr, i32 } [ %931, %930 ], [ %929, %928 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %85) #11
  br label %933

933:                                              ; preds = %932, %926
  %.pn479.pn = phi { ptr, i32 } [ %.pn479, %932 ], [ %927, %926 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #11
  br label %934

934:                                              ; preds = %933, %924
  %.pn479.pn.pn = phi { ptr, i32 } [ %.pn479.pn, %933 ], [ %925, %924 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  br label %935

935:                                              ; preds = %934, %922
  %.pn479.pn.pn.pn = phi { ptr, i32 } [ %.pn479.pn.pn, %934 ], [ %923, %922 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  br label %1023

936:                                              ; preds = %916, %914, %912, %910, %908, %905, %902, %898
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %1022

938:                                              ; preds = %916, %904
  %939 = load i32, ptr %10, align 4, !tbaa !5
  %940 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %900, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %939)
          to label %941 unwind label %967

941:                                              ; preds = %938
  %.not485 = icmp eq ptr %940, null
  br i1 %.not485, label %1019, label %942

942:                                              ; preds = %941
  %943 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %940, ptr noundef nonnull align 8 dereferenceable(8) %820)
          to label %944 unwind label %967

944:                                              ; preds = %942
  br i1 %943, label %945, label %1019

945:                                              ; preds = %944
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %91) #11
  %946 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %872) #11
  br i1 %946, label %947, label %949

947:                                              ; preds = %945
  %948 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %872) #11
  invoke void @_ZNK3HIR13GenericParams17make_empty_paramsEb(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::PathParams") align 8 %91, ptr noundef nonnull align 8 dereferenceable(96) %948, i1 noundef zeroext true)
          to label %950 unwind label %969

949:                                              ; preds = %945
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %91)
          to label %950 unwind label %969

950:                                              ; preds = %949, %947
  store ptr %91, ptr %859, align 8, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #11
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind nonnull writable sret(%"class.HIR::GenericPath") align 8 %92, ptr noundef nonnull align 8 dereferenceable(96) %77, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %83, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %951 unwind label %971

951:                                              ; preds = %950
  %952 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %953 unwind label %973

953:                                              ; preds = %951
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #11
  %954 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %955 unwind label %976

955:                                              ; preds = %953
  br i1 %954, label %956, label %978

956:                                              ; preds = %955
  %957 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %958 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %957, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %959 unwind label %976

959:                                              ; preds = %956
  %960 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %958, ptr noundef nonnull @.str.219)
          to label %961 unwind label %976

961:                                              ; preds = %959
  %962 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %960, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %963 unwind label %976

963:                                              ; preds = %961
  %964 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %962, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %965 unwind label %976

965:                                              ; preds = %963
  %966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %964, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %978 unwind label %976

967:                                              ; preds = %942, %938
  %968 = landingpad { ptr, i32 }
          cleanup
  br label %1022

969:                                              ; preds = %949, %947
  %970 = landingpad { ptr, i32 }
          cleanup
  br label %1018

971:                                              ; preds = %950
  %972 = landingpad { ptr, i32 }
          cleanup
  br label %975

973:                                              ; preds = %951
  %974 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  br label %975

975:                                              ; preds = %973, %971
  %.pn486 = phi { ptr, i32 } [ %974, %973 ], [ %972, %971 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #11
  br label %1017

976:                                              ; preds = %997, %995, %992, %990, %987, %984, %965, %963, %961, %959, %956, %953
  %977 = landingpad { ptr, i32 }
          cleanup
  br label %1017

978:                                              ; preds = %965, %955
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %93) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %94) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %95, ptr noundef nonnull align 8 dereferenceable(8) %940)
          to label %979 unwind label %999

979:                                              ; preds = %978
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %980 unwind label %1001

980:                                              ; preds = %979
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %98)
          to label %981 unwind label %1003

981:                                              ; preds = %980
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %94, ptr noundef nonnull %95, ptr noundef nonnull %96, ptr noundef nonnull %97, ptr noundef nonnull %98)
          to label %982 unwind label %1005

982:                                              ; preds = %981
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %93, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %94)
          to label %983 unwind label %1007

983:                                              ; preds = %982
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %93)
          to label %984 unwind label %1009

984:                                              ; preds = %983
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %93) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %94) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %93) #11
  %985 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %986 unwind label %976

986:                                              ; preds = %984
  br i1 %985, label %987, label %1016

987:                                              ; preds = %986
  %988 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %989 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %988, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %990 unwind label %976

990:                                              ; preds = %987
  %991 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %989, ptr noundef nonnull @.str.204)
          to label %992 unwind label %976

992:                                              ; preds = %990
  %993 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %994 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %991, ptr noundef nonnull align 8 dereferenceable(96) %993)
          to label %995 unwind label %976

995:                                              ; preds = %992
  %996 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %994, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %997 unwind label %976

997:                                              ; preds = %995
  %998 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %996, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1016 unwind label %976

999:                                              ; preds = %978
  %1000 = landingpad { ptr, i32 }
          cleanup
  br label %1015

1001:                                             ; preds = %979
  %1002 = landingpad { ptr, i32 }
          cleanup
  br label %1014

1003:                                             ; preds = %980
  %1004 = landingpad { ptr, i32 }
          cleanup
  br label %1013

1005:                                             ; preds = %981
  %1006 = landingpad { ptr, i32 }
          cleanup
  br label %1012

1007:                                             ; preds = %982
  %1008 = landingpad { ptr, i32 }
          cleanup
  br label %1011

1009:                                             ; preds = %983
  %1010 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %93) #11
  br label %1011

1011:                                             ; preds = %1009, %1007
  %.pn488 = phi { ptr, i32 } [ %1010, %1009 ], [ %1008, %1007 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #11
  br label %1012

1012:                                             ; preds = %1011, %1005
  %.pn488.pn = phi { ptr, i32 } [ %.pn488, %1011 ], [ %1006, %1005 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  br label %1013

1013:                                             ; preds = %1012, %1003
  %.pn488.pn.pn = phi { ptr, i32 } [ %.pn488.pn, %1012 ], [ %1004, %1003 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %1014

1014:                                             ; preds = %1013, %1001
  %.pn488.pn.pn.pn = phi { ptr, i32 } [ %.pn488.pn.pn, %1013 ], [ %1002, %1001 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #11
  br label %1015

1015:                                             ; preds = %1014, %999
  %.pn488.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn488.pn.pn.pn, %1014 ], [ %1000, %999 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %94) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %93) #11
  br label %1017

1016:                                             ; preds = %997, %986
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #11
  br label %1019

1017:                                             ; preds = %1015, %976, %975
  %.pn494 = phi { ptr, i32 } [ %977, %976 ], [ %.pn488.pn.pn.pn.pn, %1015 ], [ %.pn486, %975 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #11
  br label %1018

1018:                                             ; preds = %1017, %969
  %.pn494.pn = phi { ptr, i32 } [ %.pn494, %1017 ], [ %970, %969 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #11
  br label %1022

1019:                                             ; preds = %941, %1016, %944, %901
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #11
  %1020 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  %1021 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR9TraitPathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  br i1 %1021, label %871, label %._crit_edge615

1022:                                             ; preds = %967, %1018, %936
  %.pn494.pn.pn.pn = phi { ptr, i32 } [ %937, %936 ], [ %.pn494.pn, %1018 ], [ %968, %967 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #11
  br label %1023

1023:                                             ; preds = %1022, %935, %920
  %.pn494.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn.pn, %1022 ], [ %.pn479.pn.pn.pn, %935 ], [ %921, %920 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  br label %1024

1024:                                             ; preds = %1023, %918
  %.pn494.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn.pn.pn, %1023 ], [ %919, %918 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #11
  br label %1025

1025:                                             ; preds = %1024, %888, %886, %885
  %.pn494.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn.pn.pn.pn, %1024 ], [ %889, %888 ], [ %887, %886 ], [ %.pn477, %885 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #11
  br label %1174

._crit_edge618:                                   ; preds = %1168, %._crit_edge615
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #11
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %77) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %77) #11
  br label %1176

1026:                                             ; preds = %.lr.ph617, %1168
  %1027 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  %1028 = call noundef zeroext i1 @_ZNK3HIR12GenericBound13is_TraitBoundEv(ptr noundef nonnull align 8 dereferenceable(168) %1027)
  br i1 %1028, label %1029, label %1168

1029:                                             ; preds = %1026
  %1030 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZNK3HIR12GenericBound13as_TraitBoundEv(ptr noundef nonnull align 8 dereferenceable(168) %1027)
  %1031 = getelementptr inbounds i8, ptr %1030, i64 8
  %1032 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1031)
  %1033 = call noundef zeroext i1 @_ZNK3HIR8TypeData7is_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1032)
  br i1 %1033, label %1034, label %1168

1034:                                             ; preds = %1029
  %1035 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1031)
  %1036 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1035)
  %1037 = getelementptr inbounds i8, ptr %1036, i64 88
  %1038 = call noundef zeroext i1 @_ZNK3HIR15TypePathBinding9is_OpaqueEv(ptr noundef nonnull align 8 dereferenceable(16) %1037)
  br i1 %1038, label %1039, label %1168

1039:                                             ; preds = %1034
  %1040 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %1031)
  %1041 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %1040)
  %1042 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %1041)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %101)
          to label %1043 unwind label %1048

1043:                                             ; preds = %1039
  %1044 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1042, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1045 unwind label %1050

1045:                                             ; preds = %1043
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #11
  br i1 %1044, label %1168, label %1053

1046:                                             ; preds = %1057, %1053
  %1047 = landingpad { ptr, i32 }
          cleanup
  br label %1173

1048:                                             ; preds = %1039
  %1049 = landingpad { ptr, i32 }
          cleanup
  br label %1052

1050:                                             ; preds = %1043
  %1051 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  br label %1052

1052:                                             ; preds = %1050, %1048
  %.pn457 = phi { ptr, i32 } [ %1051, %1050 ], [ %1049, %1048 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #11
  br label %1173

1053:                                             ; preds = %1045
  %1054 = getelementptr inbounds i8, ptr %1042, i64 8
  %1055 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePathneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1054, ptr noundef nonnull align 8 dereferenceable(8) %845)
          to label %1056 unwind label %1046

1056:                                             ; preds = %1053
  br i1 %1055, label %1168, label %1057

1057:                                             ; preds = %1056
  %1058 = getelementptr inbounds i8, ptr %1042, i64 40
  %1059 = invoke noundef zeroext i1 @_ZNK8RcStringneERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1058, ptr noundef nonnull align 8 dereferenceable(8) %852)
          to label %1060 unwind label %1046

1060:                                             ; preds = %1057
  br i1 %1059, label %1168, label %1061

1061:                                             ; preds = %1060
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1062 unwind label %1085

1062:                                             ; preds = %1061
  %1063 = getelementptr inbounds i8, ptr %1030, i64 152
  %1064 = load ptr, ptr %1063, align 8, !tbaa !102
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %103)
          to label %1065 unwind label %1087

1065:                                             ; preds = %1062
  %1066 = getelementptr inbounds i8, ptr %1030, i64 24
  %1067 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %1066, ptr noundef nonnull align 8 dereferenceable(400) %1064, ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1068 unwind label %1089

1068:                                             ; preds = %1065
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  %.not461 = icmp eq ptr %1067, null
  br i1 %.not461, label %1167, label %1069

1069:                                             ; preds = %1068
  %1070 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1071 unwind label %1092

1071:                                             ; preds = %1069
  br i1 %1070, label %1072, label %1094

1072:                                             ; preds = %1071
  %1073 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1074 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1073, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1075 unwind label %1092

1075:                                             ; preds = %1072
  %1076 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1074, ptr noundef nonnull @.str.199)
          to label %1077 unwind label %1092

1077:                                             ; preds = %1075
  %1078 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1076, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1079 unwind label %1092

1079:                                             ; preds = %1077
  %1080 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1078, ptr noundef nonnull @.str.220)
          to label %1081 unwind label %1092

1081:                                             ; preds = %1079
  %1082 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1080, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1083 unwind label %1092

1083:                                             ; preds = %1081
  %1084 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1082, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1094 unwind label %1092

1085:                                             ; preds = %1061
  %1086 = landingpad { ptr, i32 }
          cleanup
  br label %1172

1087:                                             ; preds = %1062
  %1088 = landingpad { ptr, i32 }
          cleanup
  br label %1091

1089:                                             ; preds = %1065
  %1090 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  br label %1091

1091:                                             ; preds = %1089, %1087
  %.pn459 = phi { ptr, i32 } [ %1090, %1089 ], [ %1088, %1087 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  br label %1171

1092:                                             ; preds = %1083, %1081, %1079, %1077, %1075, %1072, %1069
  %1093 = landingpad { ptr, i32 }
          cleanup
  br label %1171

1094:                                             ; preds = %1083, %1071
  %1095 = load i32, ptr %10, align 4, !tbaa !5
  %1096 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %1067, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %1095)
          to label %1097 unwind label %1121

1097:                                             ; preds = %1094
  %.not462 = icmp eq ptr %1096, null
  br i1 %.not462, label %1167, label %1098

1098:                                             ; preds = %1097
  %1099 = invoke noundef zeroext i1 @_ZNK3HIR7TypeRefeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1096, ptr noundef nonnull align 8 dereferenceable(8) %820)
          to label %1100 unwind label %1121

1100:                                             ; preds = %1098
  br i1 %1099, label %1101, label %1167

1101:                                             ; preds = %1100
  %1102 = invoke noundef zeroext i1 @_Z30monomorphise_pathparams_neededRKN3HIR10PathParamsEb(ptr noundef nonnull align 8 dereferenceable(24) %864, i1 noundef zeroext false)
          to label %1103 unwind label %1121

1103:                                             ; preds = %1101
  br i1 %1102, label %1104, label %1128

1104:                                             ; preds = %1103
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %104) #11
  invoke void @_ZNK13Monomorphiser21monomorph_path_paramsERK4SpanRKN3HIR10PathParamsEb(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::PathParams") align 8 %104, ptr noundef nonnull align 8 dereferenceable(96) %77, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(24) %864, i1 noundef zeroext false)
          to label %1105 unwind label %1123

1105:                                             ; preds = %1104
  %1106 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR10PathParamsaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %864, ptr noundef nonnull align 8 dereferenceable(24) %104)
          to label %1107 unwind label %1125

1107:                                             ; preds = %1105
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %104) #11
  %1108 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1109 unwind label %1121

1109:                                             ; preds = %1107
  br i1 %1108, label %1110, label %1128

1110:                                             ; preds = %1109
  %1111 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1111, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1113 unwind label %1121

1113:                                             ; preds = %1110
  %1114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1112, ptr noundef nonnull @.str.219)
          to label %1115 unwind label %1121

1115:                                             ; preds = %1113
  %1116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1114, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1117 unwind label %1121

1117:                                             ; preds = %1115
  %1118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1116, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1119 unwind label %1121

1119:                                             ; preds = %1117
  %1120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1118, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1128 unwind label %1121

1121:                                             ; preds = %1147, %1145, %1142, %1140, %1137, %1134, %1119, %1117, %1115, %1113, %1110, %1107, %1101, %1098, %1094
  %1122 = landingpad { ptr, i32 }
          cleanup
  br label %1171

1123:                                             ; preds = %1104
  %1124 = landingpad { ptr, i32 }
          cleanup
  br label %1127

1125:                                             ; preds = %1105
  %1126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #11
  br label %1127

1127:                                             ; preds = %1125, %1123
  %.pn463 = phi { ptr, i32 } [ %1126, %1125 ], [ %1124, %1123 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %104) #11
  br label %1171

1128:                                             ; preds = %1109, %1119, %1103
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %105) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %106) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %107, ptr noundef nonnull align 8 dereferenceable(8) %1096)
          to label %1129 unwind label %1149

1129:                                             ; preds = %1128
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1130 unwind label %1151

1130:                                             ; preds = %1129
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %110)
          to label %1131 unwind label %1153

1131:                                             ; preds = %1130
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %106, ptr noundef nonnull %107, ptr noundef nonnull %108, ptr noundef nonnull %109, ptr noundef nonnull %110)
          to label %1132 unwind label %1155

1132:                                             ; preds = %1131
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %105, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %106)
          to label %1133 unwind label %1157

1133:                                             ; preds = %1132
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %105)
          to label %1134 unwind label %1159

1134:                                             ; preds = %1133
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %105) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %106) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %105) #11
  %1135 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1136 unwind label %1121

1136:                                             ; preds = %1134
  br i1 %1135, label %1137, label %1166

1137:                                             ; preds = %1136
  %1138 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1138, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1140 unwind label %1121

1140:                                             ; preds = %1137
  %1141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1139, ptr noundef nonnull @.str.204)
          to label %1142 unwind label %1121

1142:                                             ; preds = %1140
  %1143 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %1144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1141, ptr noundef nonnull align 8 dereferenceable(96) %1143)
          to label %1145 unwind label %1121

1145:                                             ; preds = %1142
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1144, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1147 unwind label %1121

1147:                                             ; preds = %1145
  %1148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1146, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1166 unwind label %1121

1149:                                             ; preds = %1128
  %1150 = landingpad { ptr, i32 }
          cleanup
  br label %1165

1151:                                             ; preds = %1129
  %1152 = landingpad { ptr, i32 }
          cleanup
  br label %1164

1153:                                             ; preds = %1130
  %1154 = landingpad { ptr, i32 }
          cleanup
  br label %1163

1155:                                             ; preds = %1131
  %1156 = landingpad { ptr, i32 }
          cleanup
  br label %1162

1157:                                             ; preds = %1132
  %1158 = landingpad { ptr, i32 }
          cleanup
  br label %1161

1159:                                             ; preds = %1133
  %1160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %105) #11
  br label %1161

1161:                                             ; preds = %1159, %1157
  %.pn465 = phi { ptr, i32 } [ %1160, %1159 ], [ %1158, %1157 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %106) #11
  br label %1162

1162:                                             ; preds = %1161, %1155
  %.pn465.pn = phi { ptr, i32 } [ %.pn465, %1161 ], [ %1156, %1155 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #11
  br label %1163

1163:                                             ; preds = %1162, %1153
  %.pn465.pn.pn = phi { ptr, i32 } [ %.pn465.pn, %1162 ], [ %1154, %1153 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  br label %1164

1164:                                             ; preds = %1163, %1151
  %.pn465.pn.pn.pn = phi { ptr, i32 } [ %.pn465.pn.pn, %1163 ], [ %1152, %1151 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #11
  br label %1165

1165:                                             ; preds = %1164, %1149
  %.pn465.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn465.pn.pn.pn, %1164 ], [ %1150, %1149 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %105) #11
  br label %1171

1166:                                             ; preds = %1147, %1136
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %1167

1167:                                             ; preds = %1097, %1166, %1100, %1068
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #11
  br label %1168

1168:                                             ; preds = %1029, %1034, %1060, %1056, %1045, %1167, %1026
  %1169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  %1170 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR12GenericBoundESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  br i1 %1170, label %1026, label %._crit_edge618

1171:                                             ; preds = %1121, %1127, %1165, %1092, %1091
  %.pn471.pn = phi { ptr, i32 } [ %1093, %1092 ], [ %.pn459, %1091 ], [ %1122, %1121 ], [ %.pn465.pn.pn.pn.pn, %1165 ], [ %.pn463, %1127 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  br label %1172

1172:                                             ; preds = %1171, %1085
  %.pn471.pn.pn = phi { ptr, i32 } [ %.pn471.pn, %1171 ], [ %1086, %1085 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #11
  br label %1173

1173:                                             ; preds = %1172, %1052, %1046
  %.pn471.pn.pn.pn = phi { ptr, i32 } [ %.pn471.pn.pn, %1172 ], [ %1047, %1046 ], [ %.pn457, %1052 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #11
  br label %1174

1174:                                             ; preds = %869, %1025, %1173, %867
  %.pn494.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %868, %867 ], [ %.pn494.pn.pn.pn.pn.pn.pn, %1025 ], [ %.pn471.pn.pn.pn, %1173 ], [ %870, %869 ]
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %77) #11
  br label %1175

1175:                                             ; preds = %1174, %865
  %.pn494.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn.pn.pn.pn.pn.pn.pn, %1174 ], [ %866, %865 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %77) #11
  br label %1395

1176:                                             ; preds = %._crit_edge618, %821, %816, %._crit_edge612
  %1177 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1178 unwind label %622

1178:                                             ; preds = %1176
  br i1 %1177, label %1179, label %1188

1179:                                             ; preds = %1178
  %1180 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1180, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1182 unwind label %622

1182:                                             ; preds = %1179
  %1183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1181, ptr noundef nonnull @.str.221)
          to label %1184 unwind label %622

1184:                                             ; preds = %1182
  %1185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1183, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1186 unwind label %622

1186:                                             ; preds = %1184
  %1187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1185, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1188 unwind label %622

1188:                                             ; preds = %1186, %1178
  %1189 = call ptr @_Z7reverseIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEE17reversion_wrapperIT_EOSF_(ptr noundef nonnull align 8 dereferenceable(24) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #11
  call void @_Z5beginIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %111, ptr %1189)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #11
  call void @_Z3endIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %112, ptr %1189)
  %1190 = getelementptr inbounds i8, ptr %123, i64 8
  %1191 = getelementptr inbounds i8, ptr %124, i64 8
  br label %1192

1192:                                             ; preds = %1387, %1188
  %1193 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEbRKSt16reverse_iteratorIT_ESL_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %1194 unwind label %1195

1194:                                             ; preds = %1192
  br i1 %1193, label %1197, label %.thread571

1195:                                             ; preds = %1192
  %1196 = landingpad { ptr, i32 }
          cleanup
  br label %1393

1197:                                             ; preds = %1194
  %1198 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %111)
  %1199 = load ptr, ptr %1198, align 8, !tbaa !105
  %1200 = icmp eq ptr %1199, null
  br i1 %1200, label %.thread571, label %1201

1201:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #11
  invoke void @_ZN3HIR11GenericPathC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1202 unwind label %1211

1202:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #11
  %1203 = load ptr, ptr %1198, align 8, !tbaa !105
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %1203)
          to label %1204 unwind label %1213

1204:                                             ; preds = %1202
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull %115)
          to label %1205 unwind label %1215

1205:                                             ; preds = %1204
  %1206 = getelementptr inbounds i8, ptr %1198, i64 8
  %1207 = load ptr, ptr %1206, align 8, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #11
  invoke void @_ZN3HIR7TypeRef8new_selfEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %116)
          to label %1208 unwind label %1217

1208:                                             ; preds = %1205
  %1209 = invoke noundef ptr @_ZNK15TraitResolution21trait_contains_methodERK4SpanRKN3HIR11GenericPathERKNS3_5TraitERKNS3_7TypeRefERK8RcStringRS4_(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(400) %1207, ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1210 unwind label %1219

1210:                                             ; preds = %1208
  %.not511 = icmp eq ptr %1209, null
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  br i1 %.not511, label %1387, label %1224

1211:                                             ; preds = %1201
  %1212 = landingpad { ptr, i32 }
          cleanup
  br label %1390

1213:                                             ; preds = %1202
  %1214 = landingpad { ptr, i32 }
          cleanup
  br label %1223

1215:                                             ; preds = %1204
  %1216 = landingpad { ptr, i32 }
          cleanup
  br label %1222

1217:                                             ; preds = %1205
  %1218 = landingpad { ptr, i32 }
          cleanup
  br label %1221

1219:                                             ; preds = %1208
  %1220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #11
  br label %1221

1221:                                             ; preds = %1219, %1217
  %.pn507 = phi { ptr, i32 } [ %1220, %1219 ], [ %1218, %1217 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %1222

1222:                                             ; preds = %1221, %1215
  %.pn507.pn = phi { ptr, i32 } [ %.pn507, %1221 ], [ %1216, %1215 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #11
  br label %1223

1223:                                             ; preds = %1222, %1213
  %.pn507.pn.pn = phi { ptr, i32 } [ %.pn507.pn, %1222 ], [ %1214, %1213 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  br label %1389

1224:                                             ; preds = %1210
  %1225 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1226 unwind label %1240

1226:                                             ; preds = %1224
  br i1 %1225, label %1227, label %1242

1227:                                             ; preds = %1226
  %1228 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1228, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1230 unwind label %1240

1230:                                             ; preds = %1227
  %1231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1229, ptr noundef nonnull @.str.199)
          to label %1232 unwind label %1240

1232:                                             ; preds = %1230
  %1233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_11GenericPathE(ptr noundef nonnull align 8 dereferenceable(8) %1231, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1234 unwind label %1240

1234:                                             ; preds = %1232
  %1235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1233, ptr noundef nonnull @.str.222)
          to label %1236 unwind label %1240

1236:                                             ; preds = %1234
  %1237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1235, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1238 unwind label %1240

1238:                                             ; preds = %1236
  %1239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1237, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1242 unwind label %1240

1240:                                             ; preds = %1238, %1236, %1234, %1232, %1230, %1227, %1224
  %1241 = landingpad { ptr, i32 }
          cleanup
  br label %1389

1242:                                             ; preds = %1238, %1226
  %1243 = load i32, ptr %10, align 4, !tbaa !5
  %1244 = invoke noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(352) %1209, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef %1243)
          to label %1245 unwind label %1265

1245:                                             ; preds = %1242
  %.not512 = icmp eq ptr %1244, null
  br i1 %.not512, label %1375, label %1246

1246:                                             ; preds = %1245
  %1247 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1248 unwind label %1267

1248:                                             ; preds = %1246
  br i1 %1247, label %1249, label %1269

1249:                                             ; preds = %1248
  %1250 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1250, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1252 unwind label %1267

1252:                                             ; preds = %1249
  %1253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1251, ptr noundef nonnull @.str.223)
          to label %1254 unwind label %1267

1254:                                             ; preds = %1252
  %1255 = load ptr, ptr %1198, align 8, !tbaa !105
  %1256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %1253, ptr noundef nonnull align 8 dereferenceable(8) %1255)
          to label %1257 unwind label %1267

1257:                                             ; preds = %1254
  %1258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1256, ptr noundef nonnull @.str.202)
          to label %1259 unwind label %1267

1259:                                             ; preds = %1257
  %1260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %1258, ptr noundef nonnull align 8 dereferenceable(8) %1244)
          to label %1261 unwind label %1267

1261:                                             ; preds = %1259
  %1262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1260, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1263 unwind label %1267

1263:                                             ; preds = %1261
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1262, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1269 unwind label %1267

1265:                                             ; preds = %1385, %1383, %1381, %1378, %1375, %1242
  %1266 = landingpad { ptr, i32 }
          cleanup
  br label %1389

1267:                                             ; preds = %1263, %1261, %1259, %1257, %1254, %1252, %1249, %1246
  %1268 = landingpad { ptr, i32 }
          cleanup
  br label %1389

1269:                                             ; preds = %1263, %1248
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %117) #11
  %1270 = load ptr, ptr %1206, align 8, !tbaa !107
  invoke void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::PathParams") align 8 %117, ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(96) %1270)
          to label %1271 unwind label %1314

1271:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %118) #11
  store i8 0, ptr %118, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #11
  store i8 0, ptr %119, align 1, !tbaa !11
  %1272 = load ptr, ptr %1198, align 8, !tbaa !105
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %121) #11
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 1 dereferenceable(1) %121) #11
  %1273 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_magicERK4SpanRKN3HIR10SimplePathERKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %1272, ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 8 dereferenceable(8) %1244, ptr noundef nonnull %120)
          to label %1274 unwind label %1316

1274:                                             ; preds = %1271
  %1275 = zext i1 %1273 to i8
  store i8 %1275, ptr %119, align 1, !tbaa !11
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #11
  %1276 = load ptr, ptr %1198, align 8, !tbaa !105
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %123) #11
  store ptr %118, ptr %123, align 8, !tbaa !13
  store ptr %119, ptr %1190, align 8, !tbaa !13
  call void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(16) %123) #11
  %1277 = invoke noundef zeroext i1 @_ZNK15TraitResolution22find_trait_impls_crateERK4SpanRKN3HIR10SimplePathEPKNS3_10PathParamsERKNS3_7TypeRefESt8functionIFb7ImplRefNS3_7CompareEEE(ptr noundef nonnull align 8 dereferenceable(280) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %1276, ptr noundef nonnull %117, ptr noundef nonnull align 8 dereferenceable(8) %1244, ptr noundef nonnull %122)
          to label %1278 unwind label %1318

1278:                                             ; preds = %1274
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #11
  %1279 = load i8, ptr %119, align 1, !tbaa !11, !range !48, !noundef !49
  %1280 = trunc nuw i8 %1279 to i1
  br i1 %1280, label %1281, label %1372

1281:                                             ; preds = %1278
  %1282 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1283 unwind label %1320

1283:                                             ; preds = %1281
  br i1 %1282, label %1284, label %1324

1284:                                             ; preds = %1283
  %1285 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1285, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1287 unwind label %1320

1287:                                             ; preds = %1284
  %1288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1286, ptr noundef nonnull @.str.201)
          to label %1289 unwind label %1320

1289:                                             ; preds = %1287
  %1290 = load ptr, ptr %1198, align 8, !tbaa !105
  %1291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %1288, ptr noundef nonnull align 8 dereferenceable(8) %1290)
          to label %1292 unwind label %1320

1292:                                             ; preds = %1289
  %1293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(8) %1291, ptr noundef nonnull align 8 dereferenceable(24) %117)
          to label %1294 unwind label %1320

1294:                                             ; preds = %1292
  %1295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1293, ptr noundef nonnull @.str.202)
          to label %1296 unwind label %1320

1296:                                             ; preds = %1294
  %1297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_7TypeRefE(ptr noundef nonnull align 8 dereferenceable(8) %1295, ptr noundef nonnull align 8 dereferenceable(8) %1244)
          to label %1298 unwind label %1320

1298:                                             ; preds = %1296
  %1299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1297, ptr noundef nonnull @.str.203)
          to label %1300 unwind label %1320

1300:                                             ; preds = %1298
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %124) #11
  %1301 = load ptr, ptr %139, align 8, !tbaa !15
  %1302 = invoke { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49) %1301, ptr noundef nonnull align 8 dereferenceable(8) %1244)
          to label %1303 unwind label %1322

1303:                                             ; preds = %1300
  %1304 = extractvalue { ptr, ptr } %1302, 0
  store ptr %1304, ptr %124, align 8
  %1305 = extractvalue { ptr, ptr } %1302, 1
  store ptr %1305, ptr %1191, align 8
  %1306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRKN16HMTypeInferrence7FmtTypeE(ptr noundef nonnull align 8 dereferenceable(8) %1299, ptr noundef nonnull align 8 dereferenceable(16) %124)
          to label %1307 unwind label %1322

1307:                                             ; preds = %1303
  %1308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1306, ptr noundef nonnull @.str.37)
          to label %1309 unwind label %1322

1309:                                             ; preds = %1307
  %1310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1308, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1311 unwind label %1322

1311:                                             ; preds = %1309
  %1312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1310, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1313 unwind label %1322

1313:                                             ; preds = %1311
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %124) #11
  br label %1324

1314:                                             ; preds = %1269
  %1315 = landingpad { ptr, i32 }
          cleanup
  br label %1374

1316:                                             ; preds = %1271
  %1317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #11
  br label %1373

1318:                                             ; preds = %1274
  %1319 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #11
  br label %1373

1320:                                             ; preds = %1346, %1344, %1341, %1339, %1336, %1333, %1298, %1296, %1294, %1292, %1289, %1287, %1284, %1281
  %1321 = landingpad { ptr, i32 }
          cleanup
  br label %1373

1322:                                             ; preds = %1311, %1309, %1307, %1303, %1300
  %1323 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %124) #11
  br label %1373

1324:                                             ; preds = %1313, %1283
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %125) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %126) #11
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %127, ptr noundef nonnull align 8 dereferenceable(8) %1244)
          to label %1325 unwind label %1348

1325:                                             ; preds = %1324
  %1326 = load ptr, ptr %1198, align 8, !tbaa !105
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %1326)
          to label %1327 unwind label %1350

1327:                                             ; preds = %1325
  invoke void @_ZN3HIR10PathParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull align 8 dereferenceable(24) %117)
          to label %1328 unwind label %1352

1328:                                             ; preds = %1327
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathENS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull %129, ptr noundef nonnull %130)
          to label %1329 unwind label %1354

1329:                                             ; preds = %1328
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %132)
          to label %1330 unwind label %1356

1330:                                             ; preds = %1329
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %126, ptr noundef nonnull %127, ptr noundef nonnull %128, ptr noundef nonnull %131, ptr noundef nonnull %132)
          to label %1331 unwind label %1358

1331:                                             ; preds = %1330
  invoke void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.653") align 8 %125, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(88) %126)
          to label %1332 unwind label %1360

1332:                                             ; preds = %1331
  invoke void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(96) %125)
          to label %1333 unwind label %1362

1333:                                             ; preds = %1332
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %125) #11
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %132) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #11
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #11
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %126) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %125) #11
  %1334 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1335 unwind label %1320

1335:                                             ; preds = %1333
  br i1 %1334, label %1336, label %1371

1336:                                             ; preds = %1335
  %1337 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1337, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1339 unwind label %1320

1339:                                             ; preds = %1336
  %1340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1338, ptr noundef nonnull @.str.204)
          to label %1341 unwind label %1320

1341:                                             ; preds = %1339
  %1342 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #11
  %1343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIN15TraitResolution15AutoderefBorrowEN3HIR4PathEERSoS4_RKSt4pairIT_T0_E(ptr noundef nonnull align 8 dereferenceable(8) %1340, ptr noundef nonnull align 8 dereferenceable(96) %1342)
          to label %1344 unwind label %1320

1344:                                             ; preds = %1341
  %1345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1343, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1346 unwind label %1320

1346:                                             ; preds = %1344
  %1347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1345, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1371 unwind label %1320

1348:                                             ; preds = %1324
  %1349 = landingpad { ptr, i32 }
          cleanup
  br label %1370

1350:                                             ; preds = %1325
  %1351 = landingpad { ptr, i32 }
          cleanup
  br label %1369

1352:                                             ; preds = %1327
  %1353 = landingpad { ptr, i32 }
          cleanup
  br label %1368

1354:                                             ; preds = %1328
  %1355 = landingpad { ptr, i32 }
          cleanup
  br label %1367

1356:                                             ; preds = %1329
  %1357 = landingpad { ptr, i32 }
          cleanup
  br label %1366

1358:                                             ; preds = %1330
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1365

1360:                                             ; preds = %1331
  %1361 = landingpad { ptr, i32 }
          cleanup
  br label %1364

1362:                                             ; preds = %1332
  %1363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %125) #11
  br label %1364

1364:                                             ; preds = %1362, %1360
  %.pn513 = phi { ptr, i32 } [ %1363, %1362 ], [ %1361, %1360 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #11
  br label %1365

1365:                                             ; preds = %1364, %1358
  %.pn513.pn = phi { ptr, i32 } [ %.pn513, %1364 ], [ %1359, %1358 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %132) #11
  br label %1366

1366:                                             ; preds = %1365, %1356
  %.pn513.pn.pn = phi { ptr, i32 } [ %.pn513.pn, %1365 ], [ %1357, %1356 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  br label %1367

1367:                                             ; preds = %1366, %1354
  %.pn513.pn.pn.pn = phi { ptr, i32 } [ %.pn513.pn.pn, %1366 ], [ %1355, %1354 ]
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #11
  br label %1368

1368:                                             ; preds = %1367, %1352
  %.pn513.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn513.pn.pn.pn, %1367 ], [ %1353, %1352 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #11
  br label %1369

1369:                                             ; preds = %1368, %1350
  %.pn513.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn513.pn.pn.pn.pn, %1368 ], [ %1351, %1350 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #11
  br label %1370

1370:                                             ; preds = %1369, %1348
  %.pn513.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn513.pn.pn.pn.pn.pn, %1369 ], [ %1349, %1348 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %126) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %125) #11
  br label %1373

1371:                                             ; preds = %1346, %1335
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %1372

1372:                                             ; preds = %1371, %1278
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %117) #11
  br label %1387

1373:                                             ; preds = %1370, %1322, %1320, %1318, %1316
  %.pn521 = phi { ptr, i32 } [ %1321, %1320 ], [ %.pn513.pn.pn.pn.pn.pn.pn, %1370 ], [ %1323, %1322 ], [ %1319, %1318 ], [ %1317, %1316 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #11
  br label %1374

1374:                                             ; preds = %1373, %1314
  %.pn521.pn = phi { ptr, i32 } [ %.pn521, %1373 ], [ %1315, %1314 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %117) #11
  br label %1389

1375:                                             ; preds = %1245
  %1376 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1377 unwind label %1265

1377:                                             ; preds = %1375
  br i1 %1376, label %1378, label %1387

1378:                                             ; preds = %1377
  %1379 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !41
  %1380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1379, ptr noundef nonnull @__func__._ZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EE)
          to label %1381 unwind label %1265

1381:                                             ; preds = %1378
  %1382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1380, ptr noundef nonnull @.str.224)
          to label %1383 unwind label %1265

1383:                                             ; preds = %1381
  %1384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1382, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1385 unwind label %1265

1385:                                             ; preds = %1383
  %1386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1384, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1387 unwind label %1265

1387:                                             ; preds = %1372, %1385, %1377, %1210
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #11
  %1388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKN3HIR10SimplePathEPKNS3_5TraitEESt6vectorISA_SaISA_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %111)
  br label %1192

1389:                                             ; preds = %1265, %1374, %1267, %1240, %1223
  %.pn521.pn.pn.pn.pn = phi { ptr, i32 } [ %1241, %1240 ], [ %.pn507.pn.pn, %1223 ], [ %1266, %1265 ], [ %.pn521.pn, %1374 ], [ %1268, %1267 ]
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  br label %1390

1390:                                             ; preds = %1389, %1211
  %.pn521.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn521.pn.pn.pn.pn, %1389 ], [ %1212, %1211 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #11
  br label %1393

.thread571:                                       ; preds = %1197, %1194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #11
  %1391 = load i8, ptr %12, align 1, !tbaa !11, !range !48, !noundef !49
  %1392 = trunc nuw i8 %1391 to i1
  br label %1394

1393:                                             ; preds = %1390, %1195
  %.pn521.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn521.pn.pn.pn.pn.pn, %1390 ], [ %1196, %1195 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #11
  br label %1395

1394:                                             ; preds = %714, %.thread571
  %.14 = phi i1 [ %1392, %.thread571 ], [ true, %714 ]
  call void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %50) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #11
  br label %1397

1395:                                             ; preds = %725, %813, %817, %842, %1175, %840, %654, %713, %656, %1393, %622
  %.pn539.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn521.pn.pn.pn.pn.pn.pn, %1393 ], [ %623, %622 ], [ %655, %654 ], [ %.pn448.pn.pn, %713 ], [ %657, %656 ], [ %.pn539.pn.pn.pn, %813 ], [ %818, %817 ], [ %726, %725 ], [ %841, %840 ], [ %.pn494.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1175 ], [ %843, %842 ]
  call void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %50) #11
  br label %1396

1396:                                             ; preds = %1395, %620
  %.pn539.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn539.pn.pn.pn.pn.pn, %1395 ], [ %621, %620 ]
  %.108 = extractvalue { ptr, i32 } %.pn539.pn.pn.pn.pn.pn.pn, 0
  %.108361 = extractvalue { ptr, i32 } %.pn539.pn.pn.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #11
  br label %1398

1397:                                             ; preds = %.thread559, %.thread551, %364, %1394
  %.15 = phi i1 [ %.14, %1394 ], [ %.1, %364 ], [ false, %.thread551 ], [ false, %.thread559 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  ret i1 %.15

1398:                                             ; preds = %1396, %606, %366, %211, %163
  %.109362 = phi i32 [ %.108361, %1396 ], [ %.32285, %606 ], [ %166, %163 ], [ %.16269, %366 ], [ %.1254, %211 ]
  %.109 = phi ptr [ %.108, %1396 ], [ %.32, %606 ], [ %165, %163 ], [ %.16, %366 ], [ %.1238, %211 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #11
  br label %1399

1399:                                             ; preds = %1398, %159
  %.110363 = phi i32 [ %.109362, %1398 ], [ %162, %159 ]
  %.110 = phi ptr [ %.109, %1398 ], [ %161, %159 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #11
  br label %1400

1400:                                             ; preds = %1399, %155
  %.111364 = phi i32 [ %.110363, %1399 ], [ %158, %155 ]
  %.111 = phi ptr [ %.110, %1399 ], [ %157, %155 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  %1401 = insertvalue { ptr, i32 } poison, ptr %.111, 0
  %1402 = insertvalue { ptr, i32 } %1401, i32 %.111364, 1
  resume { ptr, i32 } %1402

1403:                                             ; preds = %356
  %1404 = landingpad { ptr, i32 }
          catch ptr null
  %1405 = extractvalue { ptr, i32 } %1404, 0
  call void @__clang_call_terminate(ptr %1405) #12
  unreachable

1406:                                             ; preds = %880
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK15TraitResolution21check_method_receiverERK4SpanRKN3HIR8FunctionERKNS3_7TypeRefENS_12MethodAccessE(ptr noundef nonnull align 8 dereferenceable(280), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

declare void @_ZNK3HIR13InherentCache4findERK4SpanRK8RcStringRKNS_7TypeRefERKNS_19ResolvePlaceholdersESt8functionIFvS9_RKNS_8TypeImplEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRKN3HIR7TypeRefERKNS0_8TypeImplEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISM_EERKSE_IjSaIjEES3_RK8RcStringNSA_12MethodAccessENSA_15AutoderefBorrowERSE_ISF_ISZ_NS0_4PathEESaIS11_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(48)) 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 #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK3$_2clERKNS5_13GenericParamsE"(ptr dead_on_unwind noalias writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZNK16HMTypeInferrence8fmt_typeERKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIN15TraitResolution15AutoderefBorrowEN3HIR4PathEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRN15TraitResolution15AutoderefBorrowEN3HIR4PathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.653") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3

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

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #9

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN18MonomorphEraseHrlsC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

declare void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR4Path4Data14make_UfcsKnownENS1_14Data_UfcsKnownE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Path::Data") align 8, ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEENK4$_12clESN_St8functionIFbSN_EE"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFbRKN3HIR7TypeRefEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS0_10SimplePathEPKNS0_5TraitEESaISJ_EERKSB_IjSaIjEES3_RK8RcStringNS7_12MethodAccessENS7_15AutoderefBorrowERSB_ISC_ISW_NS0_4PathEESaISY_EEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNSA_5TraitEESaISH_EERKS8_IjSaIjEERKNSA_7TypeRefERK8RcStringNS4_12MethodAccessENS4_15AutoderefBorrowERS8_IS9_ISX_NSA_4PathEESaISZ_EEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR13GenericParams17make_empty_paramsEb(ptr dead_on_unwind noalias writable sret(%"struct.HIR::PathParams") align 8, ptr noundef nonnull align 8 dereferenceable(96), i1 noundef zeroext) local_unnamed_addr #3 align 2

declare noundef zeroext i1 @_Z30monomorphise_pathparams_neededRKN3HIR10PathParamsEb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z5beginIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z3endIRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS2_5TraitEESaIS9_EEEDa17reversion_wrapperIT_E(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFb7ImplRefN3HIR7CompareEEEC2IZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKNS1_10SimplePathEPKNS1_5TraitEESaISI_EERKSA_IjSaIjEERKNS1_7TypeRefERK8RcStringNS6_12MethodAccessENS6_15AutoderefBorrowERSA_ISB_ISY_NS1_4PathEESaIS10_EEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEEN4$_12D2Ev"(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nofree nosync nounwind memory(none) }
attributes #10 = { noinline noreturn nounwind uwtable "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 #11 = { nounwind }
attributes #12 = { noreturn nounwind }
attributes #13 = { 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 = !{!"_ZTSN15TraitResolution12MethodAccessE", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTSN15TraitResolution15AutoderefBorrowE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!16, !14, i64 224}
!16 = !{!"_ZTS15TraitResolution", !17, i64 0, !14, i64 216, !14, i64 224, !14, i64 232, !14, i64 240, !14, i64 248, !35, i64 256}
!17 = !{!"_ZTS18TraitResolveCommon", !14, i64 0, !14, i64 8, !14, i64 16, !18, i64 24, !27, i64 72, !33, i64 104, !33, i64 112, !33, i64 120, !33, i64 128, !33, i64 136, !33, i64 144, !33, i64 152, !33, i64 160, !33, i64 168, !33, i64 176, !33, i64 184, !33, i64 192, !33, i64 200, !33, i64 208}
!18 = !{!"_ZTSSt3mapIN3HIR7TypeRefEN18TraitResolveCommon14CachedEqualityESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !19, i64 0}
!19 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !20, i64 0}
!20 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !21, i64 0, !23, i64 8}
!21 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR7TypeRefEEE", !22, i64 0}
!22 = !{!"_ZTSSt4lessIN3HIR7TypeRefEE"}
!23 = !{!"_ZTSSt15_Rb_tree_header", !24, i64 0, !26, i64 32}
!24 = !{!"_ZTSSt18_Rb_tree_node_base", !25, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!25 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTS11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE", !28, i64 0, !32, i64 24}
!28 = !{!"_ZTSSt6vectorISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!32 = !{!"_ZTSN18TraitResolveCommon14CachedBoundCmpE"}
!33 = !{!"_ZTSN3HIR10SimplePathE", !34, i64 0}
!34 = !{!"_ZTS10ThinVectorI8RcStringE", !14, i64 0}
!35 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR7TypeRefESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!39 = !{!40, !14, i64 16}
!40 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE3$_2", !14, i64 0, !14, i64 8, !14, i64 16}
!41 = !{!42, !42, i64 0}
!42 = !{!"int", !7, i64 0}
!43 = !{!17, !14, i64 0}
!44 = !{!45, !14, i64 8}
!45 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE3$_3", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40}
!46 = !{!16, !14, i64 240}
!47 = !{!16, !14, i64 248}
!48 = !{i8 0, i8 2}
!49 = !{}
!50 = !{!51, !14, i64 96}
!51 = !{!"_ZTSN18TraitResolveCommon11CachedBoundE", !52, i64 0, !14, i64 96, !69, i64 104}
!52 = !{!"_ZTSN3HIR13GenericParamsE", !53, i64 0, !57, i64 24, !61, i64 48, !65, i64 72}
!53 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!57 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!61 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!65 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!69 = !{!"_ZTSSt3mapI8RcStringN3HIR9TraitPath8AtyEqualESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !70, i64 0}
!70 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyEqualEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !71, i64 0}
!71 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyEqualEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !72, i64 0, !23, i64 8}
!72 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !73, i64 0}
!73 = !{!"_ZTSSt4lessI8RcStringE"}
!74 = !{!75, !14, i64 0}
!75 = !{!"_ZTSZNK15TraitResolution11find_methodERK4SpanRKSt6vectorISt4pairIPKN3HIR10SimplePathEPKNS5_5TraitEESaISC_EERKS3_IjSaIjEERKNS5_7TypeRefERK8RcStringNS_12MethodAccessENS_15AutoderefBorrowERS3_IS4_ISS_NS5_4PathEESaISU_EEE4$_12", !14, i64 0, !76, i64 8}
!76 = !{!"_ZTS4Span", !14, i64 0}
!77 = !{!78, !14, i64 136}
!78 = !{!"_ZTSN3HIR9TraitPathE", !79, i64 0, !85, i64 8, !69, i64 40, !90, i64 88, !14, i64 136}
!79 = !{!"_ZTSSt10unique_ptrIN3HIR13GenericParamsESt14default_deleteIS1_EE", !80, i64 0}
!80 = !{!"_ZTSSt15__uniq_ptr_dataIN3HIR13GenericParamsESt14default_deleteIS1_ELb1ELb1EE", !81, i64 0}
!81 = !{!"_ZTSSt15__uniq_ptr_implIN3HIR13GenericParamsESt14default_deleteIS1_EE", !82, i64 0}
!82 = !{!"_ZTSSt5tupleIJPN3HIR13GenericParamsESt14default_deleteIS1_EEE", !83, i64 0}
!83 = !{!"_ZTSSt11_Tuple_implILm0EJPN3HIR13GenericParamsESt14default_deleteIS1_EEE", !84, i64 0}
!84 = !{!"_ZTSSt10_Head_baseILm0EPN3HIR13GenericParamsELb0EE", !14, i64 0}
!85 = !{!"_ZTSN3HIR11GenericPathE", !33, i64 0, !86, i64 8}
!86 = !{!"_ZTSN3HIR10PathParamsE", !87, i64 0, !88, i64 8, !89, i64 16}
!87 = !{!"_ZTS10ThinVectorIN3HIR11LifetimeRefEE", !14, i64 0}
!88 = !{!"_ZTS10ThinVectorIN3HIR7TypeRefEE", !14, i64 0}
!89 = !{!"_ZTS10ThinVectorIN3HIR12ConstGenericEE", !14, i64 0}
!90 = !{!"_ZTSSt3mapI8RcStringN3HIR9TraitPath8AtyBoundESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !91, i64 0}
!91 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyBoundEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !92, i64 0}
!92 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR9TraitPath8AtyBoundEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !72, i64 0, !23, i64 8}
!93 = !{!94, !14, i64 120}
!94 = !{!"_ZTS17MonomorphStatePtr", !95, i64 0, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120}
!95 = !{!"_ZTS15MonomorphiserPP", !96, i64 0}
!96 = !{!"_ZTS13Monomorphiser", !14, i64 8, !97, i64 16, !98, i64 72}
!97 = !{!"_ZTSN3HIR8ItemPathE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48}
!98 = !{!"_ZTSSt6vectorIPKN3HIR13GenericParamsESaIS3_EE", !99, i64 0}
!99 = !{!"_ZTSSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE12_Vector_implE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!102 = !{!103, !14, i64 152}
!103 = !{!"_ZTSN3HIR12GenericBound15Data_TraitBoundE", !79, i64 0, !104, i64 8, !78, i64 16}
!104 = !{!"_ZTSN3HIR7TypeRefE", !14, i64 0}
!105 = !{!106, !14, i64 0}
!106 = !{!"_ZTSSt4pairIPKN3HIR10SimplePathEPKNS0_5TraitEE", !14, i64 0, !14, i64 8}
!107 = !{!106, !14, i64 8}


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