; LLVM IR from EricZinda/InductorHtn :: src/FXPlatform/Htn/HtnPlanner.ll (ZN10HtnPlanner12FindNextPlanEP9PlanState)

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.22" = type { %"class.std::__shared_ptr.23" }
%"class.std::__shared_ptr.23" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.16" = type { %"class.std::__shared_ptr.17" }
%"class.std::__shared_ptr.17" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator.28" = type { i8 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.19" = type { %"class.std::__shared_ptr.20" }
%"class.std::__shared_ptr.20" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }
%class.PlanState = type { i32, %"class.std::shared_ptr", %"class.std::vector.0", i32, ptr, i64, %"class.std::shared_ptr.5", double, i64, i32, i8, %"class.std::shared_ptr.8" }
%class.PlanNode = type <{ i8, [3 x i8], i32, %"class.std::shared_ptr.19", i32, [4 x i8], %"struct.std::pair", i8, [7 x i8], %"class.std::shared_ptr.22", i8, [7 x i8], %"class.std::shared_ptr.5", %"class.std::shared_ptr", %"class.std::shared_ptr.22", i64, i32, [4 x i8], %"class.std::shared_ptr.25", i32, [4 x i8] }>
%"struct.std::pair" = type { ptr, %"class.std::vector" }
%class.HtnPlanner = type { %class.HtnDomain, %"class.std::multimap", i32, %"class.std::map.82", %"class.std::shared_ptr.87", i64 }
%class.HtnDomain = type { ptr }
%"class.std::multimap" = type { %"class.std::_Rb_tree.78" }
%"class.std::_Rb_tree.78" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, HtnMethod *>, std::_Select1st<std::pair<const unsigned long, HtnMethod *>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, HtnMethod *>, std::_Select1st<std::pair<const unsigned long, HtnMethod *>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.82" = type { %"class.std::_Rb_tree.83" }
%"class.std::_Rb_tree.83" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HtnOperator *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HtnOperator *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HtnOperator *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HtnOperator *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr.87" = type { %"class.std::__shared_ptr.88" }
%"class.std::__shared_ptr.88" = type { ptr, %"class.std::__shared_count" }

@_ZN10HtnPlanner7m_abortE = external dso_local global i8, align 1
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [33 x i8], align 1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9PlanState18CheckHighestMemoryElNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef, ptr noundef, i64 noundef) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12)) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i8 noundef signext, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

declare void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, i64 noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9PlanState13RecordFailureEiRSt6vectorISt10shared_ptrI7HtnTermESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

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

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

declare void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.22") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

declare void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(72), i1 noundef zeroext, i1 noundef zeroext) #6

declare void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, i1 noundef zeroext) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8PlanNode27SearchNextNodeBacktrackableEP9PlanStateRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EE21PlanNodeContinuePoint(ptr noundef nonnull align 8 dereferenceable(180), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner23FindAllMethodsThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.25") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2) #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::shared_ptr.8", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::shared_ptr.16", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.28", align 1
  %20 = alloca %"class.std::shared_ptr.16", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.28", align 1
  %27 = alloca %"class.std::shared_ptr.16", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.28", align 1
  %33 = alloca %"class.std::shared_ptr.16", align 8
  %34 = alloca %"class.std::shared_ptr", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.28", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::shared_ptr.25", align 8
  %43 = alloca %"class.std::shared_ptr", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.28", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator.28", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.28", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator.28", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::shared_ptr.22", align 8
  %69 = alloca %"class.std::vector.0", align 8
  %70 = alloca i32, align 4
  %71 = alloca %"class.std::shared_ptr.19", align 8
  %72 = alloca %"class.std::vector", align 8
  %73 = alloca %"class.std::shared_ptr.22", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator.28", align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca %"class.std::shared_ptr.19", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator.28", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator.28", align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator.28", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator.28", align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca ptr, align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator.28", align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::shared_ptr.22", align 8
  %111 = alloca %"class.std::vector.0", align 8
  %112 = alloca %"class.std::shared_ptr.22", align 8
  %113 = alloca %"class.std::shared_ptr.5", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator.28", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %120 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %121 = load ptr, ptr %6, align 8, !tbaa !5
  %122 = getelementptr inbounds %class.PlanState, ptr %121, i32 0, i32 4
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  store ptr %123, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  %124 = load ptr, ptr %6, align 8, !tbaa !5
  %125 = getelementptr inbounds %class.PlanState, ptr %124, i32 0, i32 8
  store ptr %125, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %126 = load ptr, ptr %6, align 8, !tbaa !5
  %127 = getelementptr inbounds %class.PlanState, ptr %126, i32 0, i32 10
  store ptr %127, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #8
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  %129 = getelementptr inbounds %class.PlanState, ptr %128, i32 0, i32 11
  call void @_ZNSt10shared_ptrISt6vectorIS_I8PlanNodeESaIS2_EEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %129) #8
  %130 = invoke noundef double @_Z31HighPerformanceGetTimeInSecondsv()
          to label %131 unwind label %147

131:                                              ; preds = %3
  %132 = load ptr, ptr %6, align 8, !tbaa !5
  %133 = getelementptr inbounds %class.PlanState, ptr %132, i32 0, i32 7
  store double %130, ptr %133, align 8, !tbaa !26
  br label %134

134:                                              ; preds = %1394, %1392, %131
  %135 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %136 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %135) #8
  %137 = icmp ugt i64 %136, 0
  br i1 %137, label %138, label %1396

138:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #8
  %139 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %140 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %139) #8
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %140) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %141 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %142 = getelementptr inbounds %class.PlanNode, ptr %141, i32 0, i32 4
  %143 = load i32, ptr %142, align 8, !tbaa !27
  store i32 %143, ptr %14, align 4, !tbaa !41
  %144 = load i8, ptr @_ZN10HtnPlanner7m_abortE, align 1, !tbaa !42
  %145 = icmp ne i8 %144, 0
  br i1 %145, label %146, label %151

146:                                              ; preds = %138
  store i32 9, ptr %14, align 4, !tbaa !41
  br label %151

147:                                              ; preds = %3
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %11, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %12, align 4
  br label %1398

151:                                              ; preds = %146, %138
  %152 = load i32, ptr %14, align 4, !tbaa !41
  switch i32 %152, label %1391 [
    i32 0, label %153
    i32 9, label %159
    i32 5, label %217
    i32 1, label %284
    i32 3, label %591
    i32 4, label %1161
    i32 6, label %1281
    i32 2, label %1293
    i32 7, label %1299
    i32 8, label %1379
  ]

153:                                              ; preds = %151
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef %120, i1 noundef zeroext false, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 708)
          to label %154 unwind label %155

154:                                              ; preds = %153
  br label %1391

155:                                              ; preds = %1373, %1323, %1319, %1317, %1312, %1310, %1293, %1161, %707, %703, %701, %696, %694, %687, %675, %629, %625, %623, %618, %616, %607, %591, %539, %535, %533, %528, %526, %523, %474, %470, %468, %463, %461, %440, %435, %377, %373, %371, %366, %361, %347, %303, %299, %297, %292, %290, %284, %271, %230, %226, %224, %219, %217, %172, %168, %166, %161, %159, %153
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %11, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %12, align 4
  br label %1395

159:                                              ; preds = %151
  %160 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %161 unwind label %155

161:                                              ; preds = %159
  %162 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %160)
          to label %163 unwind label %155

163:                                              ; preds = %161
  %164 = and i64 33554432, %162
  %165 = icmp ne i64 %164, 0
  br i1 %165, label %166, label %208

166:                                              ; preds = %163
  %167 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %168 unwind label %155

168:                                              ; preds = %166
  %169 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %167)
          to label %170 unwind label %155

170:                                              ; preds = %168
  %171 = icmp sle i32 0, %169
  br i1 %171, label %172, label %208

172:                                              ; preds = %170
  %173 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %174 unwind label %155

174:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  %175 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %176 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #8
  %177 = mul i64 %176, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef %177, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %178 unwind label %184

178:                                              ; preds = %174
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %179 unwind label %188

179:                                              ; preds = %178
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.29)
          to label %180 unwind label %192

180:                                              ; preds = %179
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.30)
          to label %181 unwind label %196

181:                                              ; preds = %180
  %182 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %173, ptr noundef nonnull align 8 dereferenceable(32) %15, i32 noundef 33554432, i32 noundef 0)
          to label %183 unwind label %200

183:                                              ; preds = %181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %208

184:                                              ; preds = %174
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %11, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %12, align 4
  br label %207

188:                                              ; preds = %178
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %11, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %12, align 4
  br label %206

192:                                              ; preds = %179
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %11, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %12, align 4
  br label %205

196:                                              ; preds = %180
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %11, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %12, align 4
  br label %204

200:                                              ; preds = %181
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %11, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %204

204:                                              ; preds = %200, %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %205

205:                                              ; preds = %204, %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %206

206:                                              ; preds = %205, %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %207

207:                                              ; preds = %206, %184
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %1395

208:                                              ; preds = %183, %170, %163
  %209 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %210 = getelementptr inbounds %class.PlanNode, ptr %209, i32 0, i32 4
  store i32 0, ptr %210, align 8, !tbaa !27
  %211 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %211, ptr noundef %20)
          to label %212 unwind label %213

212:                                              ; preds = %208
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  store i32 1, ptr %21, align 4
  br label %1392

213:                                              ; preds = %208
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %11, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %12, align 4
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  br label %1395

217:                                              ; preds = %151
  %218 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %219 unwind label %155

219:                                              ; preds = %217
  %220 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %218)
          to label %221 unwind label %155

221:                                              ; preds = %219
  %222 = and i64 33554432, %220
  %223 = icmp ne i64 %222, 0
  br i1 %223, label %224, label %271

224:                                              ; preds = %221
  %225 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %226 unwind label %155

226:                                              ; preds = %224
  %227 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %225)
          to label %228 unwind label %155

228:                                              ; preds = %226
  %229 = icmp sle i32 0, %227
  br i1 %229, label %230, label %271

230:                                              ; preds = %228
  %231 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %232 unwind label %155

232:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  %233 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %234 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %233) #8
  %235 = mul i64 %234, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, i64 noundef %235, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %236 unwind label %247

236:                                              ; preds = %232
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %237 unwind label %251

237:                                              ; preds = %236
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.29)
          to label %238 unwind label %255

238:                                              ; preds = %237
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.31)
          to label %239 unwind label %259

239:                                              ; preds = %238
  %240 = load ptr, ptr %6, align 8, !tbaa !5
  %241 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %240)
          to label %242 unwind label %263

242:                                              ; preds = %239
  %243 = load ptr, ptr %6, align 8, !tbaa !5
  %244 = getelementptr inbounds %class.PlanState, ptr %243, i32 0, i32 8
  %245 = invoke noundef double @_ZN9NanoTrace5TraceIllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %231, ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef 33554432, i32 noundef 0, i64 noundef %241, ptr noundef nonnull align 8 dereferenceable(8) %244)
          to label %246 unwind label %263

246:                                              ; preds = %242
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  br label %271

247:                                              ; preds = %232
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %11, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %12, align 4
  br label %270

251:                                              ; preds = %236
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %11, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %12, align 4
  br label %269

255:                                              ; preds = %237
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %11, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %12, align 4
  br label %268

259:                                              ; preds = %238
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %11, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %12, align 4
  br label %267

263:                                              ; preds = %242, %239
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %11, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %267

267:                                              ; preds = %263, %259
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %268

268:                                              ; preds = %267, %255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %269

269:                                              ; preds = %268, %251
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %270

270:                                              ; preds = %269, %247
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  br label %1395

271:                                              ; preds = %246, %228, %221
  %272 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %273 = getelementptr inbounds %class.PlanNode, ptr %272, i32 0, i32 4
  store i32 1, ptr %273, align 8, !tbaa !27
  %274 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088) %274, i1 noundef zeroext true)
          to label %275 unwind label %155

275:                                              ; preds = %271
  %276 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %277 = getelementptr inbounds %class.PlanNode, ptr %276, i32 0, i32 4
  store i32 0, ptr %277, align 8, !tbaa !27
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %278, ptr noundef %27)
          to label %279 unwind label %280

279:                                              ; preds = %275
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  store i32 1, ptr %21, align 4
  br label %1392

280:                                              ; preds = %275
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %11, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %12, align 4
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  br label %1395

284:                                              ; preds = %151
  %285 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZN8PlanNode11SetNodeTaskEv(ptr noundef nonnull align 8 dereferenceable(180) %285)
          to label %286 unwind label %155

286:                                              ; preds = %284
  %287 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %288 = getelementptr inbounds %class.PlanNode, ptr %287, i32 0, i32 13
  %289 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %288, ptr null) #8
  br i1 %289, label %290, label %356

290:                                              ; preds = %286
  %291 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %292 unwind label %155

292:                                              ; preds = %290
  %293 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %291)
          to label %294 unwind label %155

294:                                              ; preds = %292
  %295 = and i64 33554432, %293
  %296 = icmp ne i64 %295, 0
  br i1 %296, label %297, label %347

297:                                              ; preds = %294
  %298 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %299 unwind label %155

299:                                              ; preds = %297
  %300 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %298)
          to label %301 unwind label %155

301:                                              ; preds = %299
  %302 = icmp sle i32 0, %300
  br i1 %302, label %303, label %347

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %305 unwind label %155

305:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  %306 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %307 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %306) #8
  %308 = mul i64 %307, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, i64 noundef %308, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %309 unwind label %323

309:                                              ; preds = %305
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %310 unwind label %327

310:                                              ; preds = %309
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.32)
          to label %311 unwind label %331

311:                                              ; preds = %310
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.33)
          to label %312 unwind label %335

312:                                              ; preds = %311
  %313 = load ptr, ptr %6, align 8, !tbaa !5
  %314 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %313)
          to label %315 unwind label %339

315:                                              ; preds = %312
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = getelementptr inbounds %class.PlanState, ptr %316, i32 0, i32 5
  %318 = load ptr, ptr %6, align 8, !tbaa !5
  %319 = getelementptr inbounds %class.PlanState, ptr %318, i32 0, i32 8
  %320 = load i64, ptr %319, align 8, !tbaa !43
  %321 = invoke noundef double @_ZN9NanoTrace5TraceIlllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %304, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 33554432, i32 noundef 0, i64 noundef %314, ptr noundef nonnull align 8 dereferenceable(8) %317, i64 noundef %320)
          to label %322 unwind label %339

322:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %347

323:                                              ; preds = %305
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %11, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %12, align 4
  br label %346

327:                                              ; preds = %309
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %11, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %12, align 4
  br label %345

331:                                              ; preds = %310
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %11, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %12, align 4
  br label %344

335:                                              ; preds = %311
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %11, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %12, align 4
  br label %343

339:                                              ; preds = %315, %312
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %11, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %343

343:                                              ; preds = %339, %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %344

344:                                              ; preds = %343, %331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %345

345:                                              ; preds = %344, %327
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %346

346:                                              ; preds = %345, %323
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %1395

347:                                              ; preds = %322, %301, %294
  %348 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %348, i1 noundef zeroext true)
          to label %349 unwind label %155

349:                                              ; preds = %347
  %350 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %350, ptr noundef %33)
          to label %351 unwind label %352

351:                                              ; preds = %349
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  store i32 1, ptr %21, align 4
  br label %1392

352:                                              ; preds = %349
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %11, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %12, align 4
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  br label %1395

356:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #8
  %357 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %358 = getelementptr inbounds %class.PlanNode, ptr %357, i32 0, i32 13
  %359 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %358) #8
  %360 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm22ResolveArithmeticTermsEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8 %34, ptr noundef nonnull align 8 dereferenceable(72) %359, ptr noundef %360)
          to label %361 unwind label %397

361:                                              ; preds = %356
  %362 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %363 = getelementptr inbounds %class.PlanNode, ptr %362, i32 0, i32 13
  %364 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %363, ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #8
  %365 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %366 unwind label %155

366:                                              ; preds = %361
  %367 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %365)
          to label %368 unwind label %155

368:                                              ; preds = %366
  %369 = and i64 33554432, %367
  %370 = icmp ne i64 %369, 0
  br i1 %370, label %371, label %435

371:                                              ; preds = %368
  %372 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %373 unwind label %155

373:                                              ; preds = %371
  %374 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %372)
          to label %375 unwind label %155

375:                                              ; preds = %373
  %376 = icmp sle i32 0, %374
  br i1 %376, label %377, label %435

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %379 unwind label %155

379:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  %380 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %381 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %380) #8
  %382 = mul i64 %381, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, i64 noundef %382, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %383 unwind label %401

383:                                              ; preds = %379
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %384 unwind label %405

384:                                              ; preds = %383
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.34)
          to label %385 unwind label %409

385:                                              ; preds = %384
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.35)
          to label %386 unwind label %413

386:                                              ; preds = %385
  %387 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %388 = getelementptr inbounds %class.PlanNode, ptr %387, i32 0, i32 13
  %389 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %388) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(72) %389, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %390 unwind label %417

390:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  %391 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %392 = getelementptr inbounds %class.PlanNode, ptr %391, i32 0, i32 14
  %393 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %392) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(24) %393, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %394 unwind label %421

394:                                              ; preds = %390
  %395 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %378, ptr noundef nonnull align 8 dereferenceable(32) %35, i32 noundef 33554432, i32 noundef 0, ptr noundef %40, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %396 unwind label %425

396:                                              ; preds = %394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %435

397:                                              ; preds = %356
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %11, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #8
  br label %1395

401:                                              ; preds = %379
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %11, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %12, align 4
  br label %434

405:                                              ; preds = %383
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %11, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %12, align 4
  br label %433

409:                                              ; preds = %384
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %11, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %12, align 4
  br label %432

413:                                              ; preds = %385
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %11, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %12, align 4
  br label %431

417:                                              ; preds = %386
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %11, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %12, align 4
  br label %430

421:                                              ; preds = %390
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %11, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %12, align 4
  br label %429

425:                                              ; preds = %394
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %11, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %429

429:                                              ; preds = %425, %421
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %430

430:                                              ; preds = %429, %417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %431

431:                                              ; preds = %430, %413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %432

432:                                              ; preds = %431, %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %433

433:                                              ; preds = %432, %405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %434

434:                                              ; preds = %433, %401
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %1395

435:                                              ; preds = %396, %375, %368
  %436 = load ptr, ptr %6, align 8, !tbaa !5
  %437 = invoke noundef zeroext i1 @_ZN10HtnPlanner16CheckForOperatorEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %436)
          to label %438 unwind label %155

438:                                              ; preds = %435
  br i1 %437, label %439, label %440

439:                                              ; preds = %438
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

440:                                              ; preds = %438
  %441 = load ptr, ptr %6, align 8, !tbaa !5
  %442 = invoke noundef zeroext i1 @_ZN10HtnPlanner19CheckForSpecialTaskEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %441)
          to label %443 unwind label %155

443:                                              ; preds = %440
  br i1 %442, label %444, label %445

444:                                              ; preds = %443
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

445:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #8
  %446 = load ptr, ptr %7, align 8, !tbaa !5
  %447 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %448 = getelementptr inbounds %class.PlanNode, ptr %447, i32 0, i32 12
  %449 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %448) #8
  %450 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %451 = getelementptr inbounds %class.PlanNode, ptr %450, i32 0, i32 13
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(16) %451) #8
  invoke void @_ZN10HtnPlanner23FindAllMethodsThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.25") align 8 %42, ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %446, ptr noundef %449, ptr noundef %43)
          to label %452 unwind label %490

452:                                              ; preds = %445
  %453 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %454 = getelementptr inbounds %class.PlanNode, ptr %453, i32 0, i32 18
  %455 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %454, ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #8
  %456 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %457 = getelementptr inbounds %class.PlanNode, ptr %456, i32 0, i32 18
  %458 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %457) #8
  %459 = call noundef i64 @_ZNKSt6vectorISt4pairIP9HtnMethodS_IS0_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %458) #8
  %460 = icmp eq i64 %459, 0
  br i1 %460, label %461, label %526

461:                                              ; preds = %452
  %462 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %463 unwind label %155

463:                                              ; preds = %461
  %464 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %462)
          to label %465 unwind label %155

465:                                              ; preds = %463
  %466 = and i64 33554432, %464
  %467 = icmp ne i64 %466, 0
  br i1 %467, label %468, label %523

468:                                              ; preds = %465
  %469 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %470 unwind label %155

470:                                              ; preds = %468
  %471 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %469)
          to label %472 unwind label %155

472:                                              ; preds = %470
  %473 = icmp sle i32 0, %471
  br i1 %473, label %474, label %523

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %476 unwind label %155

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  %477 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %478 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %477) #8
  %479 = mul i64 %478, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, i64 noundef %479, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %480 unwind label %494

480:                                              ; preds = %476
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %481 unwind label %498

481:                                              ; preds = %480
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.10)
          to label %482 unwind label %502

482:                                              ; preds = %481
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.36)
          to label %483 unwind label %506

483:                                              ; preds = %482
  %484 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %485 = getelementptr inbounds %class.PlanNode, ptr %484, i32 0, i32 13
  %486 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %485) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(72) %486, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %487 unwind label %510

487:                                              ; preds = %483
  %488 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %475, ptr noundef nonnull align 8 dereferenceable(32) %44, i32 noundef 33554432, i32 noundef 0, ptr noundef %49)
          to label %489 unwind label %514

489:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  br label %523

490:                                              ; preds = %445
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %11, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %12, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #8
  br label %1395

494:                                              ; preds = %476
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %11, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %12, align 4
  br label %522

498:                                              ; preds = %480
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %11, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %12, align 4
  br label %521

502:                                              ; preds = %481
  %503 = landingpad { ptr, i32 }
          cleanup
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %11, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %12, align 4
  br label %520

506:                                              ; preds = %482
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %11, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %12, align 4
  br label %519

510:                                              ; preds = %483
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %11, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %12, align 4
  br label %518

514:                                              ; preds = %487
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %11, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %518

518:                                              ; preds = %514, %510
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %519

519:                                              ; preds = %518, %506
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %520

520:                                              ; preds = %519, %502
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %521

521:                                              ; preds = %520, %498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %522

522:                                              ; preds = %521, %494
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  br label %1395

523:                                              ; preds = %489, %472, %465
  %524 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %524, i1 noundef zeroext false)
          to label %525 unwind label %155

525:                                              ; preds = %523
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

526:                                              ; preds = %452
  %527 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %528 unwind label %155

528:                                              ; preds = %526
  %529 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %527)
          to label %530 unwind label %155

530:                                              ; preds = %528
  %531 = and i64 33554432, %529
  %532 = icmp ne i64 %531, 0
  br i1 %532, label %533, label %588

533:                                              ; preds = %530
  %534 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %535 unwind label %155

535:                                              ; preds = %533
  %536 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %534)
          to label %537 unwind label %155

537:                                              ; preds = %535
  %538 = icmp sle i32 0, %536
  br i1 %538, label %539, label %588

539:                                              ; preds = %537
  %540 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %541 unwind label %155

541:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %542 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %543 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %542) #8
  %544 = mul i64 %543, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, i64 noundef %544, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %545 unwind label %559

545:                                              ; preds = %541
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %546 unwind label %563

546:                                              ; preds = %545
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.8)
          to label %547 unwind label %567

547:                                              ; preds = %546
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.37)
          to label %548 unwind label %571

548:                                              ; preds = %547
  %549 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %550 = getelementptr inbounds %class.PlanNode, ptr %549, i32 0, i32 18
  %551 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %550) #8
  %552 = call noundef i64 @_ZNKSt6vectorISt4pairIP9HtnMethodS_IS0_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %551) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  %553 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %554 = getelementptr inbounds %class.PlanNode, ptr %553, i32 0, i32 13
  %555 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %554) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(72) %555, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %556 unwind label %575

556:                                              ; preds = %548
  %557 = invoke noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %540, ptr noundef nonnull align 8 dereferenceable(32) %50, i32 noundef 33554432, i32 noundef 0, i64 noundef %552, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %558 unwind label %579

558:                                              ; preds = %556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %588

559:                                              ; preds = %541
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %11, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %12, align 4
  br label %587

563:                                              ; preds = %545
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %11, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %12, align 4
  br label %586

567:                                              ; preds = %546
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %11, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %12, align 4
  br label %585

571:                                              ; preds = %547
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %11, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %12, align 4
  br label %584

575:                                              ; preds = %548
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %11, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %12, align 4
  br label %583

579:                                              ; preds = %556
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %11, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %583

583:                                              ; preds = %579, %575
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %584

584:                                              ; preds = %583, %571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %585

585:                                              ; preds = %584, %567
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %586

586:                                              ; preds = %585, %563
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %587

587:                                              ; preds = %586, %559
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %1395

588:                                              ; preds = %558, %537, %530
  %589 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %590 = getelementptr inbounds %class.PlanNode, ptr %589, i32 0, i32 4
  store i32 3, ptr %590, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

591:                                              ; preds = %151
  %592 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZN8PlanNode24SetNextMethodThatUnifiesEv(ptr noundef nonnull align 8 dereferenceable(180) %592)
          to label %593 unwind label %155

593:                                              ; preds = %591
  %594 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %595 = getelementptr inbounds %class.PlanNode, ptr %594, i32 0, i32 7
  %596 = load i8, ptr %595, align 8, !tbaa !46, !range !47, !noundef !48
  %597 = trunc i8 %596 to i1
  br i1 %597, label %598, label %681

598:                                              ; preds = %593
  %599 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %600 = getelementptr inbounds %class.PlanNode, ptr %599, i32 0, i32 0
  store i8 1, ptr %600, align 8, !tbaa !49
  br label %601

601:                                              ; preds = %677, %598
  %602 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %603 = getelementptr inbounds %class.PlanNode, ptr %602, i32 0, i32 6
  %604 = getelementptr inbounds %"struct.std::pair", ptr %603, i32 0, i32 0
  %605 = load ptr, ptr %604, align 8, !tbaa !50
  %606 = icmp ne ptr %605, null
  br i1 %606, label %607, label %614

607:                                              ; preds = %601
  %608 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %609 = getelementptr inbounds %class.PlanNode, ptr %608, i32 0, i32 6
  %610 = getelementptr inbounds %"struct.std::pair", ptr %609, i32 0, i32 0
  %611 = load ptr, ptr %610, align 8, !tbaa !50
  %612 = invoke noundef zeroext i1 @_ZNK9HtnMethod9isDefaultEv(ptr noundef nonnull align 8 dereferenceable(80) %611)
          to label %613 unwind label %155

613:                                              ; preds = %607
  br label %614

614:                                              ; preds = %613, %601
  %615 = phi i1 [ false, %601 ], [ %612, %613 ]
  br i1 %615, label %616, label %678

616:                                              ; preds = %614
  %617 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %618 unwind label %155

618:                                              ; preds = %616
  %619 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %617)
          to label %620 unwind label %155

620:                                              ; preds = %618
  %621 = and i64 33554432, %619
  %622 = icmp ne i64 %621, 0
  br i1 %622, label %623, label %675

623:                                              ; preds = %620
  %624 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %625 unwind label %155

625:                                              ; preds = %623
  %626 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %624)
          to label %627 unwind label %155

627:                                              ; preds = %625
  %628 = icmp sle i32 0, %626
  br i1 %628, label %629, label %675

629:                                              ; preds = %627
  %630 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %631 unwind label %155

631:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  %632 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %633 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %632) #8
  %634 = mul i64 %633, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, i64 noundef %634, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %635 unwind label %646

635:                                              ; preds = %631
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %636 unwind label %650

636:                                              ; preds = %635
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.8)
          to label %637 unwind label %654

637:                                              ; preds = %636
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.38)
          to label %638 unwind label %658

638:                                              ; preds = %637
  %639 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %640 = getelementptr inbounds %class.PlanNode, ptr %639, i32 0, i32 6
  %641 = getelementptr inbounds %"struct.std::pair", ptr %640, i32 0, i32 0
  %642 = load ptr, ptr %641, align 8, !tbaa !50
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(80) %642)
          to label %643 unwind label %662

643:                                              ; preds = %638
  %644 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %630, ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef 33554432, i32 noundef 0, ptr noundef %61)
          to label %645 unwind label %666

645:                                              ; preds = %643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %675

646:                                              ; preds = %631
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %11, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %12, align 4
  br label %674

650:                                              ; preds = %635
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %11, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %12, align 4
  br label %673

654:                                              ; preds = %636
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %11, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %12, align 4
  br label %672

658:                                              ; preds = %637
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %11, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %12, align 4
  br label %671

662:                                              ; preds = %638
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %11, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %12, align 4
  br label %670

666:                                              ; preds = %643
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %11, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %670

670:                                              ; preds = %666, %662
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %671

671:                                              ; preds = %670, %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %672

672:                                              ; preds = %671, %654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %673

673:                                              ; preds = %672, %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %674

674:                                              ; preds = %673, %646
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %1395

675:                                              ; preds = %645, %627, %620
  %676 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZN8PlanNode24SetNextMethodThatUnifiesEv(ptr noundef nonnull align 8 dereferenceable(180) %676)
          to label %677 unwind label %155

677:                                              ; preds = %675
  br label %601, !llvm.loop !51

678:                                              ; preds = %614
  %679 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %680 = getelementptr inbounds %class.PlanNode, ptr %679, i32 0, i32 7
  store i8 0, ptr %680, align 8, !tbaa !46
  br label %681

681:                                              ; preds = %678, %593
  %682 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %683 = getelementptr inbounds %class.PlanNode, ptr %682, i32 0, i32 6
  %684 = getelementptr inbounds %"struct.std::pair", ptr %683, i32 0, i32 0
  %685 = load ptr, ptr %684, align 8, !tbaa !50
  %686 = icmp eq ptr %685, null
  br i1 %686, label %687, label %694

687:                                              ; preds = %681
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %690 = getelementptr inbounds %class.PlanNode, ptr %689, i32 0, i32 0
  %691 = load i8, ptr %690, align 8, !tbaa !49, !range !47, !noundef !48
  %692 = trunc i8 %691 to i1
  invoke void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %688, i1 noundef zeroext %692)
          to label %693 unwind label %155

693:                                              ; preds = %687
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

694:                                              ; preds = %681
  %695 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %696 unwind label %155

696:                                              ; preds = %694
  %697 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %695)
          to label %698 unwind label %155

698:                                              ; preds = %696
  %699 = and i64 33554432, %697
  %700 = icmp ne i64 %699, 0
  br i1 %700, label %701, label %766

701:                                              ; preds = %698
  %702 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %703 unwind label %155

703:                                              ; preds = %701
  %704 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %702)
          to label %705 unwind label %155

705:                                              ; preds = %703
  %706 = icmp sle i32 0, %704
  br i1 %706, label %707, label %766

707:                                              ; preds = %705
  %708 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %709 unwind label %155

709:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  %710 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %711 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %710) #8
  %712 = mul i64 %711, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, i64 noundef %712, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %713 unwind label %732

713:                                              ; preds = %709
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %714 unwind label %736

714:                                              ; preds = %713
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.39)
          to label %715 unwind label %740

715:                                              ; preds = %714
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.40)
          to label %716 unwind label %744

716:                                              ; preds = %715
  %717 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %718 = getelementptr inbounds %class.PlanNode, ptr %717, i32 0, i32 6
  %719 = getelementptr inbounds %"struct.std::pair", ptr %718, i32 0, i32 0
  %720 = load ptr, ptr %719, align 8, !tbaa !50
  %721 = invoke noundef zeroext i1 @_ZNK9HtnMethod9isDefaultEv(ptr noundef nonnull align 8 dereferenceable(80) %720)
          to label %722 unwind label %748

722:                                              ; preds = %716
  %723 = zext i1 %721 to i64
  %724 = select i1 %721, ptr @.str.41, ptr @.str.15
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  %725 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %726 = getelementptr inbounds %class.PlanNode, ptr %725, i32 0, i32 6
  %727 = getelementptr inbounds %"struct.std::pair", ptr %726, i32 0, i32 0
  %728 = load ptr, ptr %727, align 8, !tbaa !50
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(80) %728)
          to label %729 unwind label %752

729:                                              ; preds = %722
  %730 = invoke noundef double @_ZN9NanoTrace5TraceIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS8_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %708, ptr noundef nonnull align 8 dereferenceable(32) %62, i32 noundef 33554432, i32 noundef 0, ptr noundef %724, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %731 unwind label %756

731:                                              ; preds = %729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %766

732:                                              ; preds = %709
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %11, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %12, align 4
  br label %765

736:                                              ; preds = %713
  %737 = landingpad { ptr, i32 }
          cleanup
  %738 = extractvalue { ptr, i32 } %737, 0
  store ptr %738, ptr %11, align 8
  %739 = extractvalue { ptr, i32 } %737, 1
  store i32 %739, ptr %12, align 4
  br label %764

740:                                              ; preds = %714
  %741 = landingpad { ptr, i32 }
          cleanup
  %742 = extractvalue { ptr, i32 } %741, 0
  store ptr %742, ptr %11, align 8
  %743 = extractvalue { ptr, i32 } %741, 1
  store i32 %743, ptr %12, align 4
  br label %763

744:                                              ; preds = %715
  %745 = landingpad { ptr, i32 }
          cleanup
  %746 = extractvalue { ptr, i32 } %745, 0
  store ptr %746, ptr %11, align 8
  %747 = extractvalue { ptr, i32 } %745, 1
  store i32 %747, ptr %12, align 4
  br label %762

748:                                              ; preds = %716
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %11, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %12, align 4
  br label %761

752:                                              ; preds = %722
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %11, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %12, align 4
  br label %760

756:                                              ; preds = %729
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %11, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %760

760:                                              ; preds = %756, %752
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  br label %761

761:                                              ; preds = %760, %748
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %762

762:                                              ; preds = %761, %744
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %763

763:                                              ; preds = %762, %740
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %764

764:                                              ; preds = %763, %736
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %765

765:                                              ; preds = %764, %732
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %1395

766:                                              ; preds = %731, %705, %698
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %69) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  store i32 -1, ptr %70, align 4, !tbaa !52
  %767 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %768 = getelementptr inbounds %class.PlanNode, ptr %767, i32 0, i32 6
  %769 = getelementptr inbounds %"struct.std::pair", ptr %768, i32 0, i32 0
  %770 = load ptr, ptr %769, align 8, !tbaa !50
  %771 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9HtnMethod9conditionEv(ptr noundef nonnull align 8 dereferenceable(80) %770)
          to label %772 unwind label %786

772:                                              ; preds = %766
  %773 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %771) #8
  %774 = icmp eq i64 %773, 0
  br i1 %774, label %775, label %798

775:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #8
  %776 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %777 unwind label %790

777:                                              ; preds = %775
  call void @llvm.memset.p0.i64(ptr align 16 %776, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %776) #8
  invoke void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2IS8_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %71, ptr noundef %776)
          to label %778 unwind label %790

778:                                              ; preds = %777
  %779 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %780 = getelementptr inbounds %class.PlanNode, ptr %779, i32 0, i32 3
  %781 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %780, ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #8
  %782 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %783 = getelementptr inbounds %class.PlanNode, ptr %782, i32 0, i32 3
  %784 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %783) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #8
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #8
  invoke void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %784, ptr noundef nonnull align 8 dereferenceable(24) %72)
          to label %785 unwind label %794

785:                                              ; preds = %778
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #8
  br label %934

786:                                              ; preds = %1155, %1152, %1144, %1141, %1133, %1122, %1072, %1068, %1066, %1061, %1059, %1053, %1010, %1006, %1004, %999, %997, %951, %947, %945, %940, %938, %823, %819, %817, %812, %809, %766
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %11, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %12, align 4
  br label %1160

790:                                              ; preds = %777, %775
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  store ptr %792, ptr %11, align 8
  %793 = extractvalue { ptr, i32 } %791, 1
  store i32 %793, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #8
  br label %1160

794:                                              ; preds = %778
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %11, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %12, align 4
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #8
  br label %1160

798:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 16, ptr %73) #8
  %799 = load ptr, ptr %7, align 8, !tbaa !5
  %800 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %801 = getelementptr inbounds %class.PlanNode, ptr %800, i32 0, i32 6
  %802 = getelementptr inbounds %"struct.std::pair", ptr %801, i32 0, i32 1
  %803 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %804 = getelementptr inbounds %class.PlanNode, ptr %803, i32 0, i32 6
  %805 = getelementptr inbounds %"struct.std::pair", ptr %804, i32 0, i32 0
  %806 = load ptr, ptr %805, align 8, !tbaa !50
  %807 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9HtnMethod9conditionEv(ptr noundef nonnull align 8 dereferenceable(80) %806)
          to label %808 unwind label %837

808:                                              ; preds = %798
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.22") align 8 %73, ptr noundef %799, ptr noundef nonnull align 8 dereferenceable(24) %802, ptr noundef nonnull align 8 dereferenceable(24) %807)
          to label %809 unwind label %837

809:                                              ; preds = %808
  %810 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #8
  %811 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %812 unwind label %786

812:                                              ; preds = %809
  %813 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %811)
          to label %814 unwind label %786

814:                                              ; preds = %812
  %815 = and i64 33554432, %813
  %816 = icmp ne i64 %815, 0
  br i1 %816, label %817, label %870

817:                                              ; preds = %814
  %818 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %819 unwind label %786

819:                                              ; preds = %817
  %820 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %818)
          to label %821 unwind label %786

821:                                              ; preds = %819
  %822 = icmp sle i32 0, %820
  br i1 %822, label %823, label %870

823:                                              ; preds = %821
  %824 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %825 unwind label %786

825:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  %826 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %827 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %826) #8
  %828 = mul i64 %827, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, i64 noundef %828, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %829 unwind label %841

829:                                              ; preds = %825
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %830 unwind label %845

830:                                              ; preds = %829
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.8)
          to label %831 unwind label %849

831:                                              ; preds = %830
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.42)
          to label %832 unwind label %853

832:                                              ; preds = %831
  %833 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(24) %833, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %834 unwind label %857

834:                                              ; preds = %832
  %835 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %824, ptr noundef nonnull align 8 dereferenceable(32) %74, i32 noundef 33554432, i32 noundef 0, ptr noundef %79)
          to label %836 unwind label %861

836:                                              ; preds = %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %870

837:                                              ; preds = %808, %798
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %11, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #8
  br label %1160

841:                                              ; preds = %825
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %11, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %12, align 4
  br label %869

845:                                              ; preds = %829
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %11, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %12, align 4
  br label %868

849:                                              ; preds = %830
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %11, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %12, align 4
  br label %867

853:                                              ; preds = %831
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %11, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %12, align 4
  br label %866

857:                                              ; preds = %832
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %11, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %12, align 4
  br label %865

861:                                              ; preds = %834
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %11, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %865

865:                                              ; preds = %861, %857
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %866

866:                                              ; preds = %865, %853
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %867

867:                                              ; preds = %866, %849
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %868

868:                                              ; preds = %867, %845
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %869

869:                                              ; preds = %868, %841
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %1160

870:                                              ; preds = %836, %821, %814
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %871 = load ptr, ptr %6, align 8, !tbaa !5
  %872 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %871)
          to label %873 unwind label %907

873:                                              ; preds = %870
  store i64 %872, ptr %80, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  store i64 0, ptr %81, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #8
  %874 = getelementptr inbounds %class.HtnPlanner, ptr %120, i32 0, i32 4
  %875 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %874) #8
  %876 = load ptr, ptr %7, align 8, !tbaa !5
  %877 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %878 = getelementptr inbounds %class.PlanNode, ptr %877, i32 0, i32 12
  %879 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %878) #8
  %880 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  %881 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %882 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %881) #8
  %883 = add i64 %882, 1
  %884 = trunc i64 %883 to i32
  %885 = load ptr, ptr %8, align 8, !tbaa !5
  %886 = load i64, ptr %885, align 8, !tbaa !53
  %887 = load i64, ptr %80, align 8, !tbaa !53
  %888 = sub nsw i64 %886, %887
  %889 = trunc i64 %888 to i32
  invoke void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.19") align 8 %82, ptr noundef nonnull align 8 dereferenceable(64) %875, ptr noundef %876, ptr noundef %879, ptr noundef nonnull align 8 dereferenceable(24) %880, i32 noundef %884, i32 noundef %889, ptr noundef %81, ptr noundef %70, ptr noundef %69)
          to label %890 unwind label %911

890:                                              ; preds = %873
  %891 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %892 = getelementptr inbounds %class.PlanNode, ptr %891, i32 0, i32 3
  %893 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %892, ptr noundef nonnull align 8 dereferenceable(16) %82) #8
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #8
  %894 = load ptr, ptr %6, align 8, !tbaa !5
  %895 = load i64, ptr %80, align 8, !tbaa !53
  %896 = load i64, ptr %81, align 8, !tbaa !53
  %897 = add nsw i64 %895, %896
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %898 unwind label %915

898:                                              ; preds = %890
  %899 = load i64, ptr %81, align 8, !tbaa !53
  invoke void @_ZN9PlanState18CheckHighestMemoryElNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(128) %894, i64 noundef %897, ptr noundef %83, i64 noundef %899)
          to label %900 unwind label %919

900:                                              ; preds = %898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  %901 = load ptr, ptr %7, align 8, !tbaa !5
  %902 = invoke noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %901)
          to label %903 unwind label %924

903:                                              ; preds = %900
  br i1 %902, label %904, label %928

904:                                              ; preds = %903
  %905 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %906 = getelementptr inbounds %class.PlanNode, ptr %905, i32 0, i32 4
  store i32 5, ptr %906, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %929, !llvm.loop !44

907:                                              ; preds = %870
  %908 = landingpad { ptr, i32 }
          cleanup
  %909 = extractvalue { ptr, i32 } %908, 0
  store ptr %909, ptr %11, align 8
  %910 = extractvalue { ptr, i32 } %908, 1
  store i32 %910, ptr %12, align 4
  br label %933

911:                                              ; preds = %873
  %912 = landingpad { ptr, i32 }
          cleanup
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %11, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #8
  br label %932

915:                                              ; preds = %890
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %11, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %12, align 4
  br label %923

919:                                              ; preds = %898
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %11, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %923

923:                                              ; preds = %919, %915
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  br label %932

924:                                              ; preds = %900
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %11, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %12, align 4
  br label %932

928:                                              ; preds = %903
  store i32 0, ptr %21, align 4
  br label %929

929:                                              ; preds = %928, %904
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  %930 = load i32, ptr %21, align 4
  switch i32 %930, label %1159 [
    i32 0, label %931
  ]

931:                                              ; preds = %929
  br label %934

932:                                              ; preds = %924, %923, %911
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %933

933:                                              ; preds = %932, %907
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %1160

934:                                              ; preds = %931, %785
  %935 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %936 = getelementptr inbounds %class.PlanNode, ptr %935, i32 0, i32 3
  %937 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %936, ptr null) #8
  br i1 %937, label %938, label %1059

938:                                              ; preds = %934
  %939 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %940 unwind label %786

940:                                              ; preds = %938
  %941 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %939)
          to label %942 unwind label %786

942:                                              ; preds = %940
  %943 = and i64 33554432, %941
  %944 = icmp ne i64 %943, 0
  br i1 %944, label %945, label %997

945:                                              ; preds = %942
  %946 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %947 unwind label %786

947:                                              ; preds = %945
  %948 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %946)
          to label %949 unwind label %786

949:                                              ; preds = %947
  %950 = icmp sle i32 0, %948
  br i1 %950, label %951, label %997

951:                                              ; preds = %949
  %952 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %953 unwind label %786

953:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #8
  %954 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %955 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %954) #8
  %956 = mul i64 %955, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef %956, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %957 unwind label %968

957:                                              ; preds = %953
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %958 unwind label %972

958:                                              ; preds = %957
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str.10)
          to label %959 unwind label %976

959:                                              ; preds = %958
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.44)
          to label %960 unwind label %980

960:                                              ; preds = %959
  %961 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %962 = getelementptr inbounds %class.PlanNode, ptr %961, i32 0, i32 6
  %963 = getelementptr inbounds %"struct.std::pair", ptr %962, i32 0, i32 0
  %964 = load ptr, ptr %963, align 8, !tbaa !50
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(80) %964)
          to label %965 unwind label %984

965:                                              ; preds = %960
  %966 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %952, ptr noundef nonnull align 8 dereferenceable(32) %85, i32 noundef 33554432, i32 noundef 0, ptr noundef %90)
          to label %967 unwind label %988

967:                                              ; preds = %965
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %997

968:                                              ; preds = %953
  %969 = landingpad { ptr, i32 }
          cleanup
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %11, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %12, align 4
  br label %996

972:                                              ; preds = %957
  %973 = landingpad { ptr, i32 }
          cleanup
  %974 = extractvalue { ptr, i32 } %973, 0
  store ptr %974, ptr %11, align 8
  %975 = extractvalue { ptr, i32 } %973, 1
  store i32 %975, ptr %12, align 4
  br label %995

976:                                              ; preds = %958
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %11, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %12, align 4
  br label %994

980:                                              ; preds = %959
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %11, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %12, align 4
  br label %993

984:                                              ; preds = %960
  %985 = landingpad { ptr, i32 }
          cleanup
  %986 = extractvalue { ptr, i32 } %985, 0
  store ptr %986, ptr %11, align 8
  %987 = extractvalue { ptr, i32 } %985, 1
  store i32 %987, ptr %12, align 4
  br label %992

988:                                              ; preds = %965
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %11, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %992

992:                                              ; preds = %988, %984
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %993

993:                                              ; preds = %992, %980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %994

994:                                              ; preds = %993, %976
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %995

995:                                              ; preds = %994, %972
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %996

996:                                              ; preds = %995, %968
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %1160

997:                                              ; preds = %967, %949, %942
  %998 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %999 unwind label %786

999:                                              ; preds = %997
  %1000 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %998)
          to label %1001 unwind label %786

1001:                                             ; preds = %999
  %1002 = and i64 33554432, %1000
  %1003 = icmp ne i64 %1002, 0
  br i1 %1003, label %1004, label %1053

1004:                                             ; preds = %1001
  %1005 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1006 unwind label %786

1006:                                             ; preds = %1004
  %1007 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1005)
          to label %1008 unwind label %786

1008:                                             ; preds = %1006
  %1009 = icmp sle i32 0, %1007
  br i1 %1009, label %1010, label %1053

1010:                                             ; preds = %1008
  %1011 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1012 unwind label %786

1012:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #8
  %1013 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %1014 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1013) #8
  %1015 = mul i64 %1014, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, i64 noundef %1015, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1016 unwind label %1024

1016:                                             ; preds = %1012
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1017 unwind label %1028

1017:                                             ; preds = %1016
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.8)
          to label %1018 unwind label %1032

1018:                                             ; preds = %1017
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.45)
          to label %1019 unwind label %1036

1019:                                             ; preds = %1018
  %1020 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(24) %1020, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1021 unwind label %1040

1021:                                             ; preds = %1019
  %1022 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1011, ptr noundef nonnull align 8 dereferenceable(32) %91, i32 noundef 33554432, i32 noundef 0, ptr noundef %96)
          to label %1023 unwind label %1044

1023:                                             ; preds = %1021
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %1053

1024:                                             ; preds = %1012
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %11, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %12, align 4
  br label %1052

1028:                                             ; preds = %1016
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %11, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %12, align 4
  br label %1051

1032:                                             ; preds = %1017
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %11, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %12, align 4
  br label %1050

1036:                                             ; preds = %1018
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %11, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %12, align 4
  br label %1049

1040:                                             ; preds = %1019
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %11, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %12, align 4
  br label %1048

1044:                                             ; preds = %1021
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %11, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %1048

1048:                                             ; preds = %1044, %1040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %1049

1049:                                             ; preds = %1048, %1036
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %1050

1050:                                             ; preds = %1049, %1032
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %1051

1051:                                             ; preds = %1050, %1028
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %1052

1052:                                             ; preds = %1051, %1024
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %1160

1053:                                             ; preds = %1023, %1008, %1001
  %1054 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1055 = getelementptr inbounds %class.PlanNode, ptr %1054, i32 0, i32 4
  store i32 3, ptr %1055, align 8, !tbaa !27
  %1056 = load ptr, ptr %6, align 8, !tbaa !5
  %1057 = load i32, ptr %70, align 4, !tbaa !52
  invoke void @_ZN9PlanState13RecordFailureEiRSt6vectorISt10shared_ptrI7HtnTermESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(128) %1056, i32 noundef %1057, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %1058 unwind label %786

1058:                                             ; preds = %1053
  store i32 2, ptr %21, align 4
  br label %1159, !llvm.loop !44

1059:                                             ; preds = %934
  %1060 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1061 unwind label %786

1061:                                             ; preds = %1059
  %1062 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1060)
          to label %1063 unwind label %786

1063:                                             ; preds = %1061
  %1064 = and i64 33554432, %1062
  %1065 = icmp ne i64 %1064, 0
  br i1 %1065, label %1066, label %1122

1066:                                             ; preds = %1063
  %1067 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1068 unwind label %786

1068:                                             ; preds = %1066
  %1069 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1067)
          to label %1070 unwind label %786

1070:                                             ; preds = %1068
  %1071 = icmp sle i32 0, %1069
  br i1 %1071, label %1072, label %1122

1072:                                             ; preds = %1070
  %1073 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1074 unwind label %786

1074:                                             ; preds = %1072
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #8
  %1075 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %1076 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1075) #8
  %1077 = mul i64 %1076, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, i64 noundef %1077, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %1078 unwind label %1093

1078:                                             ; preds = %1074
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %1079 unwind label %1097

1079:                                             ; preds = %1078
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.8)
          to label %1080 unwind label %1101

1080:                                             ; preds = %1079
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.46)
          to label %1081 unwind label %1105

1081:                                             ; preds = %1080
  %1082 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1083 = getelementptr inbounds %class.PlanNode, ptr %1082, i32 0, i32 3
  %1084 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1083) #8
  %1085 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1084) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #8
  %1086 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1087 = getelementptr inbounds %class.PlanNode, ptr %1086, i32 0, i32 6
  %1088 = getelementptr inbounds %"struct.std::pair", ptr %1087, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8, !tbaa !50
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(80) %1089)
          to label %1090 unwind label %1109

1090:                                             ; preds = %1081
  %1091 = invoke noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %1073, ptr noundef nonnull align 8 dereferenceable(32) %97, i32 noundef 33554432, i32 noundef 0, i64 noundef %1085, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1092 unwind label %1113

1092:                                             ; preds = %1090
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %1122

1093:                                             ; preds = %1074
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %11, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %12, align 4
  br label %1121

1097:                                             ; preds = %1078
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %11, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %12, align 4
  br label %1120

1101:                                             ; preds = %1079
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %11, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %12, align 4
  br label %1119

1105:                                             ; preds = %1080
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %11, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %12, align 4
  br label %1118

1109:                                             ; preds = %1081
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %11, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %12, align 4
  br label %1117

1113:                                             ; preds = %1090
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %11, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %1117

1117:                                             ; preds = %1113, %1109
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %1118

1118:                                             ; preds = %1117, %1105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  br label %1119

1119:                                             ; preds = %1118, %1101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %1120

1120:                                             ; preds = %1119, %1097
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  br label %1121

1121:                                             ; preds = %1120, %1093
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %1160

1122:                                             ; preds = %1092, %1070, %1063
  %1123 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1124 = getelementptr inbounds %class.PlanNode, ptr %1123, i32 0, i32 6
  %1125 = getelementptr inbounds %"struct.std::pair", ptr %1124, i32 0, i32 0
  %1126 = load ptr, ptr %1125, align 8, !tbaa !50
  %1127 = invoke noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %1126)
          to label %1128 unwind label %786

1128:                                             ; preds = %1122
  %1129 = icmp eq i32 %1127, 0
  br i1 %1129, label %1130, label %1133

1130:                                             ; preds = %1128
  %1131 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1132 = getelementptr inbounds %class.PlanNode, ptr %1131, i32 0, i32 4
  store i32 4, ptr %1132, align 8, !tbaa !27
  br label %1157

1133:                                             ; preds = %1128
  %1134 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1135 = getelementptr inbounds %class.PlanNode, ptr %1134, i32 0, i32 6
  %1136 = getelementptr inbounds %"struct.std::pair", ptr %1135, i32 0, i32 0
  %1137 = load ptr, ptr %1136, align 8, !tbaa !50
  %1138 = invoke noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %1137)
          to label %1139 unwind label %786

1139:                                             ; preds = %1133
  %1140 = icmp eq i32 %1138, 2
  br i1 %1140, label %1141, label %1144

1141:                                             ; preds = %1139
  %1142 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN10HtnPlanner11HandleAnyOfEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %1142)
          to label %1143 unwind label %786

1143:                                             ; preds = %1141
  store i32 2, ptr %21, align 4
  br label %1159, !llvm.loop !44

1144:                                             ; preds = %1139
  %1145 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1146 = getelementptr inbounds %class.PlanNode, ptr %1145, i32 0, i32 6
  %1147 = getelementptr inbounds %"struct.std::pair", ptr %1146, i32 0, i32 0
  %1148 = load ptr, ptr %1147, align 8, !tbaa !50
  %1149 = invoke noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %1148)
          to label %1150 unwind label %786

1150:                                             ; preds = %1144
  %1151 = icmp eq i32 %1149, 1
  br i1 %1151, label %1152, label %1155

1152:                                             ; preds = %1150
  %1153 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN10HtnPlanner11HandleAllOfEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %1153)
          to label %1154 unwind label %786

1154:                                             ; preds = %1152
  store i32 2, ptr %21, align 4
  br label %1159, !llvm.loop !44

1155:                                             ; preds = %1150
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef %120, i1 noundef zeroext false, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 887)
          to label %1156 unwind label %786

1156:                                             ; preds = %1155
  store i32 2, ptr %21, align 4
  br label %1159, !llvm.loop !44

1157:                                             ; preds = %1130
  br label %1158

1158:                                             ; preds = %1157
  store i32 2, ptr %21, align 4
  br label %1159, !llvm.loop !44

1159:                                             ; preds = %1158, %1156, %1154, %1143, %1058, %929
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %69) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  br label %1392

1160:                                             ; preds = %1121, %1052, %996, %933, %869, %837, %794, %790, %786
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %69) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  br label %1395

1161:                                             ; preds = %151
  %1162 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZN8PlanNode16SetNextConditionEv(ptr noundef nonnull align 8 dereferenceable(180) %1162)
          to label %1163 unwind label %155

1163:                                             ; preds = %1161
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  %1164 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1165 = invoke noundef ptr @_ZN8PlanNode9conditionEv(ptr noundef nonnull align 8 dereferenceable(180) %1164)
          to label %1166 unwind label %1172

1166:                                             ; preds = %1163
  store ptr %1165, ptr %103, align 8, !tbaa !5
  %1167 = load ptr, ptr %103, align 8, !tbaa !5
  %1168 = icmp eq ptr %1167, null
  br i1 %1168, label %1169, label %1176

1169:                                             ; preds = %1166
  %1170 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1171 = getelementptr inbounds %class.PlanNode, ptr %1170, i32 0, i32 4
  store i32 3, ptr %1171, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %1279, !llvm.loop !44

1172:                                             ; preds = %1189, %1185, %1183, %1178, %1176, %1163
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %11, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %12, align 4
  br label %1280

1176:                                             ; preds = %1166
  %1177 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1178 unwind label %1172

1178:                                             ; preds = %1176
  %1179 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1177)
          to label %1180 unwind label %1172

1180:                                             ; preds = %1178
  %1181 = and i64 33554432, %1179
  %1182 = icmp ne i64 %1181, 0
  br i1 %1182, label %1183, label %1232

1183:                                             ; preds = %1180
  %1184 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1185 unwind label %1172

1185:                                             ; preds = %1183
  %1186 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1184)
          to label %1187 unwind label %1172

1187:                                             ; preds = %1185
  %1188 = icmp sle i32 0, %1186
  br i1 %1188, label %1189, label %1232

1189:                                             ; preds = %1187
  %1190 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1191 unwind label %1172

1191:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #8
  %1192 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %1193 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1192) #8
  %1194 = mul i64 %1193, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, i64 noundef %1194, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %1195 unwind label %1203

1195:                                             ; preds = %1191
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1196 unwind label %1207

1196:                                             ; preds = %1195
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.8)
          to label %1197 unwind label %1211

1197:                                             ; preds = %1196
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.47)
          to label %1198 unwind label %1215

1198:                                             ; preds = %1197
  %1199 = load ptr, ptr %103, align 8, !tbaa !5
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(24) %1199, i1 noundef zeroext false)
          to label %1200 unwind label %1219

1200:                                             ; preds = %1198
  %1201 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1190, ptr noundef nonnull align 8 dereferenceable(32) %104, i32 noundef 33554432, i32 noundef 0, ptr noundef %109)
          to label %1202 unwind label %1223

1202:                                             ; preds = %1200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  br label %1232

1203:                                             ; preds = %1191
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = extractvalue { ptr, i32 } %1204, 0
  store ptr %1205, ptr %11, align 8
  %1206 = extractvalue { ptr, i32 } %1204, 1
  store i32 %1206, ptr %12, align 4
  br label %1231

1207:                                             ; preds = %1195
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %11, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %12, align 4
  br label %1230

1211:                                             ; preds = %1196
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %11, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %12, align 4
  br label %1229

1215:                                             ; preds = %1197
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %11, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %12, align 4
  br label %1228

1219:                                             ; preds = %1198
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %11, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %12, align 4
  br label %1227

1223:                                             ; preds = %1200
  %1224 = landingpad { ptr, i32 }
          cleanup
  %1225 = extractvalue { ptr, i32 } %1224, 0
  store ptr %1225, ptr %11, align 8
  %1226 = extractvalue { ptr, i32 } %1224, 1
  store i32 %1226, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  br label %1227

1227:                                             ; preds = %1223, %1219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %1228

1228:                                             ; preds = %1227, %1215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  br label %1229

1229:                                             ; preds = %1228, %1211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  br label %1230

1230:                                             ; preds = %1229, %1207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %1231

1231:                                             ; preds = %1230, %1203
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  br label %1280

1232:                                             ; preds = %1202, %1187, %1180
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #8
  %1233 = load ptr, ptr %7, align 8, !tbaa !5
  %1234 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1235 = getelementptr inbounds %class.PlanNode, ptr %1234, i32 0, i32 6
  %1236 = getelementptr inbounds %"struct.std::pair", ptr %1235, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %111) #8
  %1237 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1238 = getelementptr inbounds %class.PlanNode, ptr %1237, i32 0, i32 6
  %1239 = getelementptr inbounds %"struct.std::pair", ptr %1238, i32 0, i32 0
  %1240 = load ptr, ptr %1239, align 8, !tbaa !50
  invoke void @_ZNK9HtnMethod5tasksEv(ptr dead_on_unwind writable sret(%"class.std::vector.0") align 8 %111, ptr noundef nonnull align 8 dereferenceable(80) %1240)
          to label %1241 unwind label %1255

1241:                                             ; preds = %1232
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.22") align 8 %110, ptr noundef %1233, ptr noundef nonnull align 8 dereferenceable(24) %1236, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %1242 unwind label %1259

1242:                                             ; preds = %1241
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #8
  %1243 = load ptr, ptr %7, align 8, !tbaa !5
  %1244 = load ptr, ptr %103, align 8, !tbaa !5
  %1245 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %110) #8
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.22") align 8 %112, ptr noundef %1243, ptr noundef nonnull align 8 dereferenceable(24) %1244, ptr noundef nonnull align 8 dereferenceable(24) %1245)
          to label %1246 unwind label %1264

1246:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #8
  %1247 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1248 = getelementptr inbounds %class.PlanNode, ptr %1247, i32 0, i32 12
  %1249 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1248) #8
  invoke void @_ZN10HtnRuleSet10CreateCopyEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.5") align 8 %113, ptr noundef nonnull align 8 dereferenceable(144) %1249)
          to label %1250 unwind label %1268

1250:                                             ; preds = %1246
  %1251 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1252 = load ptr, ptr %6, align 8, !tbaa !5
  %1253 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %112) #8
  invoke void @_ZN8PlanNode27SearchNextNodeBacktrackableEP9PlanStateRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EE21PlanNodeContinuePoint(ptr noundef nonnull align 8 dereferenceable(180) %1251, ptr noundef %1252, ptr noundef nonnull align 8 dereferenceable(24) %1253, i32 noundef 6)
          to label %1254 unwind label %1272

1254:                                             ; preds = %1250
  store i32 2, ptr %21, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #8
  br label %1279

1255:                                             ; preds = %1232
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %11, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %12, align 4
  br label %1263

1259:                                             ; preds = %1241
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %11, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %12, align 4
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #8
  br label %1263

1263:                                             ; preds = %1259, %1255
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #8
  br label %1278

1264:                                             ; preds = %1242
  %1265 = landingpad { ptr, i32 }
          cleanup
  %1266 = extractvalue { ptr, i32 } %1265, 0
  store ptr %1266, ptr %11, align 8
  %1267 = extractvalue { ptr, i32 } %1265, 1
  store i32 %1267, ptr %12, align 4
  br label %1277

1268:                                             ; preds = %1246
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %11, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %12, align 4
  br label %1276

1272:                                             ; preds = %1250
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %11, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %12, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #8
  br label %1276

1276:                                             ; preds = %1272, %1268
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  br label %1277

1277:                                             ; preds = %1276, %1264
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #8
  br label %1278

1278:                                             ; preds = %1277, %1263
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #8
  br label %1280

1279:                                             ; preds = %1254, %1169
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1392

1280:                                             ; preds = %1278, %1231, %1172
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1395

1281:                                             ; preds = %151
  %1282 = load ptr, ptr %9, align 8, !tbaa !5
  %1283 = load i8, ptr %1282, align 1, !tbaa !54, !range !47, !noundef !48
  %1284 = trunc i8 %1283 to i1
  %1285 = zext i1 %1284 to i32
  %1286 = icmp eq i32 %1285, 1
  br i1 %1286, label %1287, label %1290

1287:                                             ; preds = %1281
  %1288 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1289 = getelementptr inbounds %class.PlanNode, ptr %1288, i32 0, i32 7
  store i8 1, ptr %1289, align 8, !tbaa !46
  br label %1290

1290:                                             ; preds = %1287, %1281
  %1291 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1292 = getelementptr inbounds %class.PlanNode, ptr %1291, i32 0, i32 4
  store i32 4, ptr %1292, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

1293:                                             ; preds = %151
  %1294 = load ptr, ptr %6, align 8, !tbaa !5
  %1295 = load ptr, ptr %9, align 8, !tbaa !5
  %1296 = load i8, ptr %1295, align 1, !tbaa !54, !range !47, !noundef !48
  %1297 = trunc i8 %1296 to i1
  invoke void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %1294, i1 noundef zeroext %1297)
          to label %1298 unwind label %155

1298:                                             ; preds = %1293
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

1299:                                             ; preds = %151
  %1300 = load ptr, ptr %9, align 8, !tbaa !5
  %1301 = load i8, ptr %1300, align 1, !tbaa !54, !range !47, !noundef !48
  %1302 = trunc i8 %1301 to i1
  %1303 = zext i1 %1302 to i32
  %1304 = icmp eq i32 %1303, 0
  br i1 %1304, label %1305, label %1373

1305:                                             ; preds = %1299
  %1306 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1307 = getelementptr inbounds %class.PlanNode, ptr %1306, i32 0, i32 10
  %1308 = load i8, ptr %1307, align 8, !tbaa !55, !range !47, !noundef !48
  %1309 = trunc i8 %1308 to i1
  br i1 %1309, label %1310, label %1373

1310:                                             ; preds = %1305
  %1311 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1312 unwind label %155

1312:                                             ; preds = %1310
  %1313 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1311)
          to label %1314 unwind label %155

1314:                                             ; preds = %1312
  %1315 = and i64 33554432, %1313
  %1316 = icmp ne i64 %1315, 0
  br i1 %1316, label %1317, label %1370

1317:                                             ; preds = %1314
  %1318 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1319 unwind label %155

1319:                                             ; preds = %1317
  %1320 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1318)
          to label %1321 unwind label %155

1321:                                             ; preds = %1319
  %1322 = icmp sle i32 0, %1320
  br i1 %1322, label %1323, label %1370

1323:                                             ; preds = %1321
  %1324 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1325 unwind label %155

1325:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #8
  %1326 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  %1327 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1326) #8
  %1328 = mul i64 %1327, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, i64 noundef %1328, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %1329 unwind label %1341

1329:                                             ; preds = %1325
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1330 unwind label %1345

1330:                                             ; preds = %1329
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef @.str.48)
          to label %1331 unwind label %1349

1331:                                             ; preds = %1330
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.49)
          to label %1332 unwind label %1353

1332:                                             ; preds = %1331
  %1333 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1334 = getelementptr inbounds %class.PlanNode, ptr %1333, i32 0, i32 13
  %1335 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1334) #8
  %1336 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %1335)
          to label %1337 unwind label %1357

1337:                                             ; preds = %1332
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(24) %1336, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1338 unwind label %1357

1338:                                             ; preds = %1337
  %1339 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1324, ptr noundef nonnull align 8 dereferenceable(32) %114, i32 noundef 33554432, i32 noundef 0, ptr noundef %119)
          to label %1340 unwind label %1361

1340:                                             ; preds = %1338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %1370

1341:                                             ; preds = %1325
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %11, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %12, align 4
  br label %1369

1345:                                             ; preds = %1329
  %1346 = landingpad { ptr, i32 }
          cleanup
  %1347 = extractvalue { ptr, i32 } %1346, 0
  store ptr %1347, ptr %11, align 8
  %1348 = extractvalue { ptr, i32 } %1346, 1
  store i32 %1348, ptr %12, align 4
  br label %1368

1349:                                             ; preds = %1330
  %1350 = landingpad { ptr, i32 }
          cleanup
  %1351 = extractvalue { ptr, i32 } %1350, 0
  store ptr %1351, ptr %11, align 8
  %1352 = extractvalue { ptr, i32 } %1350, 1
  store i32 %1352, ptr %12, align 4
  br label %1367

1353:                                             ; preds = %1331
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %11, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %12, align 4
  br label %1366

1357:                                             ; preds = %1337, %1332
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %11, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %12, align 4
  br label %1365

1361:                                             ; preds = %1338
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %11, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  br label %1365

1365:                                             ; preds = %1361, %1357
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %1366

1366:                                             ; preds = %1365, %1353
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %1367

1367:                                             ; preds = %1366, %1349
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  br label %1368

1368:                                             ; preds = %1367, %1345
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %1369

1369:                                             ; preds = %1368, %1341
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %1395

1370:                                             ; preds = %1340, %1321, %1314
  %1371 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1372 = getelementptr inbounds %class.PlanNode, ptr %1371, i32 0, i32 4
  store i32 1, ptr %1372, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

1373:                                             ; preds = %1305, %1299
  %1374 = load ptr, ptr %6, align 8, !tbaa !5
  %1375 = load ptr, ptr %9, align 8, !tbaa !5
  %1376 = load i8, ptr %1375, align 1, !tbaa !54, !range !47, !noundef !48
  %1377 = trunc i8 %1376 to i1
  invoke void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %120, ptr noundef %1374, i1 noundef zeroext %1377)
          to label %1378 unwind label %155

1378:                                             ; preds = %1373
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

1379:                                             ; preds = %151
  %1380 = load ptr, ptr %9, align 8, !tbaa !5
  %1381 = load i8, ptr %1380, align 1, !tbaa !54, !range !47, !noundef !48
  %1382 = trunc i8 %1381 to i1
  %1383 = zext i1 %1382 to i32
  %1384 = icmp eq i32 %1383, 1
  br i1 %1384, label %1385, label %1388

1385:                                             ; preds = %1379
  %1386 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1387 = getelementptr inbounds %class.PlanNode, ptr %1386, i32 0, i32 7
  store i8 1, ptr %1387, align 8, !tbaa !46
  br label %1388

1388:                                             ; preds = %1385, %1379
  %1389 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  %1390 = getelementptr inbounds %class.PlanNode, ptr %1389, i32 0, i32 4
  store i32 3, ptr %1390, align 8, !tbaa !27
  store i32 2, ptr %21, align 4
  br label %1392, !llvm.loop !44

1391:                                             ; preds = %154, %151
  store i32 0, ptr %21, align 4
  br label %1392

1392:                                             ; preds = %1391, %1388, %1378, %1370, %1298, %1290, %1279, %1159, %693, %588, %525, %444, %439, %351, %279, %212
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  %1393 = load i32, ptr %21, align 4
  switch i32 %1393, label %1397 [
    i32 0, label %1394
    i32 2, label %134
  ]

1394:                                             ; preds = %1392
  br label %134, !llvm.loop !44

1395:                                             ; preds = %1369, %1280, %1160, %765, %674, %587, %522, %490, %434, %397, %352, %346, %280, %270, %213, %207, %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  br label %1398

1396:                                             ; preds = %134
  call void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #8
  store i32 1, ptr %21, align 4
  br label %1397

1397:                                             ; preds = %1396, %1392
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  ret void

1398:                                             ; preds = %1395, %147
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  br label %1399

1399:                                             ; preds = %1398
  %1400 = load ptr, ptr %11, align 8
  %1401 = load i32, ptr %12, align 4
  %1402 = insertvalue { ptr, i32 } poison, ptr %1400, 0
  %1403 = insertvalue { ptr, i32 } %1402, i32 %1401, 1
  resume { ptr, i32 } %1403
}

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

declare noundef double @_Z31HighPerformanceGetTimeInSecondsv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088), i1 noundef zeroext) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIlllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #4 align 2

declare void @_ZN7HtnTerm22ResolveArithmeticTermsEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

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

declare void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(80)) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS8_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

declare void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.19") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #6

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8PlanNode16SetNextConditionEv(ptr noundef nonnull align 8 dereferenceable(180)) #0 align 2

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

declare void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9HtnMethod5tasksEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.0") align 8, ptr noundef nonnull align 8 dereferenceable(80)) #4 align 2

declare void @_ZN10HtnRuleSet10CreateCopyEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.5") align 8, ptr noundef nonnull align 8 dereferenceable(144)) #6

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

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

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

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

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

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

!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, !6, i64 56}
!10 = !{!"_ZTS9PlanState", !11, i64 0, !12, i64 8, !15, i64 24, !11, i64 48, !6, i64 56, !19, i64 64, !20, i64 72, !22, i64 88, !19, i64 96, !11, i64 104, !23, i64 108, !24, i64 112}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !13, i64 0}
!13 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!14 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!15 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTSSt10shared_ptrI10HtnRuleSetE", !21, i64 0}
!21 = !{!"_ZTSSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!22 = !{!"double", !7, i64 0}
!23 = !{!"bool", !7, i64 0}
!24 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I8PlanNodeESaIS2_EEE", !25, i64 0}
!25 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!26 = !{!10, !22, i64 88}
!27 = !{!28, !31, i64 24}
!28 = !{!"_ZTS8PlanNode", !23, i64 0, !11, i64 4, !29, i64 8, !31, i64 24, !32, i64 32, !23, i64 64, !37, i64 72, !23, i64 88, !20, i64 96, !12, i64 112, !37, i64 128, !19, i64 144, !11, i64 152, !39, i64 160, !11, i64 176}
!29 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!31 = !{!"_ZTS21PlanNodeContinuePoint", !7, i64 0}
!32 = !{!"_ZTSSt4pairIP9HtnMethodSt6vectorIS_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEE", !6, i64 0, !33, i64 8}
!33 = !{!"_ZTSSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !38, i64 0}
!38 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!39 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !40, i64 0}
!40 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!41 = !{!31, !31, i64 0}
!42 = !{!7, !7, i64 0}
!43 = !{!10, !19, i64 96}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!28, !23, i64 64}
!47 = !{i8 0, i8 2}
!48 = !{}
!49 = !{!28, !23, i64 0}
!50 = !{!28, !6, i64 32}
!51 = distinct !{!51, !45}
!52 = !{!11, !11, i64 0}
!53 = !{!19, !19, i64 0}
!54 = !{!23, !23, i64 0}
!55 = !{!28, !23, i64 88}


; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.22" = type { %"class.std::__shared_ptr.23" }
%"class.std::__shared_ptr.23" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.16" = type { %"class.std::__shared_ptr.17" }
%"class.std::__shared_ptr.17" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator.28" = type { i8 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.19" = type { %"class.std::__shared_ptr.20" }
%"class.std::__shared_ptr.20" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@_ZN10HtnPlanner7m_abortE = external dso_local local_unnamed_addr global i8, align 1
@.str = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [33 x i8], align 1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9PlanState18CheckHighestMemoryElNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef, ptr noundef, i64 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i8 noundef signext, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

declare void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9PlanState13RecordFailureEiRSt6vectorISt10shared_ptrI7HtnTermESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

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

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

declare void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.22") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

declare void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(72), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #6

declare void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8PlanNode27SearchNextNodeBacktrackableEP9PlanStateRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EE21PlanNodeContinuePoint(ptr noundef nonnull align 8 dereferenceable(180), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner23FindAllMethodsThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.25") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::shared_ptr.8", align 8
  %5 = alloca %"class.std::shared_ptr.16", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.28", align 1
  %11 = alloca %"class.std::shared_ptr.16", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.28", align 1
  %17 = alloca %"class.std::shared_ptr.16", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.28", align 1
  %23 = alloca %"class.std::shared_ptr.16", align 8
  %24 = alloca %"class.std::shared_ptr", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.28", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::shared_ptr.25", align 8
  %33 = alloca %"class.std::shared_ptr", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.28", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.28", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.28", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator.28", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::shared_ptr.22", align 8
  %59 = alloca %"class.std::vector.0", align 8
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::shared_ptr.19", align 8
  %62 = alloca %"class.std::vector", align 8
  %63 = alloca %"class.std::shared_ptr.22", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator.28", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca i64, align 8
  %71 = alloca %"class.std::shared_ptr.19", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator.28", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator.28", align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator.28", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator.28", align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator.28", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::shared_ptr.22", align 8
  %99 = alloca %"class.std::vector.0", align 8
  %100 = alloca %"class.std::shared_ptr.22", align 8
  %101 = alloca %"class.std::shared_ptr.5", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator.28", align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = getelementptr inbounds i8, ptr %2, i64 56
  %109 = load ptr, ptr %108, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %2, i64 96
  %111 = getelementptr inbounds i8, ptr %2, i64 108
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %112 = getelementptr inbounds i8, ptr %2, i64 112
  call void @_ZNSt10shared_ptrISt6vectorIS_I8PlanNodeESaIS2_EEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  %113 = invoke noundef double @_Z31HighPerformanceGetTimeInSecondsv()
          to label %114 unwind label %126

114:                                              ; preds = %3
  %115 = getelementptr inbounds i8, ptr %2, i64 88
  store double %113, ptr %115, align 8, !tbaa !25
  %116 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %117 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %116) #8
  %.not249 = icmp eq i64 %117, 0
  br i1 %.not249, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %114
  %118 = getelementptr inbounds i8, ptr %1, i64 112
  br label %119

119:                                              ; preds = %.lr.ph, %952
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %120 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %121 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %121) #8
  %122 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %123 = getelementptr inbounds i8, ptr %122, i64 24
  %124 = load i32, ptr %123, align 8, !tbaa !26
  %125 = load i8, ptr @_ZN10HtnPlanner7m_abortE, align 1, !tbaa !40
  %.not134 = icmp eq i8 %125, 0
  %spec.store.select = select i1 %.not134, i32 %124, i32 9
  switch i32 %spec.store.select, label %952 [
    i32 0, label %128
    i32 9, label %129
    i32 5, label %167
    i32 1, label %209
    i32 3, label %419
    i32 4, label %797
    i32 6, label %876
    i32 2, label %885
    i32 7, label %888
    i32 8, label %943
  ]

126:                                              ; preds = %3
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %957

128:                                              ; preds = %119
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef nonnull %1, i1 noundef zeroext false, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 708)
          to label %952 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %477
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %955

.loopexit.split-lp:                               ; preds = %128, %209, %311, %314, %419
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %955

129:                                              ; preds = %119
  %130 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %131 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %130)
  %132 = and i64 %131, 33554432
  %.not238 = icmp eq i64 %132, 0
  br i1 %.not238, label %162, label %133

133:                                              ; preds = %129
  %134 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %135 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %134)
  %136 = icmp sgt i32 %135, -1
  br i1 %136, label %137, label %162

137:                                              ; preds = %133
  %138 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  %139 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %140 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %139) #8
  %141 = mul i64 %140, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %141, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %142 unwind label %148

142:                                              ; preds = %137
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %143 unwind label %150

143:                                              ; preds = %142
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.29)
          to label %144 unwind label %152

144:                                              ; preds = %143
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.30)
          to label %145 unwind label %154

145:                                              ; preds = %144
  %146 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %138, ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 33554432, i32 noundef 0)
          to label %147 unwind label %156

147:                                              ; preds = %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %162

148:                                              ; preds = %137
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %161

150:                                              ; preds = %142
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %160

152:                                              ; preds = %143
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %159

154:                                              ; preds = %144
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %158

156:                                              ; preds = %145
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  br label %158

158:                                              ; preds = %156, %154
  %.pn239 = phi { ptr, i32 } [ %157, %156 ], [ %155, %154 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %159

159:                                              ; preds = %158, %152
  %.pn239.pn = phi { ptr, i32 } [ %.pn239, %158 ], [ %153, %152 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %160

160:                                              ; preds = %159, %150
  %.pn239.pn.pn = phi { ptr, i32 } [ %.pn239.pn, %159 ], [ %151, %150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %161

161:                                              ; preds = %160, %148
  %.pn239.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn, %160 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %955

162:                                              ; preds = %147, %133, %129
  %163 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %164 = getelementptr inbounds i8, ptr %163, i64 24
  store i32 0, ptr %164, align 8, !tbaa !26
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, ptr noundef nonnull %11)
          to label %.thread247 unwind label %165

165:                                              ; preds = %162
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #8
  br label %955

167:                                              ; preds = %119
  %168 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %169 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %168)
  %170 = and i64 %169, 33554432
  %.not232 = icmp eq i64 %170, 0
  br i1 %.not232, label %202, label %171

171:                                              ; preds = %167
  %172 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %173 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %172)
  %174 = icmp sgt i32 %173, -1
  br i1 %174, label %175, label %202

175:                                              ; preds = %171
  %176 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  %177 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %178 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %177) #8
  %179 = mul i64 %178, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef %179, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %180 unwind label %188

180:                                              ; preds = %175
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %181 unwind label %190

181:                                              ; preds = %180
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.29)
          to label %182 unwind label %192

182:                                              ; preds = %181
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.31)
          to label %183 unwind label %194

183:                                              ; preds = %182
  %184 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %2)
          to label %185 unwind label %196

185:                                              ; preds = %183
  %186 = invoke noundef double @_ZN9NanoTrace5TraceIllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %176, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 33554432, i32 noundef 0, i64 noundef %184, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %187 unwind label %196

187:                                              ; preds = %185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %202

188:                                              ; preds = %175
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %201

190:                                              ; preds = %180
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %200

192:                                              ; preds = %181
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %199

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

196:                                              ; preds = %185, %183
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %198

198:                                              ; preds = %196, %194
  %.pn233 = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %199

199:                                              ; preds = %198, %192
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %198 ], [ %193, %192 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %200

200:                                              ; preds = %199, %190
  %.pn233.pn.pn = phi { ptr, i32 } [ %.pn233.pn, %199 ], [ %191, %190 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %201

201:                                              ; preds = %200, %188
  %.pn233.pn.pn.pn = phi { ptr, i32 } [ %.pn233.pn.pn, %200 ], [ %189, %188 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %955

202:                                              ; preds = %187, %171, %167
  %203 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %204 = getelementptr inbounds i8, ptr %203, i64 24
  store i32 1, ptr %204, align 8, !tbaa !26
  call void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088) %109, i1 noundef zeroext true)
  %205 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %206 = getelementptr inbounds i8, ptr %205, i64 24
  store i32 0, ptr %206, align 8, !tbaa !26
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, ptr noundef nonnull %17)
          to label %.thread247 unwind label %207

207:                                              ; preds = %202
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  br label %955

209:                                              ; preds = %119
  %210 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZN8PlanNode11SetNodeTaskEv(ptr noundef nonnull align 8 dereferenceable(180) %210)
          to label %211 unwind label %.loopexit.split-lp

211:                                              ; preds = %209
  %212 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %213 = getelementptr inbounds i8, ptr %212, i64 112
  %214 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %213, ptr null) #8
  br i1 %214, label %215, label %255

215:                                              ; preds = %211
  %216 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %217 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %216)
  %218 = and i64 %217, 33554432
  %.not226 = icmp eq i64 %218, 0
  br i1 %.not226, label %252, label %219

219:                                              ; preds = %215
  %220 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %221 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %220)
  %222 = icmp sgt i32 %221, -1
  br i1 %222, label %223, label %252

223:                                              ; preds = %219
  %224 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  %225 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %226 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #8
  %227 = mul i64 %226, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, i64 noundef %227, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %228 unwind label %238

228:                                              ; preds = %223
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %229 unwind label %240

229:                                              ; preds = %228
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.32)
          to label %230 unwind label %242

230:                                              ; preds = %229
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.33)
          to label %231 unwind label %244

231:                                              ; preds = %230
  %232 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %2)
          to label %233 unwind label %246

233:                                              ; preds = %231
  %234 = getelementptr inbounds i8, ptr %2, i64 64
  %235 = load i64, ptr %110, align 8, !tbaa !41
  %236 = invoke noundef double @_ZN9NanoTrace5TraceIlllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %224, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 33554432, i32 noundef 0, i64 noundef %232, ptr noundef nonnull align 8 dereferenceable(8) %234, i64 noundef %235)
          to label %237 unwind label %246

237:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %252

238:                                              ; preds = %223
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %251

240:                                              ; preds = %228
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %250

242:                                              ; preds = %229
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %249

244:                                              ; preds = %230
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %248

246:                                              ; preds = %233, %231
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %248

248:                                              ; preds = %246, %244
  %.pn227 = phi { ptr, i32 } [ %247, %246 ], [ %245, %244 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %249

249:                                              ; preds = %248, %242
  %.pn227.pn = phi { ptr, i32 } [ %.pn227, %248 ], [ %243, %242 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %250

250:                                              ; preds = %249, %240
  %.pn227.pn.pn = phi { ptr, i32 } [ %.pn227.pn, %249 ], [ %241, %240 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %251

251:                                              ; preds = %250, %238
  %.pn227.pn.pn.pn = phi { ptr, i32 } [ %.pn227.pn.pn, %250 ], [ %239, %238 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %955

252:                                              ; preds = %237, %219, %215
  call void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, i1 noundef zeroext true)
  call void @_ZNSt10shared_ptrI8PlanNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  invoke void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, ptr noundef nonnull %23)
          to label %.thread247 unwind label %253

253:                                              ; preds = %252
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %955

255:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  %256 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %257 = getelementptr inbounds i8, ptr %256, i64 112
  %258 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %257) #8
  invoke void @_ZN7HtnTerm22ResolveArithmeticTermsEP14HtnTermFactory(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr") align 8 %24, ptr noundef nonnull align 8 dereferenceable(72) %258, ptr noundef %109)
          to label %259 unwind label %289

259:                                              ; preds = %255
  %260 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %261 = getelementptr inbounds i8, ptr %260, i64 112
  %262 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %261, ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  %263 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %264 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %263)
  %265 = and i64 %264, 33554432
  %.not204 = icmp eq i64 %265, 0
  br i1 %.not204, label %311, label %266

266:                                              ; preds = %259
  %267 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %268 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %267)
  %269 = icmp sgt i32 %268, -1
  br i1 %269, label %270, label %311

270:                                              ; preds = %266
  %271 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  %272 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %273 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %272) #8
  %274 = mul i64 %273, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef %274, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %275 unwind label %291

275:                                              ; preds = %270
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %276 unwind label %293

276:                                              ; preds = %275
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.34)
          to label %277 unwind label %295

277:                                              ; preds = %276
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.35)
          to label %278 unwind label %297

278:                                              ; preds = %277
  %279 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %280 = getelementptr inbounds i8, ptr %279, i64 112
  %281 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %280) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(72) %281, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %282 unwind label %299

282:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  %283 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %284 = getelementptr inbounds i8, ptr %283, i64 128
  %285 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %284) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(24) %285, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %286 unwind label %301

286:                                              ; preds = %282
  %287 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %271, ptr noundef nonnull align 8 dereferenceable(32) %25, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %288 unwind label %303

288:                                              ; preds = %286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %311

289:                                              ; preds = %255
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  br label %955

291:                                              ; preds = %270
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %310

293:                                              ; preds = %275
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %309

295:                                              ; preds = %276
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %308

297:                                              ; preds = %277
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %307

299:                                              ; preds = %278
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %306

301:                                              ; preds = %282
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %305

303:                                              ; preds = %286
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %305

305:                                              ; preds = %303, %301
  %.pn205 = phi { ptr, i32 } [ %304, %303 ], [ %302, %301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %306

306:                                              ; preds = %305, %299
  %.pn205.pn = phi { ptr, i32 } [ %.pn205, %305 ], [ %300, %299 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %307

307:                                              ; preds = %306, %297
  %.pn205.pn.pn = phi { ptr, i32 } [ %.pn205.pn, %306 ], [ %298, %297 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %308

308:                                              ; preds = %307, %295
  %.pn205.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn, %307 ], [ %296, %295 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %309

309:                                              ; preds = %308, %293
  %.pn205.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn.pn, %308 ], [ %294, %293 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %310

310:                                              ; preds = %309, %291
  %.pn205.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn.pn.pn, %309 ], [ %292, %291 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %955

311:                                              ; preds = %288, %266, %259
  %312 = invoke noundef zeroext i1 @_ZN10HtnPlanner16CheckForOperatorEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2)
          to label %313 unwind label %.loopexit.split-lp

313:                                              ; preds = %311
  br i1 %312, label %952, label %314, !llvm.loop !42

314:                                              ; preds = %313
  %315 = invoke noundef zeroext i1 @_ZN10HtnPlanner19CheckForSpecialTaskEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2)
          to label %316 unwind label %.loopexit.split-lp

316:                                              ; preds = %314
  br i1 %315, label %952, label %317, !llvm.loop !42

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  %318 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %319 = getelementptr inbounds i8, ptr %318, i64 96
  %320 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %319) #8
  %321 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %322 = getelementptr inbounds i8, ptr %321, i64 112
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %322) #8
  invoke void @_ZN10HtnPlanner23FindAllMethodsThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.25") align 8 %32, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %109, ptr noundef %320, ptr noundef nonnull %33)
          to label %323 unwind label %355

323:                                              ; preds = %317
  %324 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %325 = getelementptr inbounds i8, ptr %324, i64 160
  %326 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  %327 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %328 = getelementptr inbounds i8, ptr %327, i64 160
  %329 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %328) #8
  %330 = call noundef i64 @_ZNKSt6vectorISt4pairIP9HtnMethodS_IS0_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %329) #8
  %331 = icmp eq i64 %330, 0
  %332 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %333 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %332)
  %334 = and i64 %333, 33554432
  %.not219 = icmp eq i64 %334, 0
  br i1 %331, label %335, label %375

335:                                              ; preds = %323
  br i1 %.not219, label %374, label %336

336:                                              ; preds = %335
  %337 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %338 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %337)
  %339 = icmp sgt i32 %338, -1
  br i1 %339, label %340, label %374

340:                                              ; preds = %336
  %341 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  %342 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %343 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %342) #8
  %344 = mul i64 %343, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, i64 noundef %344, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %345 unwind label %357

345:                                              ; preds = %340
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %346 unwind label %359

346:                                              ; preds = %345
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.10)
          to label %347 unwind label %361

347:                                              ; preds = %346
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.36)
          to label %348 unwind label %363

348:                                              ; preds = %347
  %349 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %350 = getelementptr inbounds i8, ptr %349, i64 112
  %351 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %350) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(72) %351, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %352 unwind label %365

352:                                              ; preds = %348
  %353 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %341, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %39)
          to label %354 unwind label %367

354:                                              ; preds = %352
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %374

355:                                              ; preds = %317
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %955

357:                                              ; preds = %340
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %373

359:                                              ; preds = %345
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %372

361:                                              ; preds = %346
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %371

363:                                              ; preds = %347
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %370

365:                                              ; preds = %348
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %369

367:                                              ; preds = %352
  %368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %369

369:                                              ; preds = %367, %365
  %.pn220 = phi { ptr, i32 } [ %368, %367 ], [ %366, %365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %370

370:                                              ; preds = %369, %363
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %369 ], [ %364, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %371

371:                                              ; preds = %370, %361
  %.pn220.pn.pn = phi { ptr, i32 } [ %.pn220.pn, %370 ], [ %362, %361 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %372

372:                                              ; preds = %371, %359
  %.pn220.pn.pn.pn = phi { ptr, i32 } [ %.pn220.pn.pn, %371 ], [ %360, %359 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %373

373:                                              ; preds = %372, %357
  %.pn220.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn220.pn.pn.pn, %372 ], [ %358, %357 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %955

374:                                              ; preds = %354, %336, %335
  call void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, i1 noundef zeroext false)
  br label %952, !llvm.loop !42

375:                                              ; preds = %323
  br i1 %.not219, label %416, label %376

376:                                              ; preds = %375
  %377 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %378 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %377)
  %379 = icmp sgt i32 %378, -1
  br i1 %379, label %380, label %416

380:                                              ; preds = %376
  %381 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  %382 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %383 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #8
  %384 = mul i64 %383, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, i64 noundef %384, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %385 unwind label %399

385:                                              ; preds = %380
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %386 unwind label %401

386:                                              ; preds = %385
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.8)
          to label %387 unwind label %403

387:                                              ; preds = %386
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.37)
          to label %388 unwind label %405

388:                                              ; preds = %387
  %389 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %390 = getelementptr inbounds i8, ptr %389, i64 160
  %391 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %390) #8
  %392 = call noundef i64 @_ZNKSt6vectorISt4pairIP9HtnMethodS_IS0_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %391) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  %393 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %394 = getelementptr inbounds i8, ptr %393, i64 112
  %395 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %394) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(72) %395, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %396 unwind label %407

396:                                              ; preds = %388
  %397 = invoke noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %381, ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 33554432, i32 noundef 0, i64 noundef %392, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %398 unwind label %409

398:                                              ; preds = %396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %416

399:                                              ; preds = %380
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %415

401:                                              ; preds = %385
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %414

403:                                              ; preds = %386
  %404 = landingpad { ptr, i32 }
          cleanup
  br label %413

405:                                              ; preds = %387
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %412

407:                                              ; preds = %388
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %411

409:                                              ; preds = %396
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %411

411:                                              ; preds = %409, %407
  %.pn213 = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %412

412:                                              ; preds = %411, %405
  %.pn213.pn = phi { ptr, i32 } [ %.pn213, %411 ], [ %406, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %413

413:                                              ; preds = %412, %403
  %.pn213.pn.pn = phi { ptr, i32 } [ %.pn213.pn, %412 ], [ %404, %403 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %414

414:                                              ; preds = %413, %401
  %.pn213.pn.pn.pn = phi { ptr, i32 } [ %.pn213.pn.pn, %413 ], [ %402, %401 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %415

415:                                              ; preds = %414, %399
  %.pn213.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn213.pn.pn.pn, %414 ], [ %400, %399 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %955

416:                                              ; preds = %398, %376, %375
  %417 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %418 = getelementptr inbounds i8, ptr %417, i64 24
  store i32 3, ptr %418, align 8, !tbaa !26
  br label %952, !llvm.loop !42

419:                                              ; preds = %119
  %420 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZN8PlanNode24SetNextMethodThatUnifiesEv(ptr noundef nonnull align 8 dereferenceable(180) %420)
          to label %421 unwind label %.loopexit.split-lp

421:                                              ; preds = %419
  %422 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %423 = getelementptr inbounds i8, ptr %422, i64 64
  %424 = load i8, ptr %423, align 8, !tbaa !44, !range !45, !noundef !46
  %425 = trunc nuw i8 %424 to i1
  br i1 %425, label %426, label %481

426:                                              ; preds = %421
  %427 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  store i8 1, ptr %427, align 8, !tbaa !47
  br label %428

428:                                              ; preds = %477, %426
  %429 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %430 = getelementptr inbounds i8, ptr %429, i64 32
  %431 = load ptr, ptr %430, align 8, !tbaa !48
  %.not155 = icmp eq ptr %431, null
  br i1 %.not155, label %.critedge, label %432

432:                                              ; preds = %428
  %433 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %434 = getelementptr inbounds i8, ptr %433, i64 32
  %435 = load ptr, ptr %434, align 8, !tbaa !48
  %436 = call noundef zeroext i1 @_ZNK9HtnMethod9isDefaultEv(ptr noundef nonnull align 8 dereferenceable(80) %435)
  br i1 %436, label %437, label %.critedge

437:                                              ; preds = %432
  %438 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %439 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %438)
  %440 = and i64 %439, 33554432
  %.not197 = icmp eq i64 %440, 0
  br i1 %.not197, label %477, label %441

441:                                              ; preds = %437
  %442 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %443 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %442)
  %444 = icmp sgt i32 %443, -1
  br i1 %444, label %445, label %477

445:                                              ; preds = %441
  %446 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  %447 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %448 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %447) #8
  %449 = mul i64 %448, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef %449, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %450 unwind label %460

450:                                              ; preds = %445
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %451 unwind label %462

451:                                              ; preds = %450
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.8)
          to label %452 unwind label %464

452:                                              ; preds = %451
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.38)
          to label %453 unwind label %466

453:                                              ; preds = %452
  %454 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %455 = getelementptr inbounds i8, ptr %454, i64 32
  %456 = load ptr, ptr %455, align 8, !tbaa !48
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(80) %456)
          to label %457 unwind label %468

457:                                              ; preds = %453
  %458 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %446, ptr noundef nonnull align 8 dereferenceable(32) %46, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %51)
          to label %459 unwind label %470

459:                                              ; preds = %457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %477

460:                                              ; preds = %445
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %476

462:                                              ; preds = %450
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %475

464:                                              ; preds = %451
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %474

466:                                              ; preds = %452
  %467 = landingpad { ptr, i32 }
          cleanup
  br label %473

468:                                              ; preds = %453
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %472

470:                                              ; preds = %457
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %472

472:                                              ; preds = %470, %468
  %.pn198 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %473

473:                                              ; preds = %472, %466
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %472 ], [ %467, %466 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %474

474:                                              ; preds = %473, %464
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %473 ], [ %465, %464 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %475

475:                                              ; preds = %474, %462
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %474 ], [ %463, %462 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %476

476:                                              ; preds = %475, %460
  %.pn198.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn, %475 ], [ %461, %460 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %955

477:                                              ; preds = %459, %441, %437
  %478 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZN8PlanNode24SetNextMethodThatUnifiesEv(ptr noundef nonnull align 8 dereferenceable(180) %478)
          to label %428 unwind label %.loopexit, !llvm.loop !49

.critedge:                                        ; preds = %428, %432
  %479 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %480 = getelementptr inbounds i8, ptr %479, i64 64
  store i8 0, ptr %480, align 8, !tbaa !44
  br label %481

481:                                              ; preds = %.critedge, %421
  %482 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %483 = getelementptr inbounds i8, ptr %482, i64 32
  %484 = load ptr, ptr %483, align 8, !tbaa !48
  %485 = icmp eq ptr %484, null
  br i1 %485, label %486, label %490

486:                                              ; preds = %481
  %487 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %488 = load i8, ptr %487, align 8, !tbaa !47, !range !45, !noundef !46
  %489 = trunc nuw i8 %488 to i1
  call void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, i1 noundef zeroext %489)
  br label %952, !llvm.loop !42

490:                                              ; preds = %481
  %491 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %492 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %491)
  %493 = and i64 %492, 33554432
  %.not156 = icmp eq i64 %493, 0
  br i1 %.not156, label %535, label %494

494:                                              ; preds = %490
  %495 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %496 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %495)
  %497 = icmp sgt i32 %496, -1
  br i1 %497, label %498, label %535

498:                                              ; preds = %494
  %499 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  %500 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %501 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %500) #8
  %502 = mul i64 %501, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef %502, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %503 unwind label %518

503:                                              ; preds = %498
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %504 unwind label %520

504:                                              ; preds = %503
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.39)
          to label %505 unwind label %522

505:                                              ; preds = %504
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.40)
          to label %506 unwind label %524

506:                                              ; preds = %505
  %507 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %508 = getelementptr inbounds i8, ptr %507, i64 32
  %509 = load ptr, ptr %508, align 8, !tbaa !48
  %510 = call noundef zeroext i1 @_ZNK9HtnMethod9isDefaultEv(ptr noundef nonnull align 8 dereferenceable(80) %509)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  %511 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %512 = getelementptr inbounds i8, ptr %511, i64 32
  %513 = load ptr, ptr %512, align 8, !tbaa !48
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(80) %513)
          to label %514 unwind label %526

514:                                              ; preds = %506
  %515 = select i1 %510, ptr @.str.41, ptr @.str.15
  %516 = invoke noundef double @_ZN9NanoTrace5TraceIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS8_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %499, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %515, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %517 unwind label %528

517:                                              ; preds = %514
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  br label %535

518:                                              ; preds = %498
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %534

520:                                              ; preds = %503
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %533

522:                                              ; preds = %504
  %523 = landingpad { ptr, i32 }
          cleanup
  br label %532

524:                                              ; preds = %505
  %525 = landingpad { ptr, i32 }
          cleanup
  br label %531

526:                                              ; preds = %506
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %530

528:                                              ; preds = %514
  %529 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %530

530:                                              ; preds = %528, %526
  %.pn157 = phi { ptr, i32 } [ %529, %528 ], [ %527, %526 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %531

531:                                              ; preds = %530, %524
  %.pn157.pn = phi { ptr, i32 } [ %.pn157, %530 ], [ %525, %524 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %532

532:                                              ; preds = %531, %522
  %.pn157.pn.pn = phi { ptr, i32 } [ %.pn157.pn, %531 ], [ %523, %522 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %533

533:                                              ; preds = %532, %520
  %.pn157.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn, %532 ], [ %521, %520 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %534

534:                                              ; preds = %533, %518
  %.pn157.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn157.pn.pn.pn, %533 ], [ %519, %518 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  br label %955

535:                                              ; preds = %517, %494, %490
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #8
  store i32 -1, ptr %60, align 4, !tbaa !50
  %536 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %537 = getelementptr inbounds i8, ptr %536, i64 32
  %538 = load ptr, ptr %537, align 8, !tbaa !48
  %539 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9HtnMethod9conditionEv(ptr noundef nonnull align 8 dereferenceable(80) %538)
  %540 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %539) #8
  %541 = icmp eq i64 %540, 0
  br i1 %541, label %542, label %559

542:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #8
  %543 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %544 unwind label %555

544:                                              ; preds = %542
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %543, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %543) #8
  invoke void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2IS8_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull %543)
          to label %545 unwind label %555

545:                                              ; preds = %544
  %546 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %547 = getelementptr inbounds i8, ptr %546, i64 8
  %548 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %547, ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  %549 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %550 = getelementptr inbounds i8, ptr %549, i64 8
  %551 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %550) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #8
  invoke void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %551, ptr noundef nonnull align 8 dereferenceable(24) %62)
          to label %552 unwind label %557

552:                                              ; preds = %545
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #8
  br label %645

553:                                              ; preds = %794, %793, %786, %727
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %796

555:                                              ; preds = %544, %542
  %556 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %796

557:                                              ; preds = %545
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #8
  br label %796

559:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #8
  %560 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %561 = getelementptr inbounds i8, ptr %560, i64 40
  %562 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %563 = getelementptr inbounds i8, ptr %562, i64 32
  %564 = load ptr, ptr %563, align 8, !tbaa !48
  %565 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9HtnMethod9conditionEv(ptr noundef nonnull align 8 dereferenceable(80) %564)
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.22") align 8 %63, ptr noundef %109, ptr noundef nonnull align 8 dereferenceable(24) %561, ptr noundef nonnull align 8 dereferenceable(24) %565)
          to label %566 unwind label %588

566:                                              ; preds = %559
  %567 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %63) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #8
  %568 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %569 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %568)
  %570 = and i64 %569, 33554432
  %.not163 = icmp eq i64 %570, 0
  br i1 %.not163, label %607, label %571

571:                                              ; preds = %566
  %572 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %573 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %572)
  %574 = icmp sgt i32 %573, -1
  br i1 %574, label %575, label %607

575:                                              ; preds = %571
  %576 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  %577 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %578 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %577) #8
  %579 = mul i64 %578, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, i64 noundef %579, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %580 unwind label %590

580:                                              ; preds = %575
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %581 unwind label %592

581:                                              ; preds = %580
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.8)
          to label %582 unwind label %594

582:                                              ; preds = %581
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.42)
          to label %583 unwind label %596

583:                                              ; preds = %582
  %584 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(24) %584, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %585 unwind label %598

585:                                              ; preds = %583
  %586 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %576, ptr noundef nonnull align 8 dereferenceable(32) %64, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %69)
          to label %587 unwind label %600

587:                                              ; preds = %585
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  br label %607

588:                                              ; preds = %559
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #8
  br label %796

590:                                              ; preds = %575
  %591 = landingpad { ptr, i32 }
          cleanup
  br label %606

592:                                              ; preds = %580
  %593 = landingpad { ptr, i32 }
          cleanup
  br label %605

594:                                              ; preds = %581
  %595 = landingpad { ptr, i32 }
          cleanup
  br label %604

596:                                              ; preds = %582
  %597 = landingpad { ptr, i32 }
          cleanup
  br label %603

598:                                              ; preds = %583
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %602

600:                                              ; preds = %585
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %602

602:                                              ; preds = %600, %598
  %.pn164 = phi { ptr, i32 } [ %601, %600 ], [ %599, %598 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %603

603:                                              ; preds = %602, %596
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %602 ], [ %597, %596 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %604

604:                                              ; preds = %603, %594
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %603 ], [ %595, %594 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %605

605:                                              ; preds = %604, %592
  %.pn164.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn, %604 ], [ %593, %592 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %606

606:                                              ; preds = %605, %590
  %.pn164.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn.pn, %605 ], [ %591, %590 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  br label %796

607:                                              ; preds = %587, %571, %566
  %608 = invoke noundef i64 @_ZN9PlanState11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(128) %2)
          to label %609 unwind label %634

609:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #8
  store i64 0, ptr %70, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #8
  %610 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  %611 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %612 = getelementptr inbounds i8, ptr %611, i64 96
  %613 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %612) #8
  %614 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  %615 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %616 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %615) #8
  %617 = trunc i64 %616 to i32
  %618 = add i32 %617, 1
  %619 = load i64, ptr %110, align 8, !tbaa !51
  %620 = sub nsw i64 %619, %608
  %621 = trunc i64 %620 to i32
  invoke void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.19") align 8 %71, ptr noundef nonnull align 8 dereferenceable(64) %610, ptr noundef %109, ptr noundef %613, ptr noundef nonnull align 8 dereferenceable(24) %614, i32 noundef %618, i32 noundef %621, ptr noundef nonnull %70, ptr noundef nonnull %60, ptr noundef nonnull %59)
          to label %622 unwind label %636

622:                                              ; preds = %609
  %623 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %624 = getelementptr inbounds i8, ptr %623, i64 8
  %625 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %624, ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  %626 = load i64, ptr %70, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %627 unwind label %638

627:                                              ; preds = %622
  %628 = add nsw i64 %626, %608
  %629 = load i64, ptr %70, align 8, !tbaa !51
  invoke void @_ZN9PlanState18CheckHighestMemoryElNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(128) %2, i64 noundef %628, ptr noundef nonnull %72, i64 noundef %629)
          to label %630 unwind label %640

630:                                              ; preds = %627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #8
  %631 = call noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %109)
  br i1 %631, label %.thread, label %643

.thread:                                          ; preds = %630
  %632 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %633 = getelementptr inbounds i8, ptr %632, i64 24
  store i32 5, ptr %633, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  br label %795

634:                                              ; preds = %607
  %635 = landingpad { ptr, i32 }
          cleanup
  br label %796

636:                                              ; preds = %609
  %637 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  br label %644

638:                                              ; preds = %622
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %642

640:                                              ; preds = %627
  %641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %642

642:                                              ; preds = %640, %638
  %.pn170 = phi { ptr, i32 } [ %641, %640 ], [ %639, %638 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #8
  br label %644

643:                                              ; preds = %630
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  br label %645

644:                                              ; preds = %642, %636
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %642 ], [ %637, %636 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  br label %796

645:                                              ; preds = %643, %552
  %646 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %647 = getelementptr inbounds i8, ptr %646, i64 8
  %648 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %647, ptr null) #8
  %649 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %650 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %649)
  %651 = and i64 %650, 33554432
  %.not181 = icmp eq i64 %651, 0
  br i1 %648, label %652, label %731

652:                                              ; preds = %645
  br i1 %.not181, label %689, label %653

653:                                              ; preds = %652
  %654 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %655 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %654)
  %656 = icmp sgt i32 %655, -1
  br i1 %656, label %657, label %689

657:                                              ; preds = %653
  %658 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #8
  %659 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %660 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %659) #8
  %661 = mul i64 %660, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, i64 noundef %661, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %662 unwind label %672

662:                                              ; preds = %657
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %663 unwind label %674

663:                                              ; preds = %662
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.10)
          to label %664 unwind label %676

664:                                              ; preds = %663
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.44)
          to label %665 unwind label %678

665:                                              ; preds = %664
  %666 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %667 = getelementptr inbounds i8, ptr %666, i64 32
  %668 = load ptr, ptr %667, align 8, !tbaa !48
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(80) %668)
          to label %669 unwind label %680

669:                                              ; preds = %665
  %670 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %658, ptr noundef nonnull align 8 dereferenceable(32) %74, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %79)
          to label %671 unwind label %682

671:                                              ; preds = %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %689

672:                                              ; preds = %657
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %688

674:                                              ; preds = %662
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %687

676:                                              ; preds = %663
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %686

678:                                              ; preds = %664
  %679 = landingpad { ptr, i32 }
          cleanup
  br label %685

680:                                              ; preds = %665
  %681 = landingpad { ptr, i32 }
          cleanup
  br label %684

682:                                              ; preds = %669
  %683 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %684

684:                                              ; preds = %682, %680
  %.pn182 = phi { ptr, i32 } [ %683, %682 ], [ %681, %680 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %685

685:                                              ; preds = %684, %678
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %684 ], [ %679, %678 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %686

686:                                              ; preds = %685, %676
  %.pn182.pn.pn = phi { ptr, i32 } [ %.pn182.pn, %685 ], [ %677, %676 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %687

687:                                              ; preds = %686, %674
  %.pn182.pn.pn.pn = phi { ptr, i32 } [ %.pn182.pn.pn, %686 ], [ %675, %674 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %688

688:                                              ; preds = %687, %672
  %.pn182.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn182.pn.pn.pn, %687 ], [ %673, %672 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %796

689:                                              ; preds = %671, %653, %652
  %690 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %691 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %690)
  %692 = and i64 %691, 33554432
  %.not188 = icmp eq i64 %692, 0
  br i1 %.not188, label %727, label %693

693:                                              ; preds = %689
  %694 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %695 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %694)
  %696 = icmp sgt i32 %695, -1
  br i1 %696, label %697, label %727

697:                                              ; preds = %693
  %698 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #8
  %699 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %700 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %699) #8
  %701 = mul i64 %700, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, i64 noundef %701, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %702 unwind label %710

702:                                              ; preds = %697
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %703 unwind label %712

703:                                              ; preds = %702
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.8)
          to label %704 unwind label %714

704:                                              ; preds = %703
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.45)
          to label %705 unwind label %716

705:                                              ; preds = %704
  %706 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(24) %706, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %707 unwind label %718

707:                                              ; preds = %705
  %708 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %698, ptr noundef nonnull align 8 dereferenceable(32) %80, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %85)
          to label %709 unwind label %720

709:                                              ; preds = %707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  br label %727

710:                                              ; preds = %697
  %711 = landingpad { ptr, i32 }
          cleanup
  br label %726

712:                                              ; preds = %702
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %725

714:                                              ; preds = %703
  %715 = landingpad { ptr, i32 }
          cleanup
  br label %724

716:                                              ; preds = %704
  %717 = landingpad { ptr, i32 }
          cleanup
  br label %723

718:                                              ; preds = %705
  %719 = landingpad { ptr, i32 }
          cleanup
  br label %722

720:                                              ; preds = %707
  %721 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %722

722:                                              ; preds = %720, %718
  %.pn189 = phi { ptr, i32 } [ %721, %720 ], [ %719, %718 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %723

723:                                              ; preds = %722, %716
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %722 ], [ %717, %716 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %724

724:                                              ; preds = %723, %714
  %.pn189.pn.pn = phi { ptr, i32 } [ %.pn189.pn, %723 ], [ %715, %714 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %725

725:                                              ; preds = %724, %712
  %.pn189.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn, %724 ], [ %713, %712 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %726

726:                                              ; preds = %725, %710
  %.pn189.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn, %725 ], [ %711, %710 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  br label %796

727:                                              ; preds = %709, %693, %689
  %728 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %729 = getelementptr inbounds i8, ptr %728, i64 24
  store i32 3, ptr %729, align 8, !tbaa !26
  %730 = load i32, ptr %60, align 4, !tbaa !50
  invoke void @_ZN9PlanState13RecordFailureEiRSt6vectorISt10shared_ptrI7HtnTermESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(128) %2, i32 noundef %730, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %795 unwind label %553, !llvm.loop !42

731:                                              ; preds = %645
  br i1 %.not181, label %772, label %732

732:                                              ; preds = %731
  %733 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %734 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %733)
  %735 = icmp sgt i32 %734, -1
  br i1 %735, label %736, label %772

736:                                              ; preds = %732
  %737 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #8
  %738 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %739 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %738) #8
  %740 = mul i64 %739, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, i64 noundef %740, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %741 unwind label %755

741:                                              ; preds = %736
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %742 unwind label %757

742:                                              ; preds = %741
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull @.str.8)
          to label %743 unwind label %759

743:                                              ; preds = %742
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.46)
          to label %744 unwind label %761

744:                                              ; preds = %743
  %745 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %746 = getelementptr inbounds i8, ptr %745, i64 8
  %747 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %746) #8
  %748 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %747) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #8
  %749 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %750 = getelementptr inbounds i8, ptr %749, i64 32
  %751 = load ptr, ptr %750, align 8, !tbaa !48
  invoke void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(80) %751)
          to label %752 unwind label %763

752:                                              ; preds = %744
  %753 = invoke noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %737, ptr noundef nonnull align 8 dereferenceable(32) %86, i32 noundef 33554432, i32 noundef 0, i64 noundef %748, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %754 unwind label %765

754:                                              ; preds = %752
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  br label %772

755:                                              ; preds = %736
  %756 = landingpad { ptr, i32 }
          cleanup
  br label %771

757:                                              ; preds = %741
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %770

759:                                              ; preds = %742
  %760 = landingpad { ptr, i32 }
          cleanup
  br label %769

761:                                              ; preds = %743
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %768

763:                                              ; preds = %744
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %767

765:                                              ; preds = %752
  %766 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %767

767:                                              ; preds = %765, %763
  %.pn175 = phi { ptr, i32 } [ %766, %765 ], [ %764, %763 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %768

768:                                              ; preds = %767, %761
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %767 ], [ %762, %761 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %769

769:                                              ; preds = %768, %759
  %.pn175.pn.pn = phi { ptr, i32 } [ %.pn175.pn, %768 ], [ %760, %759 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %770

770:                                              ; preds = %769, %757
  %.pn175.pn.pn.pn = phi { ptr, i32 } [ %.pn175.pn.pn, %769 ], [ %758, %757 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %771

771:                                              ; preds = %770, %755
  %.pn175.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn175.pn.pn.pn, %770 ], [ %756, %755 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  br label %796

772:                                              ; preds = %754, %732, %731
  %773 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %774 = getelementptr inbounds i8, ptr %773, i64 32
  %775 = load ptr, ptr %774, align 8, !tbaa !48
  %776 = call noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %775)
  %777 = icmp eq i32 %776, 0
  %778 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  br i1 %777, label %779, label %781

779:                                              ; preds = %772
  %780 = getelementptr inbounds i8, ptr %778, i64 24
  store i32 4, ptr %780, align 8, !tbaa !26
  br label %795, !llvm.loop !42

781:                                              ; preds = %772
  %782 = getelementptr inbounds i8, ptr %778, i64 32
  %783 = load ptr, ptr %782, align 8, !tbaa !48
  %784 = call noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %783)
  %785 = icmp eq i32 %784, 2
  br i1 %785, label %786, label %787

786:                                              ; preds = %781
  invoke void @_ZN10HtnPlanner11HandleAnyOfEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2)
          to label %795 unwind label %553, !llvm.loop !42

787:                                              ; preds = %781
  %788 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %789 = getelementptr inbounds i8, ptr %788, i64 32
  %790 = load ptr, ptr %789, align 8, !tbaa !48
  %791 = call noundef i32 @_ZNK9HtnMethod10methodTypeEv(ptr noundef nonnull align 8 dereferenceable(80) %790)
  %792 = icmp eq i32 %791, 1
  br i1 %792, label %793, label %794

793:                                              ; preds = %787
  invoke void @_ZN10HtnPlanner11HandleAllOfEP9PlanState(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2)
          to label %795 unwind label %553, !llvm.loop !42

794:                                              ; preds = %787
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcS1_l(ptr noundef nonnull %1, i1 noundef zeroext false, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 887)
          to label %795 unwind label %553, !llvm.loop !42

795:                                              ; preds = %.thread, %794, %793, %786, %727, %779
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  br label %952

796:                                              ; preds = %634, %644, %771, %726, %688, %606, %588, %557, %555, %553
  %.pn195 = phi { ptr, i32 } [ %554, %553 ], [ %.pn189.pn.pn.pn.pn, %726 ], [ %.pn182.pn.pn.pn.pn, %688 ], [ %.pn175.pn.pn.pn.pn, %771 ], [ %558, %557 ], [ %556, %555 ], [ %.pn164.pn.pn.pn.pn, %606 ], [ %589, %588 ], [ %.pn170.pn, %644 ], [ %635, %634 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  br label %955

797:                                              ; preds = %119
  %798 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZN8PlanNode16SetNextConditionEv(ptr noundef nonnull align 8 dereferenceable(180) %798)
  %799 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %800 = invoke noundef ptr @_ZN8PlanNode9conditionEv(ptr noundef nonnull align 8 dereferenceable(180) %799)
          to label %801 unwind label %806

801:                                              ; preds = %797
  %802 = icmp eq ptr %800, null
  br i1 %802, label %803, label %808

803:                                              ; preds = %801
  %804 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %805 = getelementptr inbounds i8, ptr %804, i64 24
  store i32 3, ptr %805, align 8, !tbaa !26
  br label %952, !llvm.loop !42

806:                                              ; preds = %797
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %955

808:                                              ; preds = %801
  %809 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %810 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %809)
  %811 = and i64 %810, 33554432
  %.not141 = icmp eq i64 %811, 0
  br i1 %.not141, label %845, label %812

812:                                              ; preds = %808
  %813 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %814 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %813)
  %815 = icmp sgt i32 %814, -1
  br i1 %815, label %816, label %845

816:                                              ; preds = %812
  %817 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #8
  %818 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %819 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %818) #8
  %820 = mul i64 %819, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, i64 noundef %820, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %821 unwind label %828

821:                                              ; preds = %816
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %822 unwind label %830

822:                                              ; preds = %821
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.8)
          to label %823 unwind label %832

823:                                              ; preds = %822
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.47)
          to label %824 unwind label %834

824:                                              ; preds = %823
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(24) %800, i1 noundef zeroext false)
          to label %825 unwind label %836

825:                                              ; preds = %824
  %826 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %817, ptr noundef nonnull align 8 dereferenceable(32) %92, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %97)
          to label %827 unwind label %838

827:                                              ; preds = %825
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  br label %845

828:                                              ; preds = %816
  %829 = landingpad { ptr, i32 }
          cleanup
  br label %844

830:                                              ; preds = %821
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %843

832:                                              ; preds = %822
  %833 = landingpad { ptr, i32 }
          cleanup
  br label %842

834:                                              ; preds = %823
  %835 = landingpad { ptr, i32 }
          cleanup
  br label %841

836:                                              ; preds = %824
  %837 = landingpad { ptr, i32 }
          cleanup
  br label %840

838:                                              ; preds = %825
  %839 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %840

840:                                              ; preds = %838, %836
  %.pn142 = phi { ptr, i32 } [ %839, %838 ], [ %837, %836 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %841

841:                                              ; preds = %840, %834
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %840 ], [ %835, %834 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %842

842:                                              ; preds = %841, %832
  %.pn142.pn.pn = phi { ptr, i32 } [ %.pn142.pn, %841 ], [ %833, %832 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %843

843:                                              ; preds = %842, %830
  %.pn142.pn.pn.pn = phi { ptr, i32 } [ %.pn142.pn.pn, %842 ], [ %831, %830 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  br label %844

844:                                              ; preds = %843, %828
  %.pn142.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn142.pn.pn.pn, %843 ], [ %829, %828 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  br label %955

845:                                              ; preds = %827, %812, %808
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %98) #8
  %846 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %99) #8
  %847 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %848 = getelementptr inbounds i8, ptr %847, i64 32
  %849 = load ptr, ptr %848, align 8, !tbaa !48
  invoke void @_ZNK9HtnMethod5tasksEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.0") align 8 %99, ptr noundef nonnull align 8 dereferenceable(80) %849)
          to label %850 unwind label %862

850:                                              ; preds = %845
  %851 = getelementptr inbounds i8, ptr %846, i64 40
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.22") align 8 %98, ptr noundef %109, ptr noundef nonnull align 8 dereferenceable(24) %851, ptr noundef nonnull align 8 dereferenceable(24) %99)
          to label %852 unwind label %864

852:                                              ; preds = %850
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %99) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %100) #8
  %853 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  invoke void @_ZN15HtnGoalResolver18SubstituteUnifiersEP14HtnTermFactoryRKSt6vectorISt4pairISt10shared_ptrI7HtnTermES6_ESaIS7_EERKS2_IS6_SaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.22") align 8 %100, ptr noundef %109, ptr noundef nonnull align 8 dereferenceable(24) %800, ptr noundef nonnull align 8 dereferenceable(24) %853)
          to label %854 unwind label %867

854:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #8
  %855 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %856 = getelementptr inbounds i8, ptr %855, i64 96
  %857 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %856) #8
  invoke void @_ZN10HtnRuleSet10CreateCopyEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.5") align 8 %101, ptr noundef nonnull align 8 dereferenceable(144) %857)
          to label %858 unwind label %869

858:                                              ; preds = %854
  %859 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %860 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  invoke void @_ZN8PlanNode27SearchNextNodeBacktrackableEP9PlanStateRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EE21PlanNodeContinuePoint(ptr noundef nonnull align 8 dereferenceable(180) %859, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %860, i32 noundef 6)
          to label %861 unwind label %871

861:                                              ; preds = %858
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #8
  br label %952

862:                                              ; preds = %845
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %866

864:                                              ; preds = %850
  %865 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  br label %866

866:                                              ; preds = %864, %862
  %.pn148 = phi { ptr, i32 } [ %865, %864 ], [ %863, %862 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %99) #8
  br label %875

867:                                              ; preds = %852
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %874

869:                                              ; preds = %854
  %870 = landingpad { ptr, i32 }
          cleanup
  br label %873

871:                                              ; preds = %858
  %872 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  br label %873

873:                                              ; preds = %871, %869
  %.pn150 = phi { ptr, i32 } [ %872, %871 ], [ %870, %869 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  br label %874

874:                                              ; preds = %873, %867
  %.pn150.pn = phi { ptr, i32 } [ %.pn150, %873 ], [ %868, %867 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #8
  br label %875

875:                                              ; preds = %874, %866
  %.pn150.pn.pn = phi { ptr, i32 } [ %.pn150.pn, %874 ], [ %.pn148, %866 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #8
  br label %955

876:                                              ; preds = %119
  %877 = load i8, ptr %111, align 1, !tbaa !52, !range !45, !noundef !46
  %878 = trunc nuw i8 %877 to i1
  br i1 %878, label %879, label %882

879:                                              ; preds = %876
  %880 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %881 = getelementptr inbounds i8, ptr %880, i64 64
  store i8 1, ptr %881, align 8, !tbaa !44
  br label %882

882:                                              ; preds = %879, %876
  %883 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %884 = getelementptr inbounds i8, ptr %883, i64 24
  store i32 4, ptr %884, align 8, !tbaa !26
  br label %952, !llvm.loop !42

885:                                              ; preds = %119
  %886 = load i8, ptr %111, align 1, !tbaa !52, !range !45, !noundef !46
  %887 = trunc nuw i8 %886 to i1
  call void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, i1 noundef zeroext %887)
  br label %952, !llvm.loop !42

888:                                              ; preds = %119
  %889 = load i8, ptr %111, align 1, !tbaa !52, !range !45, !noundef !46
  %890 = icmp eq i8 %889, 0
  br i1 %890, label %891, label %940

891:                                              ; preds = %888
  %892 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %893 = getelementptr inbounds i8, ptr %892, i64 88
  %894 = load i8, ptr %893, align 8, !tbaa !53, !range !45, !noundef !46
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %._crit_edge250

._crit_edge250:                                   ; preds = %891
  %.pre = load i8, ptr %111, align 1, !tbaa !52, !range !45
  br label %940

896:                                              ; preds = %891
  %897 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %898 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %897)
  %899 = and i64 %898, 33554432
  %.not135 = icmp eq i64 %899, 0
  br i1 %.not135, label %937, label %900

900:                                              ; preds = %896
  %901 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %902 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %901)
  %903 = icmp sgt i32 %902, -1
  br i1 %903, label %904, label %937

904:                                              ; preds = %900
  %905 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #8
  %906 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %907 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %906) #8
  %908 = mul i64 %907, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %106) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, i64 noundef %908, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %909 unwind label %920

909:                                              ; preds = %904
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %910 unwind label %922

910:                                              ; preds = %909
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.48)
          to label %911 unwind label %924

911:                                              ; preds = %910
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.49)
          to label %912 unwind label %926

912:                                              ; preds = %911
  %913 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %914 = getelementptr inbounds i8, ptr %913, i64 112
  %915 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %914) #8
  %916 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %915)
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(24) %916, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %917 unwind label %928

917:                                              ; preds = %912
  %918 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %905, ptr noundef nonnull align 8 dereferenceable(32) %102, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %107)
          to label %919 unwind label %930

919:                                              ; preds = %917
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  br label %937

920:                                              ; preds = %904
  %921 = landingpad { ptr, i32 }
          cleanup
  br label %936

922:                                              ; preds = %909
  %923 = landingpad { ptr, i32 }
          cleanup
  br label %935

924:                                              ; preds = %910
  %925 = landingpad { ptr, i32 }
          cleanup
  br label %934

926:                                              ; preds = %911
  %927 = landingpad { ptr, i32 }
          cleanup
  br label %933

928:                                              ; preds = %912
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %932

930:                                              ; preds = %917
  %931 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %932

932:                                              ; preds = %930, %928
  %.pn = phi { ptr, i32 } [ %931, %930 ], [ %929, %928 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %933

933:                                              ; preds = %932, %926
  %.pn.pn = phi { ptr, i32 } [ %.pn, %932 ], [ %927, %926 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  br label %934

934:                                              ; preds = %933, %924
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %933 ], [ %925, %924 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %935

935:                                              ; preds = %934, %922
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %934 ], [ %923, %922 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  br label %936

936:                                              ; preds = %935, %920
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %935 ], [ %921, %920 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  br label %955

937:                                              ; preds = %919, %900, %896
  %938 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %939 = getelementptr inbounds i8, ptr %938, i64 24
  store i32 1, ptr %939, align 8, !tbaa !26
  br label %952, !llvm.loop !42

940:                                              ; preds = %._crit_edge250, %888
  %941 = phi i8 [ %.pre, %._crit_edge250 ], [ 1, %888 ]
  %942 = trunc nuw i8 %941 to i1
  call void @_ZN10HtnPlanner6ReturnEP9PlanStateb(ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef nonnull %2, i1 noundef zeroext %942)
  br label %952, !llvm.loop !42

943:                                              ; preds = %119
  %944 = load i8, ptr %111, align 1, !tbaa !52, !range !45, !noundef !46
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %946, label %949

946:                                              ; preds = %943
  %947 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %948 = getelementptr inbounds i8, ptr %947, i64 64
  store i8 1, ptr %948, align 8, !tbaa !44
  br label %949

949:                                              ; preds = %946, %943
  %950 = call noundef ptr @_ZNKSt19__shared_ptr_accessI8PlanNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %951 = getelementptr inbounds i8, ptr %950, i64 24
  store i32 3, ptr %951, align 8, !tbaa !26
  br label %952, !llvm.loop !42

.thread247:                                       ; preds = %252, %202, %162
  %.sink = phi ptr [ %11, %162 ], [ %17, %202 ], [ %23, %252 ]
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %.sink) #8
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  br label %956

952:                                              ; preds = %119, %128, %803, %861, %316, %313, %949, %940, %937, %885, %882, %795, %486, %416, %374
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  %953 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %954 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI8PlanNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %953) #8
  %.not = icmp eq i64 %954, 0
  br i1 %.not, label %._crit_edge, label %119

955:                                              ; preds = %.loopexit, %.loopexit.split-lp, %806, %844, %875, %936, %796, %534, %476, %415, %373, %355, %310, %289, %253, %251, %207, %201, %165, %161
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %936 ], [ %.pn198.pn.pn.pn.pn, %476 ], [ %.pn195, %796 ], [ %.pn157.pn.pn.pn.pn, %534 ], [ %254, %253 ], [ %.pn227.pn.pn.pn, %251 ], [ %.pn220.pn.pn.pn.pn, %373 ], [ %.pn213.pn.pn.pn.pn, %415 ], [ %356, %355 ], [ %.pn205.pn.pn.pn.pn.pn, %310 ], [ %290, %289 ], [ %208, %207 ], [ %.pn233.pn.pn.pn, %201 ], [ %166, %165 ], [ %.pn239.pn.pn.pn, %161 ], [ %.pn150.pn.pn, %875 ], [ %.pn142.pn.pn.pn.pn, %844 ], [ %807, %806 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt12__shared_ptrI8PlanNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  br label %957

._crit_edge:                                      ; preds = %952, %114
  call void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #8
  br label %956

956:                                              ; preds = %.thread247, %._crit_edge
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  ret void

957:                                              ; preds = %955, %126
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %955 ], [ %127, %126 ]
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn
}

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

declare noundef double @_Z31HighPerformanceGetTimeInSecondsv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner23SolutionFromCurrentNodeEP9PlanStateSt10shared_ptrI8PlanNodeE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088), i1 noundef zeroext) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIlllEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #4 align 2

declare void @_ZN7HtnTerm22ResolveArithmeticTermsEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) local_unnamed_addr #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceImNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

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

declare void @_ZNK9HtnMethod8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS8_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

declare void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.19") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8PlanNode16SetNextConditionEv(ptr noundef nonnull align 8 dereferenceable(180)) local_unnamed_addr #0 align 2

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

declare void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9HtnMethod5tasksEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.0") align 8, ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #4 align 2

declare void @_ZN10HtnRuleSet10CreateCopyEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.5") align 8, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #6

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

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

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

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

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

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

!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, !12, i64 56}
!6 = !{!"_ZTS9PlanState", !7, i64 0, !10, i64 8, !14, i64 24, !7, i64 48, !12, i64 56, !18, i64 64, !19, i64 72, !21, i64 88, !18, i64 96, !7, i64 104, !22, i64 108, !23, i64 112}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !11, i64 0}
!11 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0}
!14 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!18 = !{!"long", !8, i64 0}
!19 = !{!"_ZTSSt10shared_ptrI10HtnRuleSetE", !20, i64 0}
!20 = !{!"_ZTSSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!21 = !{!"double", !8, i64 0}
!22 = !{!"bool", !8, i64 0}
!23 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I8PlanNodeESaIS2_EEE", !24, i64 0}
!24 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!25 = !{!6, !21, i64 88}
!26 = !{!27, !30, i64 24}
!27 = !{!"_ZTS8PlanNode", !22, i64 0, !7, i64 4, !28, i64 8, !30, i64 24, !31, i64 32, !22, i64 64, !36, i64 72, !22, i64 88, !19, i64 96, !10, i64 112, !36, i64 128, !18, i64 144, !7, i64 152, !38, i64 160, !7, i64 176}
!28 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !29, i64 0}
!29 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!30 = !{!"_ZTS21PlanNodeContinuePoint", !8, i64 0}
!31 = !{!"_ZTSSt4pairIP9HtnMethodSt6vectorIS_ISt10shared_ptrI7HtnTermES5_ESaIS6_EEE", !12, i64 0, !32, i64 8}
!32 = !{!"_ZTSSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!36 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !37, i64 0}
!37 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!38 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !39, i64 0}
!39 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairIP9HtnMethodS0_IS1_ISt10shared_ptrI7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !13, i64 8}
!40 = !{!8, !8, i64 0}
!41 = !{!6, !18, i64 96}
!42 = distinct !{!42, !43}
!43 = !{!"llvm.loop.mustprogress"}
!44 = !{!27, !22, i64 64}
!45 = !{i8 0, i8 2}
!46 = !{}
!47 = !{!27, !22, i64 0}
!48 = !{!27, !12, i64 32}
!49 = distinct !{!49, !43}
!50 = !{!7, !7, i64 0}
!51 = !{!18, !18, i64 0}
!52 = !{!22, !22, i64 0}
!53 = !{!27, !22, i64 88}


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