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

; 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.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.129" = type { %"class.std::__shared_ptr.130" }
%"class.std::__shared_ptr.130" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator.28" = type { i8 }
%"class.std::shared_ptr.126" = type { %"class.std::__shared_ptr.127" }
%"class.std::__shared_ptr.127" = type { ptr, %"class.std::__shared_count" }
%"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.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.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.HtnPlanner::SolutionType" = type { %"class.std::vector.0", %"class.std::shared_ptr.5", double, i64 }

@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) 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: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #4

; 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 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 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 #6 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 nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

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) #7

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner16ToStringSolutionB5cxx11ESt10shared_ptrINS_12SolutionTypeEEb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2ERKS2_(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_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12lexical_castINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdET_T0_i(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef) #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__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_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.129") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8) #6 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, 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::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.28", align 1
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::shared_ptr.126", align 8
  %29 = alloca %"class.std::shared_ptr.5", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.28", align 1
  %36 = alloca %"class.std::shared_ptr.123", align 8
  %37 = alloca %"class.std::shared_ptr.129", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator.28", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::shared_ptr.123", 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::__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::shared_ptr.123", 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.129", align 8
  store ptr %0, ptr %10, align 8
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store i32 %5, ptr %15, align 4, !tbaa !9
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  store ptr %8, ptr %18, align 8, !tbaa !5
  %59 = load ptr, ptr %11, align 8
  %60 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %61 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %60)
  %62 = and i64 33554432, %61
  %63 = icmp ne i64 %62, 0
  br i1 %63, label %64, label %107

64:                                               ; preds = %9
  %65 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %66 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %65)
  %67 = icmp sle i32 0, %66
  br i1 %67, label %68, label %107

68:                                               ; preds = %64
  %69 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %70 unwind label %78

70:                                               ; preds = %68
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %71 unwind label %82

71:                                               ; preds = %70
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.23)
          to label %72 unwind label %86

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

73:                                               ; preds = %72
  %74 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(24) %74, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %75 unwind label %94

75:                                               ; preds = %73
  %76 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %69, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 33554432, i32 noundef 0, ptr noundef %26)
          to label %77 unwind label %98

77:                                               ; preds = %75
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %107

78:                                               ; preds = %68
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %24, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %25, align 4
  br label %106

82:                                               ; preds = %70
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %24, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %25, align 4
  br label %105

86:                                               ; preds = %71
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %24, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %25, align 4
  br label %104

90:                                               ; preds = %72
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %24, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %25, align 4
  br label %103

94:                                               ; preds = %73
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %24, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %25, align 4
  br label %102

98:                                               ; preds = %75
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %24, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %102

102:                                              ; preds = %98, %94
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %103

103:                                              ; preds = %102, %90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %104

104:                                              ; preds = %103, %86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %105

105:                                              ; preds = %104, %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %106

106:                                              ; preds = %105, %78
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %423

107:                                              ; preds = %77, %64, %9
  store i1 false, ptr %27, align 1
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #9
  %108 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 128) #10
          to label %109 unwind label %137

109:                                              ; preds = %107
  store i1 true, ptr %30, align 1
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %111 = load ptr, ptr %14, align 8, !tbaa !5
  %112 = load i32, ptr %15, align 4, !tbaa !9
  %113 = sext i32 %112 to i64
  invoke void @_ZN9PlanStateC1EP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEl(ptr noundef nonnull align 8 dereferenceable(128) %108, ptr noundef %110, ptr noundef %29, ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %113)
          to label %114 unwind label %141

114:                                              ; preds = %109
  store i1 false, ptr %30, align 1
  invoke void @_ZNSt10shared_ptrI9PlanStateEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef %108)
          to label %115 unwind label %141

115:                                              ; preds = %114
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #9
  %116 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %117 unwind label %148

117:                                              ; preds = %115
  %118 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %116)
          to label %119 unwind label %148

119:                                              ; preds = %117
  %120 = and i64 33554432, %118
  %121 = icmp ne i64 %120, 0
  br i1 %121, label %122, label %176

122:                                              ; preds = %119
  %123 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %124 unwind label %148

124:                                              ; preds = %122
  %125 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %123)
          to label %126 unwind label %148

126:                                              ; preds = %124
  %127 = icmp sle i32 0, %125
  br i1 %127, label %128, label %176

128:                                              ; preds = %126
  %129 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %130 unwind label %148

130:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %131 unwind label %152

131:                                              ; preds = %130
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %132 unwind label %156

132:                                              ; preds = %131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.24)
          to label %133 unwind label %160

133:                                              ; preds = %132
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.25)
          to label %134 unwind label %164

134:                                              ; preds = %133
  %135 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %129, ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef 33554432, i32 noundef 0)
          to label %136 unwind label %168

136:                                              ; preds = %134
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %176

137:                                              ; preds = %107
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %24, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %25, align 4
  br label %420

141:                                              ; preds = %114, %109
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %24, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %25, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #9
  %145 = load i1, ptr %30, align 1
  br i1 %145, label %146, label %147

146:                                              ; preds = %141
  call void @_ZdlPvm(ptr noundef %108, i64 noundef 128) #11
  br label %147

147:                                              ; preds = %146, %141
  br label %420

148:                                              ; preds = %128, %124, %122, %117, %115
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %24, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %25, align 4
  br label %419

152:                                              ; preds = %130
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %24, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %25, align 4
  br label %175

156:                                              ; preds = %131
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %24, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %25, align 4
  br label %174

160:                                              ; preds = %132
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %24, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %25, align 4
  br label %173

164:                                              ; preds = %133
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %24, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %25, align 4
  br label %172

168:                                              ; preds = %134
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %24, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %172

172:                                              ; preds = %168, %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %173

173:                                              ; preds = %172, %160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %174

174:                                              ; preds = %173, %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %175

175:                                              ; preds = %174, %152
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %419

176:                                              ; preds = %136, %126, %119
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #9
  %177 = call noundef ptr @_ZNKSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  invoke void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %36, ptr noundef nonnull align 8 dereferenceable(136) %59, ptr noundef %177)
          to label %178 unwind label %188

178:                                              ; preds = %176
  br label %179

179:                                              ; preds = %326, %178
  %180 = call noundef zeroext i1 @_ZStneIN10HtnPlanner12SolutionTypeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr null) #9
  br i1 %180, label %181, label %332

181:                                              ; preds = %179
  %182 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  br i1 %182, label %183, label %196

183:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #9
  %184 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #10
          to label %185 unwind label %192

185:                                              ; preds = %183
  call void @llvm.memset.p0.i64(ptr align 16 %184, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %184) #9
  invoke void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef %184)
          to label %186 unwind label %192

186:                                              ; preds = %185
  %187 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %37) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #9
  br label %196

188:                                              ; preds = %176
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %24, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %25, align 4
  br label %418

192:                                              ; preds = %185, %183
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %24, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #9
  br label %417

196:                                              ; preds = %186, %181
  %197 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #9
  invoke void @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %197, ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %198 unwind label %233

198:                                              ; preds = %196
  %199 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %200 unwind label %233

200:                                              ; preds = %198
  %201 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %199)
          to label %202 unwind label %233

202:                                              ; preds = %200
  %203 = and i64 33554432, %201
  %204 = icmp ne i64 %203, 0
  br i1 %204, label %205, label %271

205:                                              ; preds = %202
  %206 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %207 unwind label %233

207:                                              ; preds = %205
  %208 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %206)
          to label %209 unwind label %233

209:                                              ; preds = %207
  %210 = icmp sle i32 0, %208
  br i1 %210, label %211, label %271

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %213 unwind label %233

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %214 unwind label %237

214:                                              ; preds = %213
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %215 unwind label %241

215:                                              ; preds = %214
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.21)
          to label %216 unwind label %245

216:                                              ; preds = %215
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.26)
          to label %217 unwind label %249

217:                                              ; preds = %216
  call void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 8 dereferenceable(16) %36) #9
  invoke void @_ZN10HtnPlanner16ToStringSolutionB5cxx11ESt10shared_ptrINS_12SolutionTypeEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef %44, i1 noundef zeroext false)
          to label %218 unwind label %253

218:                                              ; preds = %217
  %219 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %220 = getelementptr inbounds %class.PlanState, ptr %219, i32 0, i32 5
  %221 = load i64, ptr %220, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #9
  %222 = call noundef zeroext i1 @_ZSteqIN10HtnPlanner12SolutionTypeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr null) #9
  br i1 %222, label %223, label %224

223:                                              ; preds = %218
  br label %228

224:                                              ; preds = %218
  %225 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  %226 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %225, i32 0, i32 2
  %227 = load double, ptr %226, align 8, !tbaa !27
  br label %228

228:                                              ; preds = %224, %223
  %229 = phi double [ -1.000000e+00, %223 ], [ %227, %224 ]
  invoke void @_Z12lexical_castINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdET_T0_i(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, double noundef %229, i32 noundef 9)
          to label %230 unwind label %257

230:                                              ; preds = %228
  %231 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEilS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %212, ptr noundef nonnull align 8 dereferenceable(32) %38, i32 noundef 33554432, i32 noundef 0, ptr noundef %43, ptr noundef nonnull align 4 dereferenceable(4) %15, i64 noundef %221, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %232 unwind label %261

232:                                              ; preds = %230
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  br label %271

233:                                              ; preds = %373, %369, %367, %362, %360, %353, %291, %287, %285, %280, %278, %271, %211, %207, %205, %200, %198, %196
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %24, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %25, align 4
  br label %417

237:                                              ; preds = %213
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %24, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %25, align 4
  br label %270

241:                                              ; preds = %214
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %24, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %25, align 4
  br label %269

245:                                              ; preds = %215
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %24, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %25, align 4
  br label %268

249:                                              ; preds = %216
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %24, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %25, align 4
  br label %267

253:                                              ; preds = %217
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %24, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %25, align 4
  br label %266

257:                                              ; preds = %228
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %24, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %25, align 4
  br label %265

261:                                              ; preds = %230
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %24, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %265

265:                                              ; preds = %261, %257
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %266

266:                                              ; preds = %265, %253
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %267

267:                                              ; preds = %266, %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %268

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

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

270:                                              ; preds = %269, %237
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  br label %417

271:                                              ; preds = %232, %209, %202
  %272 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %273 = getelementptr inbounds %class.PlanState, ptr %272, i32 0, i32 4
  %274 = load ptr, ptr %273, align 8, !tbaa !29
  %275 = invoke noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %274)
          to label %276 unwind label %233

276:                                              ; preds = %271
  br i1 %275, label %277, label %278

277:                                              ; preds = %276
  br label %332

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %280 unwind label %233

280:                                              ; preds = %278
  %281 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %279)
          to label %282 unwind label %233

282:                                              ; preds = %280
  %283 = and i64 33554432, %281
  %284 = icmp ne i64 %283, 0
  br i1 %284, label %285, label %324

285:                                              ; preds = %282
  %286 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %287 unwind label %233

287:                                              ; preds = %285
  %288 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %286)
          to label %289 unwind label %233

289:                                              ; preds = %287
  %290 = icmp sle i32 0, %288
  br i1 %290, label %291, label %324

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %293 unwind label %233

293:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %294 unwind label %300

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

295:                                              ; preds = %294
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.24)
          to label %296 unwind label %308

296:                                              ; preds = %295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.25)
          to label %297 unwind label %312

297:                                              ; preds = %296
  %298 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %292, ptr noundef nonnull align 8 dereferenceable(32) %46, i32 noundef 33554432, i32 noundef 0)
          to label %299 unwind label %316

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

300:                                              ; preds = %293
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %24, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %25, align 4
  br label %323

304:                                              ; preds = %294
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %24, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %25, align 4
  br label %322

308:                                              ; preds = %295
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %24, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %25, align 4
  br label %321

312:                                              ; preds = %296
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %24, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %25, align 4
  br label %320

316:                                              ; preds = %297
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %24, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %320

320:                                              ; preds = %316, %312
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %321

321:                                              ; preds = %320, %308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %322

322:                                              ; preds = %321, %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %323

323:                                              ; preds = %322, %300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  br label %417

324:                                              ; preds = %299, %289, %282
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #9
  %325 = call noundef ptr @_ZNKSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  invoke void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.123") align 8 %51, ptr noundef nonnull align 8 dereferenceable(136) %59, ptr noundef %325)
          to label %326 unwind label %328

326:                                              ; preds = %324
  %327 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %51) #9
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #9
  br label %179, !llvm.loop !30

328:                                              ; preds = %324
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %24, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #9
  br label %417

332:                                              ; preds = %277, %179
  %333 = load ptr, ptr %16, align 8, !tbaa !5
  %334 = icmp ne ptr %333, null
  br i1 %334, label %335, label %340

335:                                              ; preds = %332
  %336 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %337 = getelementptr inbounds %class.PlanState, ptr %336, i32 0, i32 5
  %338 = load i64, ptr %337, align 8, !tbaa !11
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  store i64 %338, ptr %339, align 8, !tbaa !32
  br label %340

340:                                              ; preds = %335, %332
  %341 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  br i1 %341, label %342, label %360

342:                                              ; preds = %340
  %343 = load ptr, ptr %17, align 8, !tbaa !5
  %344 = icmp ne ptr %343, null
  br i1 %344, label %345, label %350

345:                                              ; preds = %342
  %346 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %347 = getelementptr inbounds %class.PlanState, ptr %346, i32 0, i32 3
  %348 = load i32, ptr %347, align 8, !tbaa !33
  %349 = load ptr, ptr %17, align 8, !tbaa !5
  store i32 %348, ptr %349, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %345, %342
  %351 = load ptr, ptr %18, align 8, !tbaa !5
  %352 = icmp ne ptr %351, null
  br i1 %352, label %353, label %359

353:                                              ; preds = %350
  %354 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %355 = getelementptr inbounds %class.PlanState, ptr %354, i32 0, i32 2
  %356 = load ptr, ptr %18, align 8, !tbaa !5
  %357 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %356, ptr noundef nonnull align 8 dereferenceable(24) %355)
          to label %358 unwind label %233

358:                                              ; preds = %353
  br label %359

359:                                              ; preds = %358, %350
  br label %360

360:                                              ; preds = %359, %340
  %361 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %362 unwind label %233

362:                                              ; preds = %360
  %363 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %361)
          to label %364 unwind label %233

364:                                              ; preds = %362
  %365 = and i64 33554432, %363
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %367, label %415

367:                                              ; preds = %364
  %368 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %369 unwind label %233

369:                                              ; preds = %367
  %370 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %368)
          to label %371 unwind label %233

371:                                              ; preds = %369
  %372 = icmp sle i32 0, %370
  br i1 %372, label %373, label %415

373:                                              ; preds = %371
  %374 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %375 unwind label %233

375:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %376 unwind label %386

376:                                              ; preds = %375
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %377 unwind label %390

377:                                              ; preds = %376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.27)
          to label %378 unwind label %394

378:                                              ; preds = %377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.28)
          to label %379 unwind label %398

379:                                              ; preds = %378
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef %58, i1 noundef zeroext false)
          to label %380 unwind label %402

380:                                              ; preds = %379
  %381 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  %382 = getelementptr inbounds %class.PlanState, ptr %381, i32 0, i32 5
  %383 = load i64, ptr %382, align 8, !tbaa !11
  %384 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEilEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %374, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 33554432, i32 noundef 0, ptr noundef %57, ptr noundef nonnull align 4 dereferenceable(4) %15, i64 noundef %383)
          to label %385 unwind label %406

385:                                              ; preds = %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  br label %415

386:                                              ; preds = %375
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %24, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %25, align 4
  br label %414

390:                                              ; preds = %376
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %24, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %25, align 4
  br label %413

394:                                              ; preds = %377
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %24, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %25, align 4
  br label %412

398:                                              ; preds = %378
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %24, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %25, align 4
  br label %411

402:                                              ; preds = %379
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %24, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %25, align 4
  br label %410

406:                                              ; preds = %380
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %24, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %410

410:                                              ; preds = %406, %402
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %411

411:                                              ; preds = %410, %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %412

412:                                              ; preds = %411, %394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %413

413:                                              ; preds = %412, %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %414

414:                                              ; preds = %413, %386
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  br label %417

415:                                              ; preds = %385, %371, %364
  store i1 true, ptr %27, align 1
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #9
  call void @_ZNSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #9
  %416 = load i1, ptr %27, align 1
  br i1 %416, label %422, label %421

417:                                              ; preds = %414, %328, %323, %270, %233, %192
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #9
  br label %418

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

419:                                              ; preds = %418, %175, %148
  call void @_ZNSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  br label %420

420:                                              ; preds = %419, %147, %137
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  br label %423

421:                                              ; preds = %415
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  br label %422

422:                                              ; preds = %421, %415
  ret void

423:                                              ; preds = %420, %106
  %424 = load ptr, ptr %24, align 8
  %425 = load i32, ptr %25, align 4
  %426 = insertvalue { ptr, i32 } poison, ptr %424, 0
  %427 = insertvalue { ptr, i32 } %426, i32 %425, 1
  resume { ptr, i32 } %427
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(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_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(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 void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_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_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

declare void @_ZN9PlanStateC1EP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEl(ptr, ptr, ptr, ptr, i64)

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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { 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 #7 = { "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 = { 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 #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !20, i64 64}
!12 = !{!"_ZTS9PlanState", !10, i64 0, !13, i64 8, !16, i64 24, !10, i64 48, !6, i64 56, !20, i64 64, !21, i64 72, !23, i64 88, !20, i64 96, !10, i64 104, !24, i64 108, !25, i64 112}
!13 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !14, i64 0}
!14 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!15 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!16 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTSSt10shared_ptrI10HtnRuleSetE", !22, i64 0}
!22 = !{!"_ZTSSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!23 = !{!"double", !7, i64 0}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I8PlanNodeESaIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI8PlanNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!27 = !{!28, !23, i64 40}
!28 = !{!"_ZTSN10HtnPlanner12SolutionTypeE", !16, i64 0, !21, i64 24, !23, i64 40, !20, i64 48}
!29 = !{!12, !6, i64 56}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!20, !20, i64 0}
!33 = !{!12, !10, i64 48}


; 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.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.129" = type { %"class.std::__shared_ptr.130" }
%"class.std::__shared_ptr.130" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator.28" = type { i8 }
%"class.std::shared_ptr.126" = type { %"class.std::__shared_ptr.127" }
%"class.std::__shared_ptr.127" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) 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: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #4

; 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 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 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 #6 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 nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #6 align 2

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 #7

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner16ToStringSolutionB5cxx11ESt10shared_ptrINS_12SolutionTypeEEb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2ERKS2_(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_accessI9PlanStateLN9__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 @_Z12lexical_castINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdET_T0_i(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__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_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.129") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef %5, ptr noundef writeonly %6, ptr noundef writeonly %7, ptr noundef %8) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", 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::allocator.28", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::shared_ptr.126", align 8
  %18 = alloca %"class.std::shared_ptr.5", 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::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.28", align 1
  %24 = alloca %"class.std::shared_ptr.123", align 8
  %25 = alloca %"class.std::shared_ptr.129", 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::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.28", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::shared_ptr.123", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", 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::shared_ptr.123", 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::shared_ptr.129", align 8
  store i32 %5, ptr %10, align 4, !tbaa !5
  %47 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %48 = tail call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %47)
  %49 = and i64 %48, 33554432
  %.not = icmp eq i64 %49, 0
  br i1 %.not, label %80, label %50

50:                                               ; preds = %9
  %51 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %52 = tail call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %51)
  %53 = icmp sgt i32 %52, -1
  br i1 %53, label %54, label %80

54:                                               ; preds = %50
  %55 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %56 unwind label %63

56:                                               ; preds = %54
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %57 unwind label %65

57:                                               ; preds = %56
  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.23)
          to label %58 unwind label %67

58:                                               ; preds = %57
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.20)
          to label %59 unwind label %69

59:                                               ; preds = %58
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %60 unwind label %71

60:                                               ; preds = %59
  %61 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %55, ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %16)
          to label %62 unwind label %73

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

63:                                               ; preds = %54
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %79

65:                                               ; preds = %56
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %78

67:                                               ; preds = %57
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %77

69:                                               ; preds = %58
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %76

71:                                               ; preds = %59
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %75

73:                                               ; preds = %60
  %74 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %75

75:                                               ; preds = %73, %71
  %.pn = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %76

76:                                               ; preds = %75, %69
  %.pn.pn = phi { ptr, i32 } [ %.pn, %75 ], [ %70, %69 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %77

77:                                               ; preds = %76, %67
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %76 ], [ %68, %67 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %78

78:                                               ; preds = %77, %65
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %77 ], [ %66, %65 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %79

79:                                               ; preds = %78, %63
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %78 ], [ %64, %63 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %285

80:                                               ; preds = %62, %50, %9
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #9
  %81 = invoke noalias noundef nonnull dereferenceable(128) ptr @_Znwm(i64 noundef 128) #10
          to label %82 unwind label %102

82:                                               ; preds = %80
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %83 = load i32, ptr %10, align 4, !tbaa !5
  %84 = sext i32 %83 to i64
  invoke void @_ZN9PlanStateC1EP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEl(ptr noundef nonnull align 8 dereferenceable(128) %81, ptr noundef %2, ptr noundef nonnull %18, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %84)
          to label %85 unwind label %106

85:                                               ; preds = %82
  invoke void @_ZNSt10shared_ptrI9PlanStateEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull %81)
          to label %86 unwind label %104

86:                                               ; preds = %85
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  %87 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %88 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %87)
  %89 = and i64 %88, 33554432
  %.not51 = icmp eq i64 %89, 0
  br i1 %.not51, label %122, label %90

90:                                               ; preds = %86
  %91 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %92 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %91)
  %93 = icmp sgt i32 %92, -1
  br i1 %93, label %94, label %122

94:                                               ; preds = %90
  %95 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %96 unwind label %108

96:                                               ; preds = %94
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %97 unwind label %110

97:                                               ; preds = %96
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.24)
          to label %98 unwind label %112

98:                                               ; preds = %97
  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.25)
          to label %99 unwind label %114

99:                                               ; preds = %98
  %100 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %95, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 33554432, i32 noundef 0)
          to label %101 unwind label %116

101:                                              ; preds = %99
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %122

102:                                              ; preds = %80
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %284

104:                                              ; preds = %85
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  br label %284

106:                                              ; preds = %82
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  call void @_ZdlPvm(ptr noundef nonnull %81, i64 noundef 128) #11
  br label %284

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

110:                                              ; preds = %96
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %120

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

114:                                              ; preds = %98
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %118

116:                                              ; preds = %99
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %118

118:                                              ; preds = %116, %114
  %.pn52 = phi { ptr, i32 } [ %117, %116 ], [ %115, %114 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %119

119:                                              ; preds = %118, %112
  %.pn52.pn = phi { ptr, i32 } [ %.pn52, %118 ], [ %113, %112 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %120

120:                                              ; preds = %119, %110
  %.pn52.pn.pn = phi { ptr, i32 } [ %.pn52.pn, %119 ], [ %111, %110 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %121

121:                                              ; preds = %120, %108
  %.pn52.pn.pn.pn = phi { ptr, i32 } [ %.pn52.pn.pn, %120 ], [ %109, %108 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %283

122:                                              ; preds = %101, %90, %86
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #9
  %123 = call noundef ptr @_ZNKSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  invoke void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.123") align 8 %24, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %123)
          to label %.preheader unwind label %131

.preheader:                                       ; preds = %122
  %124 = call noundef zeroext i1 @_ZStneIN10HtnPlanner12SolutionTypeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr null) #9
  br i1 %124, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader, %222
  %125 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  br i1 %125, label %126, label %135

126:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #9
  %127 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #10
          to label %128 unwind label %133

128:                                              ; preds = %126
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %127, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %127) #9
  invoke void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull %127)
          to label %129 unwind label %133

129:                                              ; preds = %128
  %130 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %25) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #9
  br label %135

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

133:                                              ; preds = %128, %126
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #9
  br label %281

135:                                              ; preds = %129, %.lr.ph
  %136 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #9
  invoke void @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %137 unwind label %.loopexit

137:                                              ; preds = %135
  %138 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %139 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %138)
  %140 = and i64 %139, 33554432
  %.not57 = icmp eq i64 %140, 0
  br i1 %.not57, label %185, label %141

141:                                              ; preds = %137
  %142 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %143 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %142)
  %144 = icmp sgt i32 %143, -1
  br i1 %144, label %145, label %185

145:                                              ; preds = %141
  %146 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %147 unwind label %165

147:                                              ; preds = %145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %148 unwind label %167

148:                                              ; preds = %147
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.21)
          to label %149 unwind label %169

149:                                              ; preds = %148
  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.26)
          to label %150 unwind label %171

150:                                              ; preds = %149
  call void @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  invoke void @_ZN10HtnPlanner16ToStringSolutionB5cxx11ESt10shared_ptrINS_12SolutionTypeEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull %32, i1 noundef zeroext false)
          to label %151 unwind label %173

151:                                              ; preds = %150
  %152 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %153 = getelementptr inbounds i8, ptr %152, i64 64
  %154 = load i64, ptr %153, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  %155 = call noundef zeroext i1 @_ZSteqIN10HtnPlanner12SolutionTypeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr null) #9
  br i1 %155, label %160, label %156

156:                                              ; preds = %151
  %157 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  %158 = getelementptr inbounds i8, ptr %157, i64 40
  %159 = load double, ptr %158, align 8, !tbaa !26
  br label %160

160:                                              ; preds = %151, %156
  %161 = phi double [ %159, %156 ], [ -1.000000e+00, %151 ]
  invoke void @_Z12lexical_castINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdET_T0_i(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, double noundef %161, i32 noundef 9)
          to label %162 unwind label %175

162:                                              ; preds = %160
  %163 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEilS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %146, ptr noundef nonnull align 8 dereferenceable(32) %26, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %31, ptr noundef nonnull align 4 dereferenceable(4) %10, i64 noundef %154, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %164 unwind label %177

164:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %185

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

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

165:                                              ; preds = %145
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %184

167:                                              ; preds = %147
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %183

169:                                              ; preds = %148
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %182

171:                                              ; preds = %149
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %181

173:                                              ; preds = %150
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %180

175:                                              ; preds = %160
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %179

177:                                              ; preds = %162
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %179

179:                                              ; preds = %177, %175
  %.pn58 = phi { ptr, i32 } [ %178, %177 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %180

180:                                              ; preds = %179, %173
  %.pn58.pn = phi { ptr, i32 } [ %.pn58, %179 ], [ %174, %173 ]
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %181

181:                                              ; preds = %180, %171
  %.pn58.pn.pn = phi { ptr, i32 } [ %.pn58.pn, %180 ], [ %172, %171 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %182

182:                                              ; preds = %181, %169
  %.pn58.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn, %181 ], [ %170, %169 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %183

183:                                              ; preds = %182, %167
  %.pn58.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn.pn, %182 ], [ %168, %167 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %184

184:                                              ; preds = %183, %165
  %.pn58.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn.pn.pn, %183 ], [ %166, %165 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %281

185:                                              ; preds = %164, %141, %137
  %186 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %187 = getelementptr inbounds i8, ptr %186, i64 56
  %188 = load ptr, ptr %187, align 8, !tbaa !28
  %189 = call noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %188)
  br i1 %189, label %._crit_edge, label %190

190:                                              ; preds = %185
  %191 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %192 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %191)
  %193 = and i64 %192, 33554432
  %.not65 = icmp eq i64 %193, 0
  br i1 %.not65, label %220, label %194

194:                                              ; preds = %190
  %195 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %196 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %195)
  %197 = icmp sgt i32 %196, -1
  br i1 %197, label %198, label %220

198:                                              ; preds = %194
  %199 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %200 unwind label %206

200:                                              ; preds = %198
  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 %201 unwind label %208

201:                                              ; preds = %200
  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.24)
          to label %202 unwind label %210

202:                                              ; preds = %201
  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.25)
          to label %203 unwind label %212

203:                                              ; preds = %202
  %204 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %199, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 33554432, i32 noundef 0)
          to label %205 unwind label %214

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

206:                                              ; preds = %198
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %219

208:                                              ; preds = %200
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %218

210:                                              ; preds = %201
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %217

212:                                              ; preds = %202
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %216

214:                                              ; preds = %203
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %216

216:                                              ; preds = %214, %212
  %.pn66 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %217

217:                                              ; preds = %216, %210
  %.pn66.pn = phi { ptr, i32 } [ %.pn66, %216 ], [ %211, %210 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %218

218:                                              ; preds = %217, %208
  %.pn66.pn.pn = phi { ptr, i32 } [ %.pn66.pn, %217 ], [ %209, %208 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %219

219:                                              ; preds = %218, %206
  %.pn66.pn.pn.pn = phi { ptr, i32 } [ %.pn66.pn.pn, %218 ], [ %207, %206 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  br label %281

220:                                              ; preds = %205, %194, %190
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #9
  %221 = call noundef ptr @_ZNKSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  invoke void @_ZN10HtnPlanner12FindNextPlanEP9PlanState(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.123") align 8 %39, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr noundef %221)
          to label %222 unwind label %225

222:                                              ; preds = %220
  %223 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN10HtnPlanner12SolutionTypeEEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %39) #9
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #9
  %224 = call noundef zeroext i1 @_ZStneIN10HtnPlanner12SolutionTypeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr null) #9
  br i1 %224, label %.lr.ph, label %._crit_edge, !llvm.loop !29

225:                                              ; preds = %220
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #9
  br label %281

._crit_edge:                                      ; preds = %222, %185, %.preheader
  %.not71 = icmp eq ptr %6, null
  br i1 %.not71, label %231, label %227

227:                                              ; preds = %._crit_edge
  %228 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %229 = getelementptr inbounds i8, ptr %228, i64 64
  %230 = load i64, ptr %229, align 8, !tbaa !9
  store i64 %230, ptr %6, align 8, !tbaa !31
  br label %231

231:                                              ; preds = %227, %._crit_edge
  %232 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  br i1 %232, label %233, label %243

233:                                              ; preds = %231
  %.not72 = icmp eq ptr %7, null
  br i1 %.not72, label %238, label %234

234:                                              ; preds = %233
  %235 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %236 = getelementptr inbounds i8, ptr %235, i64 48
  %237 = load i32, ptr %236, align 8, !tbaa !32
  store i32 %237, ptr %7, align 4, !tbaa !5
  br label %238

238:                                              ; preds = %234, %233
  %.not73 = icmp eq ptr %8, null
  br i1 %.not73, label %243, label %239

239:                                              ; preds = %238
  %240 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %241 = getelementptr inbounds i8, ptr %240, i64 24
  %242 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %241)
          to label %243 unwind label %.loopexit.split-lp

243:                                              ; preds = %238, %239, %231
  %244 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %245 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %244)
  %246 = and i64 %245, 33554432
  %.not74 = icmp eq i64 %246, 0
  br i1 %.not74, label %280, label %247

247:                                              ; preds = %243
  %248 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %249 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %248)
  %250 = icmp sgt i32 %249, -1
  br i1 %250, label %251, label %280

251:                                              ; preds = %247
  %252 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, i64 noundef 0, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %253 unwind label %263

253:                                              ; preds = %251
  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 %254 unwind label %265

254:                                              ; preds = %253
  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.27)
          to label %255 unwind label %267

255:                                              ; preds = %254
  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.28)
          to label %256 unwind label %269

256:                                              ; preds = %255
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull %46, i1 noundef zeroext false)
          to label %257 unwind label %271

257:                                              ; preds = %256
  %258 = call noundef ptr @_ZNKSt19__shared_ptr_accessI9PlanStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  %259 = getelementptr inbounds i8, ptr %258, i64 64
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEilEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %252, ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 33554432, i32 noundef 0, ptr noundef nonnull %45, ptr noundef nonnull align 4 dereferenceable(4) %10, i64 noundef %260)
          to label %262 unwind label %273

262:                                              ; preds = %257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  br label %280

263:                                              ; preds = %251
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %279

265:                                              ; preds = %253
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %278

267:                                              ; preds = %254
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %277

269:                                              ; preds = %255
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %276

271:                                              ; preds = %256
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %275

273:                                              ; preds = %257
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %275

275:                                              ; preds = %273, %271
  %.pn75 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ]
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %276

276:                                              ; preds = %275, %269
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %275 ], [ %270, %269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %277

277:                                              ; preds = %276, %267
  %.pn75.pn.pn = phi { ptr, i32 } [ %.pn75.pn, %276 ], [ %268, %267 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %278

278:                                              ; preds = %277, %265
  %.pn75.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn, %277 ], [ %266, %265 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %279

279:                                              ; preds = %278, %263
  %.pn75.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn, %278 ], [ %264, %263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  br label %281

280:                                              ; preds = %262, %247, %243
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #9
  call void @_ZNSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #9
  ret void

281:                                              ; preds = %.loopexit, %.loopexit.split-lp, %279, %225, %219, %184, %133
  %.pn75.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn, %279 ], [ %226, %225 ], [ %.pn66.pn.pn.pn, %219 ], [ %.pn58.pn.pn.pn.pn.pn, %184 ], [ %134, %133 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt12__shared_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  br label %282

282:                                              ; preds = %281, %131
  %.pn75.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn, %281 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #9
  br label %283

283:                                              ; preds = %282, %121
  %.pn75.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn, %282 ], [ %.pn52.pn.pn.pn, %121 ]
  call void @_ZNSt12__shared_ptrI9PlanStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  br label %284

284:                                              ; preds = %104, %106, %283, %102
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn, %283 ], [ %107, %106 ], [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #9
  br label %285

285:                                              ; preds = %284, %79
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn, %284 ], [ %.pn.pn.pn.pn.pn, %79 ]
  resume { ptr, i32 } %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(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_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_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 @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

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

; 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(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 void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_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_ptrIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

declare void @_ZN9PlanStateC1EP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEl(ptr, ptr, ptr, ptr, i64) local_unnamed_addr

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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { 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 #7 = { "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 = { 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 #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !19, i64 64}
!10 = !{!"_ZTS9PlanState", !6, i64 0, !11, i64 8, !15, i64 24, !6, i64 48, !13, i64 56, !19, i64 64, !20, i64 72, !22, i64 88, !19, i64 96, !6, i64 104, !23, i64 108, !24, i64 112}
!11 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !12, i64 0}
!12 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !13, 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", !13, i64 0, !13, i64 8, !13, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTSSt10shared_ptrI10HtnRuleSetE", !21, i64 0}
!21 = !{!"_ZTSSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE", !13, 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", !13, i64 0, !14, i64 8}
!26 = !{!27, !22, i64 40}
!27 = !{!"_ZTSN10HtnPlanner12SolutionTypeE", !15, i64 0, !20, i64 24, !22, i64 40, !19, i64 48}
!28 = !{!10, !13, i64 56}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!19, !19, i64 0}
!32 = !{!10, !6, i64 48}


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