; LLVM IR from facebook/redex :: service/remove_redundant_check_casts (CheckCastAnalysis)

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

%"class.std::basic_string_view" = type { i64, ptr }
%"class.cfg::InstructionIterableImpl" = type { ptr }
%"class.cfg::InstructionIteratorImpl" = type { ptr, %"struct.std::_Rb_tree_const_iterator", %"class.ir_list::InstructionIteratorImpl" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.ir_list::InstructionIteratorImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.boost::intrusive::list_iterator" = type { %"struct.boost::intrusive::iiterator_members" }
%"struct.boost::intrusive::iiterator_members" = type { ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.3" }
%"struct.std::_Head_base.3" = type { ptr }
%"class.reaching_defs::MoveAwareFixpointIterator" = type { %"class.ir_analyzer::BaseIRAnalyzer", %"class.std::function" }
%"class.ir_analyzer::BaseIRAnalyzer" = type { %"class.sparta::MonotonicFixpointIterator" }
%"class.sparta::MonotonicFixpointIterator" = type { %"class.sparta::fp_impl::MonotonicFixpointIteratorBase", %"class.sparta::WeakPartialOrdering" }
%"class.sparta::fp_impl::MonotonicFixpointIteratorBase" = type { %"class.sparta::FixpointIterator", ptr, %"class.sparta::AbstractEnvironment", %"class.std::unordered_map.125", %"class.std::unordered_map.125" }
%"class.sparta::FixpointIterator" = type { ptr }
%"class.sparta::AbstractEnvironment" = type { %"class.sparta::AbstractDomainScaffolding" }
%"class.sparta::AbstractDomainScaffolding" = type { i32, %"class.sparta::environment_impl::MapValue" }
%"class.sparta::environment_impl::MapValue" = type { %"class.sparta::PatriciaTreeMap" }
%"class.sparta::PatriciaTreeMap" = type { %"class.sparta::pt_core::PatriciaTreeCore" }
%"class.sparta::pt_core::PatriciaTreeCore" = type { %"class.boost::intrusive_ptr" }
%"class.boost::intrusive_ptr" = type { ptr }
%"class.std::unordered_map.125" = type { %"class.std::_Hashtable.126" }
%"class.std::_Hashtable.126" = 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.sparta::WeakPartialOrdering" = type <{ %"class.std::vector.145", %"class.std::vector.150", %"class.std::unordered_map.155", i8, [7 x i8] }>
%"class.std::vector.145" = type { %"struct.std::_Vector_base.146" }
%"struct.std::_Vector_base.146" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.150" = type { %"struct.std::_Vector_base.151" }
%"struct.std::_Vector_base.151" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.155" = type { %"class.std::_Hashtable.156" }
%"class.std::_Hashtable.156" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.ir_list::InstructionIterableImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.182", %"class.std::stack", ptr }
%"class.boost::intrusive_ptr.182" = type { ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"struct.std::pair.186" = type <{ %"class.UnorderedSet<DexType *>::FixedIterator", i8, [7 x i8] }>
%"class.UnorderedSet<DexType *>::FixedIterator" = type { %"struct.std::__detail::_Node_iterator.45" }
%"struct.std::__detail::_Node_iterator.45" = type { %"struct.std::__detail::_Node_iterator_base.46" }
%"struct.std::__detail::_Node_iterator_base.46" = type { ptr }
%"class.UnorderedMap<IRInstruction *, UnorderedSet<DexType *>>::UnorderedIterable" = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%class.anon.188 = type { i8 }
%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.26" }
%"class.std::_Hashtable.26" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::queue" = type { %"class.std::deque.189" }
%"class.std::deque.189" = type { %"class.std::_Deque_base.190" }
%"class.std::_Deque_base.190" = type { %"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl" }
%"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl" = type { %"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator.191", %"struct.std::_Deque_iterator.191" }
%"struct.std::_Deque_iterator.191" = type { ptr, ptr, ptr, ptr }
%class.anon.192 = type { ptr }
%"class.UnorderedSet<DexType *>::UnorderedIterable" = type { ptr }
%class.anon.193 = type { ptr, ptr }
%"class.check_casts::impl::CheckCastAnalysis" = type { ptr, ptr, i8, ptr, ptr, ptr, ptr, %"class.std::unique_ptr", %"class.std::vector", %"class.std::unique_ptr.7", ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.7" = type { %"struct.std::__uniq_ptr_data.8" }
%"struct.std::__uniq_ptr_data.8" = type { %"class.std::__uniq_ptr_impl.9" }
%"class.std::__uniq_ptr_impl.9" = type { %"class.std::tuple.10" }
%"class.std::tuple.10" = type { %"struct.std::_Tuple_impl.11" }
%"struct.std::_Tuple_impl.11" = type { %"struct.std::_Head_base.14" }
%"struct.std::_Head_base.14" = type { ptr }
%struct.MethodItemEntry = type { %"class.boost::intrusive::list_member_hook", i32, %union.anon.100 }
%"class.boost::intrusive::list_member_hook" = type { %"class.boost::intrusive::generic_hook" }
%"class.boost::intrusive::generic_hook" = type { %"struct.boost::intrusive::list_node" }
%"struct.boost::intrusive::list_node" = type { ptr, ptr }
%union.anon.100 = type { ptr }
%"struct.check_casts::CheckCastConfig" = type { i8 }
%"struct.std::pair" = type { ptr, %class.UnorderedSet }

@.str.9 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [28 x i8], align 1
@__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE = external hidden unnamed_addr constant [200 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [133 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK11check_casts4impl17CheckCastAnalysis15get_type_demandEP13IRInstructionm(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef, i64 noundef) #1 align 2

declare noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #3

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

declare noundef ptr @_ZN4type16java_lang_ObjectEv() #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN7DexType9make_typeESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 8 dereferenceable(160) %2, i1 noundef zeroext %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(88) %8) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i8, align 1
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.std::basic_string_view", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.cfg::InstructionIterableImpl", align 8
  %23 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %24 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca %"class.std::unique_ptr", align 8
  %28 = alloca %"class.reaching_defs::MoveAwareFixpointIterator", align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %"class.sparta::AbstractEnvironment", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.std::vector.169", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"class.sparta::AbstractEnvironment", align 8
  %37 = alloca ptr, align 8
  %38 = alloca %"class.ir_list::InstructionIterableImpl", align 8
  %39 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %40 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca i64, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %48 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %49 = alloca ptr, align 8
  %50 = alloca i16, align 2
  %51 = alloca ptr, align 8
  %52 = alloca %"struct.std::pair.186", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"class.UnorderedMap<IRInstruction *, UnorderedSet<DexType *>>::UnorderedIterable", align 8
  %55 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %56 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca %class.anon.188, align 1
  %61 = alloca ptr, align 8
  %62 = alloca %class.UnorderedSet, align 8
  %63 = alloca %"class.std::queue", align 8
  %64 = alloca %class.anon.192, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %"class.UnorderedSet<DexType *>::UnorderedIterable", align 8
  %67 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %68 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca %"struct.std::pair.186", align 8
  %72 = alloca { ptr, i8 }, align 8
  %73 = alloca ptr, align 8
  %74 = alloca %"class.UnorderedSet<DexType *>::UnorderedIterable", align 8
  %75 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %76 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %77 = alloca ptr, align 8
  %78 = alloca %class.anon.193, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  %79 = zext i1 %3 to i8
  store i8 %79, ptr %13, align 1, !tbaa !9
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  store ptr %8, ptr %18, align 8, !tbaa !5
  %80 = load ptr, ptr %10, align 8
  %81 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 0
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef @.str.18) #8
  %82 = getelementptr inbounds { i64, ptr }, ptr %19, i32 0, i32 0
  %83 = load i64, ptr %82, align 8
  %84 = getelementptr inbounds { i64, ptr }, ptr %19, i32 0, i32 1
  %85 = load ptr, ptr %84, align 8
  %86 = call noundef ptr @_ZN7DexType9make_typeESt17basic_string_viewIcSt11char_traitsIcEE(i64 %83, ptr %85)
  store ptr %86, ptr %81, align 8, !tbaa !11
  %87 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 1
  %88 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %88, ptr %87, align 8, !tbaa !5
  %89 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 2
  %90 = load i8, ptr %13, align 1, !tbaa !9, !range !29, !noundef !30
  %91 = trunc i8 %90 to i1
  %92 = zext i1 %91 to i8
  store i8 %92, ptr %89, align 8, !tbaa !31
  %93 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 3
  %94 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %94, ptr %93, align 8, !tbaa !32
  %95 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 4
  %96 = load ptr, ptr %15, align 8, !tbaa !5
  store ptr %96, ptr %95, align 8, !tbaa !33
  %97 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 5
  %98 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %98, ptr %97, align 8, !tbaa !34
  %99 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 6
  %100 = load ptr, ptr %17, align 8, !tbaa !5
  store ptr %100, ptr %99, align 8, !tbaa !35
  %101 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 7
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEC2ISF_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  %102 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 8
  call void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #8
  %103 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 9
  call void @_ZNSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  %104 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 10
  %105 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %105, ptr %104, align 8, !tbaa !5
  %106 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 0
  %107 = load ptr, ptr %106, align 8, !tbaa !11
  %108 = icmp ne ptr %107, null
  br i1 %108, label %109, label %110

109:                                              ; preds = %9
  br label %117

110:                                              ; preds = %9
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.19, ptr noundef @.str.9, i32 noundef 363, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %111 unwind label %112

111:                                              ; preds = %110
  unreachable

112:                                              ; preds = %110
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %20, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %21, align 4
  br label %681

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %118 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN3cfg23InstructionIterableImplILb0EEC2ERNS_16ControlFlowGraphE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(160) %118)
          to label %119 unwind label %126

119:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  invoke void @_ZN3cfg23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %120 unwind label %130

120:                                              ; preds = %119
  br label %121

121:                                              ; preds = %158, %120
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  invoke void @_ZN3cfg23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %24, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %122 unwind label %134

122:                                              ; preds = %121
  %123 = invoke noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEneERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %124 unwind label %134

124:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br i1 %123, label %138, label %125

125:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %160

126:                                              ; preds = %117
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %20, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %21, align 4
  br label %680

130:                                              ; preds = %156, %119
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %20, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %21, align 4
  br label %159

134:                                              ; preds = %122, %121
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %20, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br label %159

138:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %139 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %140 unwind label %151

140:                                              ; preds = %138
  %141 = getelementptr inbounds %struct.MethodItemEntry, ptr %139, i32 0, i32 2
  %142 = load ptr, ptr %141, align 8, !tbaa !36
  store ptr %142, ptr %25, align 8, !tbaa !5
  %143 = load ptr, ptr %25, align 8, !tbaa !5
  %144 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %145 unwind label %151

145:                                              ; preds = %140
  %146 = zext i16 %144 to i32
  %147 = icmp eq i32 %146, 18
  br i1 %147, label %148, label %155

148:                                              ; preds = %145
  %149 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 8
  invoke void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %149, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %150 unwind label %151

150:                                              ; preds = %148
  br label %155

151:                                              ; preds = %148, %140, %138
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %20, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %159

155:                                              ; preds = %150, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %156

156:                                              ; preds = %155
  %157 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3cfg23InstructionIteratorImplILb0EEppEv(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %158 unwind label %130

158:                                              ; preds = %156
  br label %121, !llvm.loop !37

159:                                              ; preds = %151, %134, %130
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %680

160:                                              ; preds = %125
  %161 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 8
  %162 = call noundef zeroext i1 @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %161) #8
  br i1 %162, label %163, label %164

163:                                              ; preds = %160
  store i32 1, ptr %26, align 4
  br label %675

164:                                              ; preds = %160
  %165 = load ptr, ptr %11, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.check_casts::CheckCastConfig", ptr %165, i32 0, i32 0
  %167 = load i8, ptr %166, align 1, !tbaa !39, !range !29, !noundef !30
  %168 = trunc i8 %167 to i1
  br i1 %168, label %170, label %169

169:                                              ; preds = %164
  store i32 1, ptr %26, align 4
  br label %675

170:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  invoke void @_ZSt11make_uniqueI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8 %27)
          to label %171 unwind label %189

171:                                              ; preds = %170
  %172 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 7
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEaSEOSG_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 288, ptr %28) #8
  %174 = load ptr, ptr %12, align 8, !tbaa !5
  call void @_ZNSt8functionIFbPK13IRInstructionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr null) #8
  invoke void @_ZN13reaching_defs25MoveAwareFixpointIteratorC2ERKN3cfg16ControlFlowGraphESt8functionIFbPK13IRInstructionEE(ptr noundef nonnull align 8 dereferenceable(288) %28, ptr noundef nonnull align 8 dereferenceable(160) %174, ptr noundef %29)
          to label %175 unwind label %193

175:                                              ; preds = %171
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #8
  invoke void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %176 unwind label %197

176:                                              ; preds = %175
  invoke void @_ZN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEESt4hashIPNS1_5BlockEEE3runERKSE_(ptr noundef nonnull align 8 dereferenceable(256) %28, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %177 unwind label %201

177:                                              ; preds = %176
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #8
  %178 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.169") align 8 %32, ptr noundef nonnull align 8 dereferenceable(160) %178)
          to label %179 unwind label %206

179:                                              ; preds = %177
  store ptr %32, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %180 = load ptr, ptr %31, align 8, !tbaa !5
  %181 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %180) #8
  %182 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %181, ptr %182, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %183 = load ptr, ptr %31, align 8, !tbaa !5
  %184 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %183) #8
  %185 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %184, ptr %185, align 8
  br label %186

186:                                              ; preds = %428, %179
  %187 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %187, label %210, label %188

188:                                              ; preds = %186
  store i32 5, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %433

189:                                              ; preds = %170
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %20, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %680

193:                                              ; preds = %171
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %20, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %21, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %679

197:                                              ; preds = %175
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %20, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %21, align 4
  br label %205

201:                                              ; preds = %176
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %20, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %21, align 4
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  br label %205

205:                                              ; preds = %201, %197
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  br label %678

206:                                              ; preds = %177
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %20, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %21, align 4
  br label %432

210:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %212 = load ptr, ptr %211, align 8, !tbaa !5
  store ptr %212, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #8
  %213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSI_(ptr noundef nonnull align 8 dereferenceable(144) %28, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %214 unwind label %219

214:                                              ; preds = %210
  invoke void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %213)
          to label %215 unwind label %219

215:                                              ; preds = %214
  %216 = invoke noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS9_EEEEEENS_19AbstractEnvironmentISC_EEE9is_bottomEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %217 unwind label %223

217:                                              ; preds = %215
  br i1 %216, label %218, label %227

218:                                              ; preds = %217
  store i32 6, ptr %26, align 4
  br label %422

219:                                              ; preds = %214, %210
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %20, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %21, align 4
  br label %431

223:                                              ; preds = %215
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %20, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %21, align 4
  br label %430

227:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #8
  %228 = load ptr, ptr %35, align 8, !tbaa !5
  invoke void @_Z19InstructionIterableIN3cfg5BlockEEN7ir_list23InstructionIterableImplILb0EEEPT_(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIterableImpl") align 8 %38, ptr noundef %228)
          to label %229 unwind label %238

229:                                              ; preds = %227
  store ptr %38, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #8
  %230 = load ptr, ptr %37, align 8, !tbaa !5
  invoke void @_ZNK7ir_list23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %39, ptr noundef nonnull align 8 dereferenceable(16) %230)
          to label %231 unwind label %242

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %232 = load ptr, ptr %37, align 8, !tbaa !5
  invoke void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %40, ptr noundef nonnull align 8 dereferenceable(16) %232)
          to label %233 unwind label %246

233:                                              ; preds = %231
  br label %234

234:                                              ; preds = %411, %233
  %235 = invoke noundef zeroext i1 @_ZNK7ir_list23InstructionIteratorImplILb0EEneERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %236 unwind label %246

236:                                              ; preds = %234
  br i1 %235, label %250, label %237

237:                                              ; preds = %236
  store i32 7, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %421

238:                                              ; preds = %227
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %20, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %21, align 4
  br label %420

242:                                              ; preds = %229
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %20, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %21, align 4
  br label %419

246:                                              ; preds = %409, %234, %231
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %20, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %21, align 4
  br label %418

250:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %251 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %252 unwind label %263

252:                                              ; preds = %250
  store ptr %251, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %253 = load ptr, ptr %41, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.MethodItemEntry, ptr %253, i32 0, i32 2
  %255 = load ptr, ptr %254, align 8, !tbaa !36
  store ptr %255, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  store i64 0, ptr %43, align 8, !tbaa !41
  br label %256

256:                                              ; preds = %400, %252
  %257 = load i64, ptr %43, align 8, !tbaa !41
  %258 = load ptr, ptr %42, align 8, !tbaa !5
  %259 = invoke noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %260 unwind label %267

260:                                              ; preds = %256
  %261 = icmp ult i64 %257, %259
  br i1 %261, label %271, label %262

262:                                              ; preds = %260
  store i32 9, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %406

263:                                              ; preds = %250
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %20, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %21, align 4
  br label %417

267:                                              ; preds = %256
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %20, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %21, align 4
  br label %405

271:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %272 = load ptr, ptr %42, align 8, !tbaa !5
  %273 = load i64, ptr %43, align 8, !tbaa !41
  %274 = trunc i64 %273 to i16
  %275 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %272, i16 noundef zeroext %274)
          to label %276 unwind label %289

276:                                              ; preds = %271
  store i32 %275, ptr %44, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %277 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %278 unwind label %293

278:                                              ; preds = %276
  store ptr %277, ptr %45, align 8, !tbaa !5
  %279 = load ptr, ptr %45, align 8, !tbaa !5
  %280 = invoke noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17SetAbstractDomainIS6_EEE9is_bottomEv(ptr noundef nonnull align 8 dereferenceable(16) %279)
          to label %281 unwind label %293

281:                                              ; preds = %278
  br i1 %280, label %287, label %282

282:                                              ; preds = %281
  %283 = load ptr, ptr %45, align 8, !tbaa !5
  %284 = invoke noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17SetAbstractDomainIS6_EEE6is_topEv(ptr noundef nonnull align 8 dereferenceable(16) %283)
          to label %285 unwind label %293

285:                                              ; preds = %282
  br i1 %284, label %287, label %286

286:                                              ; preds = %285
  br label %298

287:                                              ; preds = %285, %281
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.20, ptr noundef @.str.9, i32 noundef 392, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %288 unwind label %293

288:                                              ; preds = %287
  unreachable

289:                                              ; preds = %271
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %20, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %21, align 4
  br label %404

293:                                              ; preds = %287, %282, %278, %276
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %20, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %21, align 4
  br label %403

297:                                              ; No predecessors!
  br label %298

298:                                              ; preds = %297, %286
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %299 = load ptr, ptr %45, align 8, !tbaa !5
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIP13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS2_EEEERKS6_NS_17SetAbstractDomainIS6_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %299)
          to label %301 unwind label %310

301:                                              ; preds = %298
  store ptr %300, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %47) #8
  %302 = load ptr, ptr %46, align 8, !tbaa !5
  invoke void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE5beginEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %47, ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %303 unwind label %314

303:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 96, ptr %48) #8
  %304 = load ptr, ptr %46, align 8, !tbaa !5
  invoke void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE3endEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %48, ptr noundef nonnull align 8 dereferenceable(8) %304)
          to label %305 unwind label %318

305:                                              ; preds = %303
  br label %306

306:                                              ; preds = %392, %305
  %307 = invoke noundef zeroext i1 @_ZNK6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEneERKS5_(ptr noundef nonnull align 8 dereferenceable(96) %47, ptr noundef nonnull align 8 dereferenceable(96) %48)
          to label %308 unwind label %322

308:                                              ; preds = %306
  br i1 %307, label %326, label %309

309:                                              ; preds = %308
  store i32 12, ptr %26, align 4
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %48) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %48) #8
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %47) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %399

310:                                              ; preds = %298
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %20, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %21, align 4
  br label %398

314:                                              ; preds = %301
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %20, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %21, align 4
  br label %397

318:                                              ; preds = %303
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %20, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %21, align 4
  br label %396

322:                                              ; preds = %390, %306
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %20, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %21, align 4
  br label %395

326:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEdeEv(ptr noundef nonnull align 8 dereferenceable(96) %47)
          to label %328 unwind label %359

328:                                              ; preds = %326
  %329 = load ptr, ptr %327, align 8, !tbaa !5
  store ptr %329, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %50) #8
  %330 = load ptr, ptr %49, align 8, !tbaa !5
  %331 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %330)
          to label %332 unwind label %363

332:                                              ; preds = %328
  store i16 %331, ptr %50, align 2, !tbaa !45
  %333 = load i16, ptr %50, align 2, !tbaa !45
  %334 = zext i16 %333 to i32
  %335 = icmp eq i32 %334, 18
  br i1 %335, label %336, label %389

336:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  %337 = load ptr, ptr %42, align 8, !tbaa !5
  %338 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %337)
          to label %339 unwind label %367

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

342:                                              ; preds = %339
  br label %348

343:                                              ; preds = %339
  %344 = load ptr, ptr %42, align 8, !tbaa !5
  %345 = load i64, ptr %43, align 8, !tbaa !41
  %346 = invoke noundef ptr @_ZNK11check_casts4impl17CheckCastAnalysis15get_type_demandEP13IRInstructionm(ptr noundef nonnull align 8 dereferenceable(104) %80, ptr noundef %344, i64 noundef %345)
          to label %347 unwind label %367

347:                                              ; preds = %343
  br label %348

348:                                              ; preds = %347, %342
  %349 = phi ptr [ null, %342 ], [ %346, %347 ]
  store ptr %349, ptr %51, align 8, !tbaa !5
  %350 = load ptr, ptr %51, align 8, !tbaa !5
  %351 = icmp eq ptr %350, null
  br i1 %351, label %356, label %352

352:                                              ; preds = %348
  %353 = load ptr, ptr %51, align 8, !tbaa !5
  %354 = invoke noundef zeroext i1 @_ZN4type9is_objectEPK7DexType(ptr noundef %353)
          to label %355 unwind label %367

355:                                              ; preds = %352
  br i1 %354, label %356, label %357

356:                                              ; preds = %355, %348
  br label %372

357:                                              ; preds = %355
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.21, ptr noundef @.str.9, i32 noundef 402, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %358 unwind label %367

358:                                              ; preds = %357
  unreachable

359:                                              ; preds = %326
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %20, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %21, align 4
  br label %394

363:                                              ; preds = %328
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %20, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %21, align 4
  br label %393

367:                                              ; preds = %381, %377, %372, %357, %352, %343, %336
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %20, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %393

371:                                              ; No predecessors!
  br label %372

372:                                              ; preds = %371, %356
  %373 = load ptr, ptr %51, align 8, !tbaa !5
  %374 = invoke noundef ptr @_ZN4type16java_lang_ObjectEv()
          to label %375 unwind label %367

375:                                              ; preds = %372
  %376 = icmp ne ptr %373, %374
  br i1 %376, label %377, label %388

377:                                              ; preds = %375
  %378 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 7
  %379 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %378) #8
  %380 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EEixERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %379, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %381 unwind label %367

381:                                              ; preds = %377
  %382 = invoke { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %380, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %383 unwind label %367

383:                                              ; preds = %381
  %384 = getelementptr inbounds { ptr, i8 }, ptr %52, i32 0, i32 0
  %385 = extractvalue { ptr, i8 } %382, 0
  store ptr %385, ptr %384, align 8
  %386 = getelementptr inbounds { ptr, i8 }, ptr %52, i32 0, i32 1
  %387 = extractvalue { ptr, i8 } %382, 1
  store i8 %387, ptr %386, align 8
  br label %388

388:                                              ; preds = %383, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %389

389:                                              ; preds = %388, %332
  call void @llvm.lifetime.end.p0(i64 2, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %390

390:                                              ; preds = %389
  %391 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEppEv(ptr noundef nonnull align 8 dereferenceable(96) %47)
          to label %392 unwind label %322

392:                                              ; preds = %390
  br label %306

393:                                              ; preds = %367, %363
  call void @llvm.lifetime.end.p0(i64 2, ptr %50) #8
  br label %394

394:                                              ; preds = %393, %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %395

395:                                              ; preds = %394, %322
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %48) #8
  br label %396

396:                                              ; preds = %395, %318
  call void @llvm.lifetime.end.p0(i64 96, ptr %48) #8
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %47) #8
  br label %397

397:                                              ; preds = %396, %314
  call void @llvm.lifetime.end.p0(i64 96, ptr %47) #8
  br label %398

398:                                              ; preds = %397, %310
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %403

399:                                              ; preds = %309
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %400

400:                                              ; preds = %399
  %401 = load i64, ptr %43, align 8, !tbaa !41
  %402 = add i64 %401, 1
  store i64 %402, ptr %43, align 8, !tbaa !41
  br label %256, !llvm.loop !47

403:                                              ; preds = %398, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %404

404:                                              ; preds = %403, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %405

405:                                              ; preds = %404, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %416

406:                                              ; preds = %262
  %407 = load ptr, ptr %42, align 8, !tbaa !5
  invoke void @_ZNK13reaching_defs25MoveAwareFixpointIterator19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIPS1_EEEENS4_17TopValueInterfaceISB_EEEEEE(ptr noundef nonnull align 8 dereferenceable(288) %28, ptr noundef %407, ptr noundef %36)
          to label %408 unwind label %412

408:                                              ; preds = %406
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %409

409:                                              ; preds = %408
  %410 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEppEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %411 unwind label %246

411:                                              ; preds = %409
  br label %234

412:                                              ; preds = %406
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %20, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %21, align 4
  br label %416

416:                                              ; preds = %412, %405
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %417

417:                                              ; preds = %416, %263
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %418

418:                                              ; preds = %417, %246
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  br label %419

419:                                              ; preds = %418, %242
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #8
  br label %420

420:                                              ; preds = %419, %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %430

421:                                              ; preds = %237
  store i32 0, ptr %26, align 4
  br label %422

422:                                              ; preds = %421, %218
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  %423 = load i32, ptr %26, align 4
  switch i32 %423, label %425 [
    i32 0, label %424
  ]

424:                                              ; preds = %422
  store i32 0, ptr %26, align 4
  br label %425

425:                                              ; preds = %424, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %426 = load i32, ptr %26, align 4
  switch i32 %426, label %687 [
    i32 0, label %427
    i32 6, label %428
  ]

427:                                              ; preds = %425
  br label %428

428:                                              ; preds = %427, %425
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %186

430:                                              ; preds = %420, %223
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  br label %431

431:                                              ; preds = %430, %219
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #8
  br label %432

432:                                              ; preds = %431, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %678

433:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %434 = getelementptr inbounds %"class.check_casts::impl::CheckCastAnalysis", ptr %80, i32 0, i32 7
  %435 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %434) #8
  %436 = invoke ptr @_Z17UnorderedIterableI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESG_EEbE4typeELb1EEDaRSG_(ptr noundef nonnull align 8 dereferenceable(56) %435)
          to label %437 unwind label %452

437:                                              ; preds = %433
  %438 = getelementptr inbounds %"class.UnorderedMap<IRInstruction *, UnorderedSet<DexType *>>::UnorderedIterable", ptr %54, i32 0, i32 0
  store ptr %436, ptr %438, align 8
  store ptr %54, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %439 = load ptr, ptr %53, align 8, !tbaa !5
  %440 = invoke ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %439)
          to label %441 unwind label %456

441:                                              ; preds = %437
  %442 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %55, i32 0, i32 0
  %443 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %442, i32 0, i32 0
  store ptr %440, ptr %443, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %444 = load ptr, ptr %53, align 8, !tbaa !5
  %445 = invoke ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %444)
          to label %446 unwind label %460

446:                                              ; preds = %441
  %447 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %56, i32 0, i32 0
  %448 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %447, i32 0, i32 0
  store ptr %445, ptr %448, align 8
  br label %449

449:                                              ; preds = %665, %446
  %450 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0EEESG_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br i1 %450, label %464, label %451

451:                                              ; preds = %449
  store i32 14, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %674

452:                                              ; preds = %433
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %20, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %21, align 4
  br label %673

456:                                              ; preds = %437
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %20, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %21, align 4
  br label %672

460:                                              ; preds = %441
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %20, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %21, align 4
  br label %671

464:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %465 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  store ptr %465, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %466 = load ptr, ptr %57, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.std::pair", ptr %466, i32 0, i32 1
  store ptr %467, ptr %58, align 8, !tbaa !5
  %468 = load ptr, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  store ptr null, ptr %59, align 8, !tbaa !5
  %469 = invoke noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %468, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %470 unwind label %483

470:                                              ; preds = %464
  %471 = icmp ne i64 %469, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br i1 %471, label %472, label %510

472:                                              ; preds = %470
  %473 = load ptr, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  %474 = invoke noundef i64 @"_Z18unordered_erase_ifI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_0TnNSt9enable_ifIXaasr3stdE12is_base_of_vI13UnorderedBaseIT_ES15_Entsr3stdE12is_base_of_vI16UnorderedBagBaseS15_EEbE4typeELb1EEmRS15_RKT0_"(ptr noundef nonnull align 8 dereferenceable(56) %473, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %475 unwind label %487

475:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  %476 = load ptr, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  store ptr null, ptr %61, align 8, !tbaa !5
  %477 = invoke noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %476, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %478 unwind label %491

478:                                              ; preds = %475
  %479 = icmp ne i64 %477, 0
  br i1 %479, label %480, label %481

480:                                              ; preds = %478
  br label %496

481:                                              ; preds = %478
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.22, ptr noundef @.str.9, i32 noundef 419, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %482 unwind label %491

482:                                              ; preds = %481
  unreachable

483:                                              ; preds = %464
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %20, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %670

487:                                              ; preds = %472
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %20, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %670

491:                                              ; preds = %481, %475
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %20, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %670

495:                                              ; No predecessors!
  br label %496

496:                                              ; preds = %495, %480
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  %497 = load ptr, ptr %58, align 8, !tbaa !5
  %498 = invoke noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %497)
          to label %499 unwind label %504

499:                                              ; preds = %496
  %500 = icmp eq i64 %498, 1
  br i1 %500, label %501, label %502

501:                                              ; preds = %499
  br label %509

502:                                              ; preds = %499
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.23, ptr noundef @.str.9, i32 noundef 420, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %503 unwind label %504

503:                                              ; preds = %502
  unreachable

504:                                              ; preds = %502, %496
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %20, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %21, align 4
  br label %670

508:                                              ; No predecessors!
  br label %509

509:                                              ; preds = %508, %501
  store i32 15, ptr %26, align 4
  br label %659

510:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 56, ptr %62) #8
  invoke void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %62)
          to label %511 unwind label %531

511:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 80, ptr %63) #8
  invoke void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %63)
          to label %512 unwind label %535

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  %513 = getelementptr inbounds %class.anon.192, ptr %64, i32 0, i32 0
  store ptr %63, ptr %513, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %514 = load ptr, ptr %58, align 8, !tbaa !5
  %515 = invoke ptr @_Z17UnorderedIterableI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESA_EEbE4typeELb1EEDaRSA_(ptr noundef nonnull align 8 dereferenceable(56) %514)
          to label %516 unwind label %539

516:                                              ; preds = %512
  %517 = getelementptr inbounds %"class.UnorderedSet<DexType *>::UnorderedIterable", ptr %66, i32 0, i32 0
  store ptr %515, ptr %517, align 8
  store ptr %66, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %518 = load ptr, ptr %65, align 8, !tbaa !5
  %519 = invoke ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %518)
          to label %520 unwind label %543

520:                                              ; preds = %516
  %521 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.45", ptr %67, i32 0, i32 0
  %522 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.46", ptr %521, i32 0, i32 0
  store ptr %519, ptr %522, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %523 = load ptr, ptr %65, align 8, !tbaa !5
  %524 = invoke ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %523)
          to label %525 unwind label %547

525:                                              ; preds = %520
  %526 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.45", ptr %68, i32 0, i32 0
  %527 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.46", ptr %526, i32 0, i32 0
  store ptr %524, ptr %527, align 8
  br label %528

528:                                              ; preds = %556, %525
  %529 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br i1 %529, label %551, label %530

530:                                              ; preds = %528
  store i32 16, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  br label %565

531:                                              ; preds = %510
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %20, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %21, align 4
  br label %669

535:                                              ; preds = %511
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %20, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %21, align 4
  br label %668

539:                                              ; preds = %512
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %20, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %21, align 4
  br label %564

543:                                              ; preds = %516
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %20, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %21, align 4
  br label %563

547:                                              ; preds = %520
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %20, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %21, align 4
  br label %562

551:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %552 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  %553 = load ptr, ptr %552, align 8, !tbaa !5
  store ptr %553, ptr %69, align 8, !tbaa !5
  %554 = load ptr, ptr %69, align 8, !tbaa !5
  invoke void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %554)
          to label %555 unwind label %558

555:                                              ; preds = %551
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %556

556:                                              ; preds = %555
  %557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  br label %528

558:                                              ; preds = %551
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %20, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %562

562:                                              ; preds = %558, %547
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %563

563:                                              ; preds = %562, %543
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %564

564:                                              ; preds = %563, %539
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  br label %667

565:                                              ; preds = %530
  br label %566

566:                                              ; preds = %595, %565
  %567 = invoke noundef zeroext i1 @_ZNKSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(80) %63)
          to label %568 unwind label %583

568:                                              ; preds = %566
  %569 = xor i1 %567, true
  br i1 %569, label %570, label %597

570:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %63)
          to label %572 unwind label %587

572:                                              ; preds = %570
  %573 = load ptr, ptr %571, align 8, !tbaa !5
  store ptr %573, ptr %70, align 8, !tbaa !5
  invoke void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE3popEv(ptr noundef nonnull align 8 dereferenceable(80) %63)
          to label %574 unwind label %587

574:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #8
  %575 = invoke { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %62, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %576 unwind label %591

576:                                              ; preds = %574
  store { ptr, i8 } %575, ptr %72, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %71, ptr align 8 %72, i64 9, i1 false)
  %577 = getelementptr inbounds %"struct.std::pair.186", ptr %71, i32 0, i32 1
  %578 = load i8, ptr %577, align 8, !tbaa !48, !range !29, !noundef !30
  %579 = trunc i8 %578 to i1
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #8
  br i1 %579, label %580, label %595

580:                                              ; preds = %576
  %581 = load ptr, ptr %70, align 8, !tbaa !5
  invoke void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %581)
          to label %582 unwind label %587

582:                                              ; preds = %580
  br label %595

583:                                              ; preds = %566
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %20, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %21, align 4
  br label %667

587:                                              ; preds = %580, %572, %570
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %20, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %21, align 4
  br label %596

591:                                              ; preds = %574
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %20, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #8
  br label %596

595:                                              ; preds = %582, %576
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %566, !llvm.loop !53

596:                                              ; preds = %591, %587
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %667

597:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  %598 = invoke ptr @_Z17UnorderedIterableI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESA_EEbE4typeELb1EEDaRSA_(ptr noundef nonnull align 8 dereferenceable(56) %62)
          to label %599 unwind label %614

599:                                              ; preds = %597
  %600 = getelementptr inbounds %"class.UnorderedSet<DexType *>::UnorderedIterable", ptr %74, i32 0, i32 0
  store ptr %598, ptr %600, align 8
  store ptr %74, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  %601 = load ptr, ptr %73, align 8, !tbaa !5
  %602 = invoke ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %601)
          to label %603 unwind label %618

603:                                              ; preds = %599
  %604 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.45", ptr %75, i32 0, i32 0
  %605 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.46", ptr %604, i32 0, i32 0
  store ptr %602, ptr %605, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %606 = load ptr, ptr %73, align 8, !tbaa !5
  %607 = invoke ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %606)
          to label %608 unwind label %622

608:                                              ; preds = %603
  %609 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.45", ptr %76, i32 0, i32 0
  %610 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.46", ptr %609, i32 0, i32 0
  store ptr %607, ptr %610, align 8
  br label %611

611:                                              ; preds = %653, %608
  %612 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br i1 %612, label %626, label %613

613:                                              ; preds = %611
  store i32 20, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %658

614:                                              ; preds = %597
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %20, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %21, align 4
  br label %657

618:                                              ; preds = %599
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %20, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %21, align 4
  br label %656

622:                                              ; preds = %603
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %20, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %21, align 4
  br label %655

626:                                              ; preds = %611
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %627 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  store ptr %628, ptr %77, align 8, !tbaa !5
  %629 = load ptr, ptr %58, align 8, !tbaa !5
  %630 = invoke noundef i64 @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5eraseERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %629, ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %631 unwind label %646

631:                                              ; preds = %626
  %632 = icmp ne i64 %630, 0
  br i1 %632, label %633, label %652

633:                                              ; preds = %631
  %634 = load ptr, ptr %58, align 8, !tbaa !5
  %635 = getelementptr inbounds %class.anon.193, ptr %78, i32 0, i32 0
  store ptr %62, ptr %635, align 8, !tbaa !5
  %636 = getelementptr inbounds %class.anon.193, ptr %78, i32 0, i32 1
  store ptr %77, ptr %636, align 8, !tbaa !5
  %637 = getelementptr inbounds { ptr, ptr }, ptr %78, i32 0, i32 0
  %638 = load ptr, ptr %637, align 8
  %639 = getelementptr inbounds { ptr, ptr }, ptr %78, i32 0, i32 1
  %640 = load ptr, ptr %639, align 8
  %641 = invoke noundef zeroext i1 @"_Z16unordered_any_ofI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_2EbRKT_T0_"(ptr noundef nonnull align 8 dereferenceable(56) %634, ptr %638, ptr %640)
          to label %642 unwind label %646

642:                                              ; preds = %633
  br i1 %641, label %643, label %644

643:                                              ; preds = %642
  br label %651

644:                                              ; preds = %642
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.24, ptr noundef @.str.9, i32 noundef 455, ptr noundef @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef @.str.10) #9
          to label %645 unwind label %646

645:                                              ; preds = %644
  unreachable

646:                                              ; preds = %644, %633, %626
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %20, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %655

650:                                              ; No predecessors!
  br label %651

651:                                              ; preds = %650, %643
  br label %652

652:                                              ; preds = %651, %631
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %653

653:                                              ; preds = %652
  %654 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %611

655:                                              ; preds = %646, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %656

656:                                              ; preds = %655, %618
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %657

657:                                              ; preds = %656, %614
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %667

658:                                              ; preds = %613
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %63) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %63) #8
  call void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %62) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #8
  store i32 0, ptr %26, align 4
  br label %659

659:                                              ; preds = %658, %509
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  %660 = load i32, ptr %26, align 4
  switch i32 %660, label %662 [
    i32 0, label %661
  ]

661:                                              ; preds = %659
  store i32 0, ptr %26, align 4
  br label %662

662:                                              ; preds = %661, %659
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  %663 = load i32, ptr %26, align 4
  switch i32 %663, label %687 [
    i32 0, label %664
    i32 15, label %665
  ]

664:                                              ; preds = %662
  br label %665

665:                                              ; preds = %664, %662
  %666 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %449

667:                                              ; preds = %657, %596, %583, %564
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %63) #8
  br label %668

668:                                              ; preds = %667, %535
  call void @llvm.lifetime.end.p0(i64 80, ptr %63) #8
  call void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %62) #8
  br label %669

669:                                              ; preds = %668, %531
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #8
  br label %670

670:                                              ; preds = %669, %504, %491, %487, %483
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %671

671:                                              ; preds = %670, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %672

672:                                              ; preds = %671, %456
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %673

673:                                              ; preds = %672, %452
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %678

674:                                              ; preds = %451
  call void @_ZN13reaching_defs25MoveAwareFixpointIteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %28) #8
  call void @llvm.lifetime.end.p0(i64 288, ptr %28) #8
  store i32 0, ptr %26, align 4
  br label %675

675:                                              ; preds = %674, %169, %163
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  %676 = load i32, ptr %26, align 4
  switch i32 %676, label %687 [
    i32 0, label %677
    i32 1, label %677
  ]

677:                                              ; preds = %675, %675
  ret void

678:                                              ; preds = %673, %432, %205
  call void @_ZN13reaching_defs25MoveAwareFixpointIteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %28) #8
  br label %679

679:                                              ; preds = %678, %193
  call void @llvm.lifetime.end.p0(i64 288, ptr %28) #8
  br label %680

680:                                              ; preds = %679, %189, %159, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %681

681:                                              ; preds = %680, %112
  call void @_ZNSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  call void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #8
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  br label %682

682:                                              ; preds = %681
  %683 = load ptr, ptr %20, align 8
  %684 = load i32, ptr %21, align 4
  %685 = insertvalue { ptr, i32 } poison, ptr %683, 0
  %686 = insertvalue { ptr, i32 } %685, i32 %684, 1
  resume { ptr, i32 } %686

687:                                              ; preds = %675, %662, %425
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cfg23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cfg23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr") align 8) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13reaching_defs25MoveAwareFixpointIteratorC2ERKN3cfg16ControlFlowGraphESt8functionIFbPK13IRInstructionEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEESt4hashIPNS1_5BlockEEE3runERKSE_(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

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

declare void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.169") align 8, ptr noundef nonnull align 8 dereferenceable(160)) #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSI_(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z19InstructionIterableIN3cfg5BlockEEN7ir_list23InstructionIterableImplILb0EEEPT_(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIterableImpl") align 8, ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

declare noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext) #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE3endEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

declare noundef zeroext i1 @_ZN4type9is_objectEPK7DexType(ptr noundef) #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK13reaching_defs25MoveAwareFixpointIterator19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIPS1_EEEENS4_17TopValueInterfaceISB_EEEEEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef, ptr noundef) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_Z17UnorderedIterableI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESG_EEbE4typeELb1EEDaRSG_(ptr noundef nonnull align 8 dereferenceable(56)) #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0EEESG_(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(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i64 @"_Z18unordered_erase_ifI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_0TnNSt9enable_ifIXaasr3stdE12is_base_of_vI13UnorderedBaseIT_ES15_Entsr3stdE12is_base_of_vI16UnorderedBagBaseS15_EEbE4typeELb1EEmRS15_RKT0_"(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(1)) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_Z17UnorderedIterableI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESA_EEbE4typeELb1EEDaRSA_(ptr noundef nonnull align 8 dereferenceable(56)) #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(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(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5eraseERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @"_Z16unordered_any_ofI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_2EbRKT_T0_"(ptr noundef nonnull align 8 dereferenceable(56), ptr, ptr) #1

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN11check_casts4impl17CheckCastAnalysisE", !6, i64 0, !6, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !13, i64 56, !19, i64 64, !23, i64 88, !6, i64 96}
!13 = !{!"_ZTSSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EE", !14, i64 0}
!14 = !{!"_ZTSSt15__uniq_ptr_dataI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_ELb1ELb1EE", !15, i64 0}
!15 = !{!"_ZTSSt15__uniq_ptr_implI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EE", !16, i64 0}
!16 = !{!"_ZTSSt5tupleIJP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEE", !17, i64 0}
!17 = !{!"_ZTSSt11_Tuple_implILm0EJP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEE", !18, i64 0}
!18 = !{!"_ZTSSt10_Head_baseILm0EP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EELb0EE", !6, i64 0}
!19 = !{!"_ZTSSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt15__uniq_ptr_dataIN14type_inference13TypeInferenceESt14default_deleteIS1_ELb1ELb1EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_implIN14type_inference13TypeInferenceESt14default_deleteIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt5tupleIJPN14type_inference13TypeInferenceESt14default_deleteIS1_EEE", !27, i64 0}
!27 = !{!"_ZTSSt11_Tuple_implILm0EJPN14type_inference13TypeInferenceESt14default_deleteIS1_EEE", !28, i64 0}
!28 = !{!"_ZTSSt10_Head_baseILm0EPN14type_inference13TypeInferenceELb0EE", !6, i64 0}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!12, !10, i64 16}
!32 = !{!12, !6, i64 24}
!33 = !{!12, !6, i64 32}
!34 = !{!12, !6, i64 40}
!35 = !{!12, !6, i64 48}
!36 = !{!7, !7, i64 0}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = !{!40, !10, i64 0}
!40 = !{!"_ZTSN11check_casts15CheckCastConfigE", !10, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"long", !7, i64 0}
!43 = !{!44, !44, i64 0}
!44 = !{!"int", !7, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"_ZTS8IROpcode", !7, i64 0}
!47 = distinct !{!47, !38}
!48 = !{!49, !10, i64 8}
!49 = !{!"_ZTSSt4pairIN12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EE13FixedIteratorEbE", !50, i64 0, !10, i64 8}
!50 = !{!"_ZTSN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE13FixedIteratorE", !51, i64 0}
!51 = !{!"_ZTSNSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEE", !52, i64 0}
!52 = !{!"_ZTSNSt8__detail19_Node_iterator_baseIP7DexTypeLb0EEE", !6, i64 0}
!53 = distinct !{!53, !38}


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

%"class.std::basic_string_view" = type { i64, ptr }
%"class.cfg::InstructionIterableImpl" = type { ptr }
%"class.cfg::InstructionIteratorImpl" = type { ptr, %"struct.std::_Rb_tree_const_iterator", %"class.ir_list::InstructionIteratorImpl" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.ir_list::InstructionIteratorImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.boost::intrusive::list_iterator" = type { %"struct.boost::intrusive::iiterator_members" }
%"struct.boost::intrusive::iiterator_members" = type { ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.3" }
%"struct.std::_Head_base.3" = type { ptr }
%"class.reaching_defs::MoveAwareFixpointIterator" = type { %"class.ir_analyzer::BaseIRAnalyzer", %"class.std::function" }
%"class.ir_analyzer::BaseIRAnalyzer" = type { %"class.sparta::MonotonicFixpointIterator" }
%"class.sparta::MonotonicFixpointIterator" = type { %"class.sparta::fp_impl::MonotonicFixpointIteratorBase", %"class.sparta::WeakPartialOrdering" }
%"class.sparta::fp_impl::MonotonicFixpointIteratorBase" = type { %"class.sparta::FixpointIterator", ptr, %"class.sparta::AbstractEnvironment", %"class.std::unordered_map.125", %"class.std::unordered_map.125" }
%"class.sparta::FixpointIterator" = type { ptr }
%"class.sparta::AbstractEnvironment" = type { %"class.sparta::AbstractDomainScaffolding" }
%"class.sparta::AbstractDomainScaffolding" = type { i32, %"class.sparta::environment_impl::MapValue" }
%"class.sparta::environment_impl::MapValue" = type { %"class.sparta::PatriciaTreeMap" }
%"class.sparta::PatriciaTreeMap" = type { %"class.sparta::pt_core::PatriciaTreeCore" }
%"class.sparta::pt_core::PatriciaTreeCore" = type { %"class.boost::intrusive_ptr" }
%"class.boost::intrusive_ptr" = type { ptr }
%"class.std::unordered_map.125" = type { %"class.std::_Hashtable.126" }
%"class.std::_Hashtable.126" = 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.sparta::WeakPartialOrdering" = type <{ %"class.std::vector.145", %"class.std::vector.150", %"class.std::unordered_map.155", i8, [7 x i8] }>
%"class.std::vector.145" = type { %"struct.std::_Vector_base.146" }
%"struct.std::_Vector_base.146" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.150" = type { %"struct.std::_Vector_base.151" }
%"struct.std::_Vector_base.151" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.155" = type { %"class.std::_Hashtable.156" }
%"class.std::_Hashtable.156" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.ir_list::InstructionIterableImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.182", %"class.std::stack", ptr }
%"class.boost::intrusive_ptr.182" = type { ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.UnorderedMap<IRInstruction *, UnorderedSet<DexType *>>::UnorderedIterable" = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%class.anon.188 = type { i8 }
%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.26" }
%"class.std::_Hashtable.26" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::queue" = type { %"class.std::deque.189" }
%"class.std::deque.189" = type { %"class.std::_Deque_base.190" }
%"class.std::_Deque_base.190" = type { %"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl" }
%"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl" = type { %"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<DexType *, std::allocator<DexType *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator.191", %"struct.std::_Deque_iterator.191" }
%"struct.std::_Deque_iterator.191" = type { ptr, ptr, ptr, ptr }
%class.anon.192 = type { ptr }
%"class.UnorderedSet<DexType *>::UnorderedIterable" = type { ptr }
%"struct.std::__detail::_Node_iterator.45" = type { %"struct.std::__detail::_Node_iterator_base.46" }
%"struct.std::__detail::_Node_iterator_base.46" = type { ptr }

@.str.9 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [28 x i8], align 1
@__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE = external hidden unnamed_addr constant [200 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [133 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK11check_casts4impl17CheckCastAnalysis15get_type_demandEP13IRInstructionm(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef, i64 noundef) local_unnamed_addr #1 align 2

declare noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #3

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

declare noundef ptr @_ZN4type16java_lang_ObjectEv() local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN7DexType9make_typeESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr nocapture noundef nonnull readonly align 1 dereferenceable(1) %1, ptr noundef nonnull align 8 dereferenceable(160) %2, i1 noundef zeroext %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(88) %8) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"class.std::basic_string_view", align 8
  %11 = alloca %"class.cfg::InstructionIterableImpl", align 8
  %12 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %13 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %14 = alloca %"class.std::unique_ptr", align 8
  %15 = alloca %"class.reaching_defs::MoveAwareFixpointIterator", align 8
  %16 = alloca %"class.std::function", align 8
  %17 = alloca %"class.sparta::AbstractEnvironment", align 8
  %18 = alloca %"class.std::vector.169", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.sparta::AbstractEnvironment", align 8
  %23 = alloca %"class.ir_list::InstructionIterableImpl", align 8
  %24 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %25 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %26 = alloca i32, align 4
  %27 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %28 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.UnorderedMap<IRInstruction *, UnorderedSet<DexType *>>::UnorderedIterable", align 8
  %32 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %33 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %class.anon.188, align 1
  %36 = alloca ptr, align 8
  %37 = alloca %class.UnorderedSet, align 8
  %38 = alloca %"class.std::queue", align 8
  %39 = alloca %class.anon.192, align 8
  %40 = alloca %"class.UnorderedSet<DexType *>::UnorderedIterable", align 8
  %41 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %42 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.UnorderedSet<DexType *>::UnorderedIterable", align 8
  %45 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %46 = alloca %"struct.std::__detail::_Node_iterator.45", align 8
  %47 = alloca ptr, align 8
  %48 = zext i1 %3 to i8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef @.str.18) #7
  %49 = load i64, ptr %10, align 8
  %50 = getelementptr inbounds i8, ptr %10, i64 8
  %51 = load ptr, ptr %50, align 8
  %52 = call noundef ptr @_ZN7DexType9make_typeESt17basic_string_viewIcSt11char_traitsIcEE(i64 %49, ptr %51)
  store ptr %52, ptr %0, align 8, !tbaa !5
  %53 = getelementptr inbounds i8, ptr %0, i64 8
  store ptr %2, ptr %53, align 8, !tbaa !27
  %54 = getelementptr inbounds i8, ptr %0, i64 16
  store i8 %48, ptr %54, align 8, !tbaa !28
  %55 = getelementptr inbounds i8, ptr %0, i64 24
  store ptr %4, ptr %55, align 8, !tbaa !29
  %56 = getelementptr inbounds i8, ptr %0, i64 32
  store ptr %5, ptr %56, align 8, !tbaa !30
  %57 = getelementptr inbounds i8, ptr %0, i64 40
  store ptr %6, ptr %57, align 8, !tbaa !31
  %58 = getelementptr inbounds i8, ptr %0, i64 48
  store ptr %7, ptr %58, align 8, !tbaa !32
  %59 = getelementptr inbounds i8, ptr %0, i64 56
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEC2ISF_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  %60 = getelementptr inbounds i8, ptr %0, i64 64
  call void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  %61 = getelementptr inbounds i8, ptr %0, i64 88
  call void @_ZNSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  %62 = getelementptr inbounds i8, ptr %0, i64 96
  store ptr %8, ptr %62, align 8, !tbaa !27
  %63 = load ptr, ptr %0, align 8, !tbaa !5
  %.not = icmp eq ptr %63, null
  br i1 %.not, label %64, label %68

64:                                               ; preds = %9
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.9, i32 noundef 363, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %65 unwind label %66

65:                                               ; preds = %64
  unreachable

66:                                               ; preds = %64
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %317

68:                                               ; preds = %9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  call void @_ZN3cfg23InstructionIterableImplILb0EEC2ERNS_16ControlFlowGraphE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(160) %2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  invoke void @_ZN3cfg23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %12, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %.preheader150 unwind label %.loopexit.split-lp152

.preheader150:                                    ; preds = %68, %86
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  invoke void @_ZN3cfg23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %13, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %69 unwind label %74

69:                                               ; preds = %.preheader150
  %70 = invoke noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEneERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %71 unwind label %74

71:                                               ; preds = %69
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br i1 %70, label %76, label %72

72:                                               ; preds = %71
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  %73 = call noundef zeroext i1 @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  br i1 %73, label %313, label %89

.loopexit151:                                     ; preds = %86
  %lpad.loopexit153 = landingpad { ptr, i32 }
          cleanup
  br label %88

.loopexit.split-lp152:                            ; preds = %68
  %lpad.loopexit.split-lp154 = landingpad { ptr, i32 }
          cleanup
  br label %88

74:                                               ; preds = %69, %.preheader150
  %75 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %88

76:                                               ; preds = %71
  %77 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %78 unwind label %84

78:                                               ; preds = %76
  %79 = getelementptr inbounds i8, ptr %77, i64 24
  %80 = load ptr, ptr %79, align 8, !tbaa !33
  %81 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %80)
  %82 = icmp eq i16 %81, 18
  br i1 %82, label %83, label %86

83:                                               ; preds = %78
  invoke void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %86 unwind label %84

84:                                               ; preds = %83, %76
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %88

86:                                               ; preds = %83, %78
  %87 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3cfg23InstructionIteratorImplILb0EEppEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %.preheader150 unwind label %.loopexit151, !llvm.loop !34

88:                                               ; preds = %.loopexit151, %.loopexit.split-lp152, %84, %74
  %.pn125 = phi { ptr, i32 } [ %85, %84 ], [ %75, %74 ], [ %lpad.loopexit153, %.loopexit151 ], [ %lpad.loopexit.split-lp154, %.loopexit.split-lp152 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %316

89:                                               ; preds = %72
  %90 = load i8, ptr %1, align 1, !tbaa !36, !range !38, !noundef !39
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %313

92:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  invoke void @_ZSt11make_uniqueI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr") align 8 %14)
          to label %93 unwind label %104

93:                                               ; preds = %92
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEaSEOSG_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 288, ptr nonnull %15) #7
  call void @_ZNSt8functionIFbPK13IRInstructionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr null) #7
  invoke void @_ZN13reaching_defs25MoveAwareFixpointIteratorC2ERKN3cfg16ControlFlowGraphESt8functionIFbPK13IRInstructionEE(ptr noundef nonnull align 8 dereferenceable(288) %15, ptr noundef nonnull align 8 dereferenceable(160) %2, ptr noundef nonnull %16)
          to label %95 unwind label %106

95:                                               ; preds = %93
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #7
  invoke void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %96 unwind label %108

96:                                               ; preds = %95
  invoke void @_ZN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEESt4hashIPNS1_5BlockEEE3runERKSE_(ptr noundef nonnull align 8 dereferenceable(256) %15, ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %97 unwind label %110

97:                                               ; preds = %96
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #7
  invoke void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.169") align 8 %18, ptr noundef nonnull align 8 dereferenceable(160) %2)
          to label %98 unwind label %113

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %99 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  store ptr %99, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %100 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  store ptr %100, ptr %20, align 8
  %101 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br i1 %101, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %221, %98
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  %102 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  %103 = invoke ptr @_Z17UnorderedIterableI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESG_EEbE4typeELb1EEDaRSG_(ptr noundef nonnull align 8 dereferenceable(56) %102)
          to label %225 unwind label %229

104:                                              ; preds = %92
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %316

106:                                              ; preds = %93
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %315

108:                                              ; preds = %95
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %112

110:                                              ; preds = %96
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  br label %112

112:                                              ; preds = %110, %108
  %.pn = phi { ptr, i32 } [ %111, %110 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #7
  br label %314

113:                                              ; preds = %97
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %314

.lr.ph:                                           ; preds = %98, %221
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  %116 = load ptr, ptr %115, align 8, !tbaa !27
  store ptr %116, ptr %21, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #7
  %117 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSI_(ptr noundef nonnull align 8 dereferenceable(144) %15, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %118 unwind label %121

118:                                              ; preds = %.lr.ph
  invoke void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %117)
          to label %119 unwind label %121

119:                                              ; preds = %118
  %120 = call noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS9_EEEEEENS_19AbstractEnvironmentISC_EEE9is_bottomEv(ptr noundef nonnull align 8 dereferenceable(16) %22)
  br i1 %120, label %221, label %123

121:                                              ; preds = %118, %.lr.ph
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %224

123:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #7
  %124 = load ptr, ptr %21, align 8, !tbaa !27
  invoke void @_Z19InstructionIterableIN3cfg5BlockEEN7ir_list23InstructionIterableImplILb0EEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIterableImpl") align 8 %23, ptr noundef %124)
          to label %125 unwind label %129

125:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #7
  invoke void @_ZNK7ir_list23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %24, ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %126 unwind label %131

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #7
  invoke void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %25, ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %.preheader144 unwind label %.loopexit.split-lp146

.preheader144:                                    ; preds = %126, %214
  %127 = call noundef zeroext i1 @_ZNK7ir_list23InstructionIteratorImplILb0EEneERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %25)
  br i1 %127, label %133, label %128

128:                                              ; preds = %.preheader144
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  br label %221

129:                                              ; preds = %123
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %220

131:                                              ; preds = %125
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %219

.loopexit145:                                     ; preds = %214
  %lpad.loopexit147 = landingpad { ptr, i32 }
          cleanup
  br label %218

.loopexit.split-lp146:                            ; preds = %126
  %lpad.loopexit.split-lp148 = landingpad { ptr, i32 }
          cleanup
  br label %218

133:                                              ; preds = %.preheader144
  %134 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %135 unwind label %143

135:                                              ; preds = %133
  %136 = getelementptr inbounds i8, ptr %134, i64 24
  %137 = load ptr, ptr %136, align 8, !tbaa !33
  br label %138

138:                                              ; preds = %166, %135
  %.087 = phi i64 [ 0, %135 ], [ %167, %166 ]
  %139 = invoke noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %140 unwind label %145

140:                                              ; preds = %138
  %141 = icmp ult i64 %.087, %139
  br i1 %141, label %147, label %142

142:                                              ; preds = %140
  invoke void @_ZNK13reaching_defs25MoveAwareFixpointIterator19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIPS1_EEEENS4_17TopValueInterfaceISB_EEEEEE(ptr noundef nonnull align 8 dereferenceable(288) %15, ptr noundef nonnull %137, ptr noundef nonnull %22)
          to label %214 unwind label %216

143:                                              ; preds = %133
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %218

145:                                              ; preds = %138
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %218

147:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  %148 = trunc i64 %.087 to i16
  %149 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %137, i16 noundef zeroext %148)
          to label %150 unwind label %158

150:                                              ; preds = %147
  store i32 %149, ptr %26, align 4, !tbaa !40
  %151 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %152 unwind label %.loopexit139

152:                                              ; preds = %150
  %153 = call noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17SetAbstractDomainIS6_EEE9is_bottomEv(ptr noundef nonnull align 8 dereferenceable(16) %151)
  br i1 %153, label %156, label %154

154:                                              ; preds = %152
  %155 = call noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17SetAbstractDomainIS6_EEE6is_topEv(ptr noundef nonnull align 8 dereferenceable(16) %151)
  br i1 %155, label %156, label %160

156:                                              ; preds = %154, %152
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.9, i32 noundef 392, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %157 unwind label %.loopexit.split-lp140

157:                                              ; preds = %156
  unreachable

158:                                              ; preds = %147
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %213

.loopexit139:                                     ; preds = %150
  %lpad.loopexit141 = landingpad { ptr, i32 }
          cleanup
  br label %213

.loopexit.split-lp140:                            ; preds = %156
  %lpad.loopexit.split-lp142 = landingpad { ptr, i32 }
          cleanup
  br label %213

160:                                              ; preds = %154
  %161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIP13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS2_EEEERKS6_NS_17SetAbstractDomainIS6_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %151)
          to label %162 unwind label %168

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %27) #7
  invoke void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %163 unwind label %170

163:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %28) #7
  invoke void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %28, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %.preheader unwind label %172

.preheader:                                       ; preds = %163, %207
  %164 = invoke noundef zeroext i1 @_ZNK6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEneERKS5_(ptr noundef nonnull align 8 dereferenceable(96) %27, ptr noundef nonnull align 8 dereferenceable(96) %28)
          to label %165 unwind label %174

165:                                              ; preds = %.preheader
  br i1 %164, label %176, label %166

166:                                              ; preds = %165
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  %167 = add nuw i64 %.087, 1
  br label %138, !llvm.loop !42

168:                                              ; preds = %160
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %213

170:                                              ; preds = %162
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %212

172:                                              ; preds = %163
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %211

174:                                              ; preds = %207, %.preheader
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %210

176:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEdeEv(ptr noundef nonnull align 8 dereferenceable(96) %27)
          to label %178 unwind label %194

178:                                              ; preds = %176
  %179 = load ptr, ptr %177, align 8, !tbaa !27
  store ptr %179, ptr %29, align 8, !tbaa !27
  %180 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %179)
  %181 = icmp eq i16 %180, 18
  br i1 %181, label %182, label %207

182:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  %183 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %137)
  %184 = icmp eq i16 %183, 18
  br i1 %184, label %.thread, label %185

.thread:                                          ; preds = %182
  store ptr null, ptr %30, align 8, !tbaa !27
  br label %197

185:                                              ; preds = %182
  %186 = invoke noundef ptr @_ZNK11check_casts4impl17CheckCastAnalysis15get_type_demandEP13IRInstructionm(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull %137, i64 noundef %.087)
          to label %187 unwind label %.loopexit134

187:                                              ; preds = %185
  store ptr %186, ptr %30, align 8, !tbaa !27
  %188 = icmp eq ptr %186, null
  br i1 %188, label %197, label %189

189:                                              ; preds = %187
  %190 = invoke noundef zeroext i1 @_ZN4type9is_objectEPK7DexType(ptr noundef nonnull %186)
          to label %191 unwind label %.loopexit134

191:                                              ; preds = %189
  br i1 %190, label %._crit_edge168, label %192

._crit_edge168:                                   ; preds = %191
  %.pre = load ptr, ptr %30, align 8, !tbaa !27
  br label %197

192:                                              ; preds = %191
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.9, i32 noundef 402, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %193 unwind label %.loopexit.split-lp135

193:                                              ; preds = %192
  unreachable

194:                                              ; preds = %176
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %209

.loopexit134:                                     ; preds = %185, %189, %197, %201, %204
  %lpad.loopexit136 = landingpad { ptr, i32 }
          cleanup
  br label %196

.loopexit.split-lp135:                            ; preds = %192
  %lpad.loopexit.split-lp137 = landingpad { ptr, i32 }
          cleanup
  br label %196

196:                                              ; preds = %.loopexit.split-lp135, %.loopexit134
  %lpad.phi138 = phi { ptr, i32 } [ %lpad.loopexit136, %.loopexit134 ], [ %lpad.loopexit.split-lp137, %.loopexit.split-lp135 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  br label %209

197:                                              ; preds = %._crit_edge168, %.thread, %187
  %198 = phi ptr [ %.pre, %._crit_edge168 ], [ null, %.thread ], [ null, %187 ]
  %199 = invoke noundef ptr @_ZN4type16java_lang_ObjectEv()
          to label %200 unwind label %.loopexit134

200:                                              ; preds = %197
  %.not104 = icmp eq ptr %198, %199
  br i1 %.not104, label %206, label %201

201:                                              ; preds = %200
  %202 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  %203 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EEixERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %202, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %204 unwind label %.loopexit134

204:                                              ; preds = %201
  %205 = invoke { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %203, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %206 unwind label %.loopexit134

206:                                              ; preds = %204, %200
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  br label %207

207:                                              ; preds = %206, %178
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  %208 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEppEv(ptr noundef nonnull align 8 dereferenceable(96) %27)
          to label %.preheader unwind label %174

209:                                              ; preds = %196, %194
  %.pn105 = phi { ptr, i32 } [ %lpad.phi138, %196 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %210

210:                                              ; preds = %209, %174
  %.pn107 = phi { ptr, i32 } [ %175, %174 ], [ %.pn105, %209 ]
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #7
  br label %211

211:                                              ; preds = %210, %172
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %210 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  br label %212

212:                                              ; preds = %211, %170
  %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %211 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  br label %213

213:                                              ; preds = %.loopexit139, %.loopexit.split-lp140, %212, %168, %158
  %.pn112.pn = phi { ptr, i32 } [ %159, %158 ], [ %.pn107.pn.pn, %212 ], [ %169, %168 ], [ %lpad.loopexit141, %.loopexit139 ], [ %lpad.loopexit.split-lp142, %.loopexit.split-lp140 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %218

214:                                              ; preds = %142
  %215 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEppEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %.preheader144 unwind label %.loopexit145

216:                                              ; preds = %142
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %218

218:                                              ; preds = %.loopexit145, %.loopexit.split-lp146, %143, %145, %213, %216
  %.pn112.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %144, %143 ], [ %217, %216 ], [ %.pn112.pn, %213 ], [ %146, %145 ], [ %lpad.loopexit147, %.loopexit145 ], [ %lpad.loopexit.split-lp148, %.loopexit.split-lp146 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #7
  br label %219

219:                                              ; preds = %218, %131
  %.pn112.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn.pn, %218 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  br label %220

220:                                              ; preds = %219, %129
  %.pn112.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn.pn.pn, %219 ], [ %130, %129 ]
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br label %224

221:                                              ; preds = %119, %128
  call void @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  %223 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br i1 %223, label %.lr.ph, label %._crit_edge

224:                                              ; preds = %220, %121
  %.pn112.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn.pn.pn.pn, %220 ], [ %122, %121 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  br label %314

225:                                              ; preds = %._crit_edge
  store ptr %103, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  %226 = call ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
  store ptr %226, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  %227 = call ptr @_ZN12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS4_ESt8equal_toIS4_EES5_IS1_ES7_IS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
  store ptr %227, ptr %33, align 8
  %228 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0EEESG_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #7
  br i1 %228, label %.lr.ph166, label %._crit_edge167

._crit_edge167:                                   ; preds = %307, %225
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @_ZN13reaching_defs25MoveAwareFixpointIteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %15) #7
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %15) #7
  br label %313

229:                                              ; preds = %._crit_edge
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %314

.lr.ph166:                                        ; preds = %225, %307
  %231 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  %232 = getelementptr inbounds i8, ptr %231, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #7
  store ptr null, ptr %34, align 8, !tbaa !27
  %233 = invoke noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %232, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %234 unwind label %242

234:                                              ; preds = %.lr.ph166
  %.not90 = icmp eq i64 %233, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  br i1 %.not90, label %254, label %235

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #7
  %236 = invoke noundef i64 @"_Z18unordered_erase_ifI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_0TnNSt9enable_ifIXaasr3stdE12is_base_of_vI13UnorderedBaseIT_ES15_Entsr3stdE12is_base_of_vI16UnorderedBagBaseS15_EEbE4typeELb1EEmRS15_RKT0_"(ptr noundef nonnull align 8 dereferenceable(56) %232, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %237 unwind label %244

237:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  store ptr null, ptr %36, align 8, !tbaa !27
  %238 = invoke noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %232, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %239 unwind label %.loopexit129

239:                                              ; preds = %237
  %.not100 = icmp eq i64 %238, 0
  br i1 %.not100, label %240, label %247

240:                                              ; preds = %239
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.9, i32 noundef 419, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %241 unwind label %.loopexit.split-lp130

241:                                              ; preds = %240
  unreachable

242:                                              ; preds = %.lr.ph166
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  br label %312

244:                                              ; preds = %235
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #7
  br label %312

.loopexit129:                                     ; preds = %237
  %lpad.loopexit131 = landingpad { ptr, i32 }
          cleanup
  br label %246

.loopexit.split-lp130:                            ; preds = %240
  %lpad.loopexit.split-lp132 = landingpad { ptr, i32 }
          cleanup
  br label %246

246:                                              ; preds = %.loopexit.split-lp130, %.loopexit129
  %lpad.phi133 = phi { ptr, i32 } [ %lpad.loopexit131, %.loopexit129 ], [ %lpad.loopexit.split-lp132, %.loopexit.split-lp130 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  br label %312

247:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  %248 = call noundef i64 @_ZNK12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %232)
  %249 = icmp eq i64 %248, 1
  br i1 %249, label %307, label %250

250:                                              ; preds = %247
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.9, i32 noundef 420, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %251 unwind label %252

251:                                              ; preds = %250
  unreachable

252:                                              ; preds = %250
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %312

254:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %37) #7
  call void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %38) #7
  invoke void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %38)
          to label %255 unwind label %262

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  store ptr %38, ptr %39, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  %256 = invoke ptr @_Z17UnorderedIterableI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESA_EEbE4typeELb1EEDaRSA_(ptr noundef nonnull align 8 dereferenceable(56) %232)
          to label %257 unwind label %264

257:                                              ; preds = %255
  store ptr %256, ptr %40, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  %258 = call ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  store ptr %258, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  %259 = call ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  store ptr %259, ptr %42, align 8
  %260 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #7
  br i1 %260, label %.lr.ph157, label %._crit_edge158

._crit_edge158:                                   ; preds = %268, %257
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  %261 = call noundef zeroext i1 @_ZNKSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(80) %38)
  br i1 %261, label %._crit_edge161, label %.lr.ph160

262:                                              ; preds = %254
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %311

264:                                              ; preds = %255
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %310

.lr.ph157:                                        ; preds = %257, %268
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  %267 = load ptr, ptr %266, align 8, !tbaa !27
  invoke void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef %267)
          to label %268 unwind label %271

268:                                              ; preds = %.lr.ph157
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  %270 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #7
  br i1 %270, label %.lr.ph157, label %._crit_edge158

271:                                              ; preds = %.lr.ph157
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  br label %310

.lr.ph160:                                        ; preds = %._crit_edge158, %284
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %38)
  %274 = load ptr, ptr %273, align 8, !tbaa !27
  store ptr %274, ptr %43, align 8, !tbaa !27
  call void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE3popEv(ptr noundef nonnull align 8 dereferenceable(80) %38)
  %275 = invoke { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %37, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %276 unwind label %282

276:                                              ; preds = %.lr.ph160
  %.fca.1.extract = extractvalue { ptr, i8 } %275, 1
  %277 = trunc i8 %.fca.1.extract to i1
  br i1 %277, label %278, label %284

278:                                              ; preds = %276
  %279 = load ptr, ptr %43, align 8, !tbaa !27
  invoke void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef %279)
          to label %284 unwind label %280

280:                                              ; preds = %278
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %286

282:                                              ; preds = %.lr.ph160
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %278, %276
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  %285 = call noundef zeroext i1 @_ZNKSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(80) %38)
  br i1 %285, label %._crit_edge161, label %.lr.ph160, !llvm.loop !43

286:                                              ; preds = %282, %280
  %.pn94 = phi { ptr, i32 } [ %281, %280 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  br label %310

._crit_edge161:                                   ; preds = %284, %._crit_edge158
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  %287 = invoke ptr @_Z17UnorderedIterableI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESA_EEbE4typeELb1EEDaRSA_(ptr noundef nonnull align 8 dereferenceable(56) %37)
          to label %288 unwind label %292

288:                                              ; preds = %._crit_edge161
  store ptr %287, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  %289 = call ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  store ptr %289, ptr %45, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  %290 = call ptr @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  store ptr %290, ptr %46, align 8
  %291 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  br i1 %291, label %.lr.ph163, label %._crit_edge164

._crit_edge164:                                   ; preds = %304, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %38) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #7
  call void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %37) #7
  br label %307

292:                                              ; preds = %._crit_edge161
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %310

.lr.ph163:                                        ; preds = %288, %304
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  %295 = load ptr, ptr %294, align 8, !tbaa !27
  store ptr %295, ptr %47, align 8, !tbaa !27
  %296 = invoke noundef i64 @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5eraseERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %232, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %297 unwind label %.loopexit

297:                                              ; preds = %.lr.ph163
  %.not91 = icmp eq i64 %296, 0
  br i1 %.not91, label %304, label %298

298:                                              ; preds = %297
  %299 = invoke noundef zeroext i1 @"_Z16unordered_any_ofI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_2EbRKT_T0_"(ptr noundef nonnull align 8 dereferenceable(56) %232, ptr nonnull %37, ptr nonnull %47)
          to label %300 unwind label %.loopexit

300:                                              ; preds = %298
  br i1 %299, label %304, label %301

301:                                              ; preds = %300
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.9, i32 noundef 455, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11check_casts4impl17CheckCastAnalysisC2ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKE, i32 noundef 2, ptr noundef nonnull @.str.10) #8
          to label %302 unwind label %.loopexit.split-lp

302:                                              ; preds = %301
  unreachable

.loopexit:                                        ; preds = %.lr.ph163, %298
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %303

.loopexit.split-lp:                               ; preds = %301
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %303

303:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  br label %310

304:                                              ; preds = %300, %297
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  %306 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  br i1 %306, label %.lr.ph163, label %._crit_edge164

307:                                              ; preds = %247, %._crit_edge164
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  %309 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0EEESG_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #7
  br i1 %309, label %.lr.ph166, label %._crit_edge167

310:                                              ; preds = %292, %303, %264, %271, %286
  %.pn96.pn = phi { ptr, i32 } [ %.pn94, %286 ], [ %272, %271 ], [ %265, %264 ], [ %lpad.phi, %303 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %38) #7
  br label %311

311:                                              ; preds = %310, %262
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %310 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #7
  call void @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %37) #7
  br label %312

312:                                              ; preds = %311, %252, %246, %244, %242
  %.pn101 = phi { ptr, i32 } [ %253, %252 ], [ %lpad.phi133, %246 ], [ %245, %244 ], [ %.pn96.pn.pn, %311 ], [ %243, %242 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  br label %314

313:                                              ; preds = %89, %72, %._crit_edge167
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  ret void

314:                                              ; preds = %229, %312, %113, %224, %112
  %.pn112.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn, %112 ], [ %.pn112.pn.pn.pn.pn.pn.pn.pn.pn, %224 ], [ %114, %113 ], [ %.pn101, %312 ], [ %230, %229 ]
  call void @_ZN13reaching_defs25MoveAwareFixpointIteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %15) #7
  br label %315

315:                                              ; preds = %314, %106
  %.pn112.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %314 ], [ %107, %106 ]
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %15) #7
  br label %316

316:                                              ; preds = %315, %104, %88
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %88 ], [ %.pn112.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %315 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %317

317:                                              ; preds = %316, %66
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %316 ], [ %67, %66 ]
  call void @_ZNSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  call void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  call void @_ZNSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  resume { ptr, i32 } %.pn125.pn.pn
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cfg23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEneERKS1_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cfg23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr") align 8) local_unnamed_addr #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13reaching_defs25MoveAwareFixpointIteratorC2ERKN3cfg16ControlFlowGraphESt8functionIFbPK13IRInstructionEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEESt4hashIPNS1_5BlockEEE3runERKSE_(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

declare void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.169") align 8, ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIP13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSI_(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z19InstructionIterableIN3cfg5BlockEEN7ir_list23InstructionIterableImplILb0EEEPT_(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIterableImpl") align 8, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

declare noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIP13IRInstructionE3endEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK6sparta7pt_core20PatriciaTreeIteratorIP13IRInstructionNS0_10EmptyValueEEneERKS5_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #1 align 2

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

declare noundef zeroext i1 @_ZN4type9is_objectEPK7DexType(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK13reaching_defs25MoveAwareFixpointIterator19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIPS1_EEEENS4_17TopValueInterfaceISB_EEEEEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef, ptr noundef) unnamed_addr #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0EEESG_(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(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS7_ESt8equal_toIS7_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i64 @"_Z18unordered_erase_ifI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_0TnNSt9enable_ifIXaasr3stdE12is_base_of_vI13UnorderedBaseIT_ES15_Entsr3stdE12is_base_of_vI16UnorderedBagBaseS15_EEbE4typeELb1EEmRS15_RKT0_"(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5queueIP7DexTypeSt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIP7DexTypeLb0EEES5_(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(8) ptr @_ZNKSt8__detail14_Node_iteratorIP7DexTypeLb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11check_casts4impl17CheckCastAnalysisC1ERKNS_15CheckCastConfigERN3cfg16ControlFlowGraphEbP7DexTypeP11DexTypeListS9_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISE_EESt4lessIiESaISt4pairIKiSH_EEERKN3api10AndroidSDKEENK3$_1clES9_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN12UnorderedSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_EE5eraseERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @"_Z16unordered_any_ofI12UnorderedSetIP7DexTypeSt4hashIS2_ESt8equal_toIS2_EEZN11check_casts4impl17CheckCastAnalysisC1ERKNS8_15CheckCastConfigERN3cfg16ControlFlowGraphEbS2_P11DexTypeListS2_PKSt3mapIiSt10unique_ptrI16DexAnnotationSetSt14default_deleteISL_EESt4lessIiESaISt4pairIKiSO_EEERKN3api10AndroidSDKEE3$_2EbRKT_T0_"(ptr noundef nonnull align 8 dereferenceable(56), ptr, ptr) local_unnamed_addr #1

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN11check_casts4impl17CheckCastAnalysisE", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !11, i64 56, !17, i64 64, !21, i64 88, !7, i64 96}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSSt10unique_ptrI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EE", !12, i64 0}
!12 = !{!"_ZTSSt15__uniq_ptr_dataI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_ELb1ELb1EE", !13, i64 0}
!13 = !{!"_ZTSSt15__uniq_ptr_implI12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EE", !14, i64 0}
!14 = !{!"_ZTSSt5tupleIJP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEE", !15, i64 0}
!15 = !{!"_ZTSSt11_Tuple_implILm0EJP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EESt14default_deleteISD_EEE", !16, i64 0}
!16 = !{!"_ZTSSt10_Head_baseILm0EP12UnorderedMapIP13IRInstruction12UnorderedSetIP7DexTypeSt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EELb0EE", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!21 = !{!"_ZTSSt10unique_ptrIN14type_inference13TypeInferenceESt14default_deleteIS1_EE", !22, i64 0}
!22 = !{!"_ZTSSt15__uniq_ptr_dataIN14type_inference13TypeInferenceESt14default_deleteIS1_ELb1ELb1EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_implIN14type_inference13TypeInferenceESt14default_deleteIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt5tupleIJPN14type_inference13TypeInferenceESt14default_deleteIS1_EEE", !25, i64 0}
!25 = !{!"_ZTSSt11_Tuple_implILm0EJPN14type_inference13TypeInferenceESt14default_deleteIS1_EEE", !26, i64 0}
!26 = !{!"_ZTSSt10_Head_baseILm0EPN14type_inference13TypeInferenceELb0EE", !7, i64 0}
!27 = !{!7, !7, i64 0}
!28 = !{!6, !10, i64 16}
!29 = !{!6, !7, i64 24}
!30 = !{!6, !7, i64 32}
!31 = !{!6, !7, i64 40}
!32 = !{!6, !7, i64 48}
!33 = !{!8, !8, i64 0}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = !{!37, !10, i64 0}
!37 = !{!"_ZTSN11check_casts15CheckCastConfigE", !10, i64 0}
!38 = !{i8 0, i8 2}
!39 = !{}
!40 = !{!41, !41, i64 0}
!41 = !{!"int", !8, i64 0}
!42 = distinct !{!42, !35}
!43 = distinct !{!43, !35}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass