; LLVM IR from EricZinda/InductorHtn :: src/Tests/Htn (HtnPlannerTests)

; 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.76" = type { %"class.std::__shared_ptr.77" }
%"class.std::__shared_ptr.77" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.29" = type { %"class.std::__shared_ptr.30" }
%"class.std::__shared_ptr.30" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.50" = type { %"class.std::__shared_ptr.51" }
%"class.std::__shared_ptr.51" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.65" = type { %"class.std::__shared_ptr.66" }
%"class.std::__shared_ptr.66" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.82" = type { %"class.std::__shared_ptr.83" }
%"class.std::__shared_ptr.83" = type { ptr, %"class.std::__shared_count" }
%"class.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [192 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [210 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [252 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [227 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [277 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [198 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [252 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [218 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [267 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [420 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [470 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [338 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [388 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [243 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [293 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [195 x i8], align 1

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

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

declare void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088)) unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #3

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

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

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

declare void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136)) unnamed_addr #2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 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) #6

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext) #5

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv() #2

declare void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(30), ptr noundef) #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv() #2

declare void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30), ptr noundef nonnull align 8 dereferenceable(30), i32 noundef) unnamed_addr #2

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #7

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

declare void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.29") align 8, ptr noundef nonnull align 8 dereferenceable(88)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88)) #5 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)) #5 align 2

declare void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) #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 #5 align 2

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

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

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

declare void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(420), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests20TestPlannerSetOfTest7RunImplEv(ptr noundef nonnull align 8 dereferenceable(49) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::shared_ptr", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::shared_ptr.29", align 8
  %7 = alloca %"class.std::shared_ptr.50", align 8
  %8 = alloca %"class.std::shared_ptr.65", align 8
  %9 = alloca %"class.std::shared_ptr.76", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::shared_ptr.82", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__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::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__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.UnitTest::TestDetails", align 8
  %31 = alloca %"class.UnitTest::TestDetails", align 8
  %32 = alloca %"class.std::shared_ptr.76", align 8
  %33 = alloca %"class.std::shared_ptr.29", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::shared_ptr.76", align 8
  %36 = alloca %"class.UnitTest::TestDetails", align 8
  %37 = alloca %"class.UnitTest::TestDetails", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::shared_ptr.76", align 8
  %40 = alloca %"class.UnitTest::TestDetails", align 8
  %41 = alloca %"class.UnitTest::TestDetails", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.UnitTest::TestDetails", align 8
  %53 = alloca %"class.UnitTest::TestDetails", align 8
  %54 = alloca %"class.std::shared_ptr.76", align 8
  %55 = alloca %"class.std::shared_ptr.29", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::shared_ptr.76", align 8
  %58 = alloca %"class.UnitTest::TestDetails", align 8
  %59 = alloca %"class.UnitTest::TestDetails", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::shared_ptr.76", align 8
  %62 = alloca %"class.UnitTest::TestDetails", align 8
  %63 = alloca %"class.UnitTest::TestDetails", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.UnitTest::TestDetails", align 8
  %75 = alloca %"class.UnitTest::TestDetails", align 8
  %76 = alloca %"class.std::shared_ptr.76", align 8
  %77 = alloca %"class.std::shared_ptr.29", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::shared_ptr.76", align 8
  %80 = alloca %"class.UnitTest::TestDetails", align 8
  %81 = alloca %"class.UnitTest::TestDetails", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::shared_ptr.76", align 8
  %84 = alloca %"class.UnitTest::TestDetails", align 8
  %85 = alloca %"class.UnitTest::TestDetails", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.UnitTest::TestDetails", align 8
  %98 = alloca %"class.UnitTest::TestDetails", align 8
  %99 = alloca %"class.std::shared_ptr.76", align 8
  %100 = alloca %"class.std::shared_ptr.29", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::shared_ptr.76", align 8
  %103 = alloca %"class.UnitTest::TestDetails", align 8
  %104 = alloca %"class.UnitTest::TestDetails", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::shared_ptr.76", align 8
  %107 = alloca %"class.UnitTest::TestDetails", align 8
  %108 = alloca %"class.UnitTest::TestDetails", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.UnitTest::TestDetails", align 8
  %120 = alloca %"class.UnitTest::TestDetails", align 8
  %121 = alloca %"class.std::shared_ptr.76", align 8
  %122 = alloca %"class.std::shared_ptr.29", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::shared_ptr.76", align 8
  %125 = alloca %"class.UnitTest::TestDetails", align 8
  %126 = alloca %"class.UnitTest::TestDetails", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::shared_ptr.76", align 8
  %129 = alloca %"class.UnitTest::TestDetails", align 8
  %130 = alloca %"class.UnitTest::TestDetails", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.UnitTest::TestDetails", align 8
  %142 = alloca %"class.UnitTest::TestDetails", align 8
  %143 = alloca %"class.std::shared_ptr.76", align 8
  %144 = alloca %"class.std::shared_ptr.29", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::shared_ptr.76", align 8
  %147 = alloca %"class.UnitTest::TestDetails", align 8
  %148 = alloca %"class.UnitTest::TestDetails", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::shared_ptr.76", align 8
  %151 = alloca %"class.UnitTest::TestDetails", align 8
  %152 = alloca %"class.UnitTest::TestDetails", align 8
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.UnitTest::TestDetails", align 8
  %165 = alloca %"class.UnitTest::TestDetails", align 8
  %166 = alloca %"class.std::shared_ptr.76", align 8
  %167 = alloca %"class.std::shared_ptr.29", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::shared_ptr.76", align 8
  %170 = alloca %"class.UnitTest::TestDetails", align 8
  %171 = alloca %"class.UnitTest::TestDetails", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::shared_ptr.76", align 8
  %174 = alloca %"class.UnitTest::TestDetails", align 8
  %175 = alloca %"class.UnitTest::TestDetails", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.UnitTest::TestDetails", align 8
  %188 = alloca %"class.UnitTest::TestDetails", align 8
  %189 = alloca %"class.std::shared_ptr.76", align 8
  %190 = alloca %"class.std::shared_ptr.29", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::shared_ptr.76", align 8
  %193 = alloca %"class.UnitTest::TestDetails", align 8
  %194 = alloca %"class.UnitTest::TestDetails", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::shared_ptr.76", align 8
  %197 = alloca %"class.UnitTest::TestDetails", align 8
  %198 = alloca %"class.UnitTest::TestDetails", align 8
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.UnitTest::TestDetails", align 8
  %213 = alloca %"class.UnitTest::TestDetails", align 8
  %214 = alloca %"class.std::shared_ptr.76", align 8
  %215 = alloca %"class.std::shared_ptr.29", align 8
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::shared_ptr.76", align 8
  %218 = alloca %"class.UnitTest::TestDetails", align 8
  %219 = alloca %"class.UnitTest::TestDetails", align 8
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::shared_ptr.76", align 8
  %222 = alloca %"class.UnitTest::TestDetails", align 8
  %223 = alloca %"class.UnitTest::TestDetails", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.UnitTest::TestDetails", align 8
  %238 = alloca %"class.UnitTest::TestDetails", align 8
  %239 = alloca %"class.std::shared_ptr.76", align 8
  %240 = alloca %"class.std::shared_ptr.29", align 8
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::shared_ptr.76", align 8
  %243 = alloca %"class.UnitTest::TestDetails", align 8
  %244 = alloca %"class.UnitTest::TestDetails", align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::shared_ptr.76", align 8
  %247 = alloca %"class.UnitTest::TestDetails", align 8
  %248 = alloca %"class.UnitTest::TestDetails", align 8
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.UnitTest::TestDetails", align 8
  %260 = alloca %"class.UnitTest::TestDetails", align 8
  %261 = alloca %"class.std::shared_ptr.76", align 8
  %262 = alloca %"class.std::shared_ptr.29", align 8
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::shared_ptr.76", align 8
  %265 = alloca %"class.UnitTest::TestDetails", align 8
  %266 = alloca %"class.UnitTest::TestDetails", align 8
  %267 = alloca %"class.std::__cxx11::basic_string", align 8
  %268 = alloca %"class.std::shared_ptr.76", align 8
  %269 = alloca %"class.UnitTest::TestDetails", align 8
  %270 = alloca %"class.UnitTest::TestDetails", align 8
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca %"class.std::__cxx11::basic_string", align 8
  %280 = alloca %"class.std::__cxx11::basic_string", align 8
  %281 = alloca %"class.UnitTest::TestDetails", align 8
  %282 = alloca %"class.UnitTest::TestDetails", align 8
  %283 = alloca %"class.std::shared_ptr.76", align 8
  %284 = alloca %"class.std::shared_ptr.29", align 8
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.std::shared_ptr.76", align 8
  %287 = alloca %"class.UnitTest::TestDetails", align 8
  %288 = alloca %"class.UnitTest::TestDetails", align 8
  %289 = alloca %"class.std::__cxx11::basic_string", align 8
  %290 = alloca %"class.std::shared_ptr.76", align 8
  %291 = alloca %"class.UnitTest::TestDetails", align 8
  %292 = alloca %"class.UnitTest::TestDetails", align 8
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.UnitTest::TestDetails", align 8
  %304 = alloca %"class.UnitTest::TestDetails", align 8
  %305 = alloca %"class.std::shared_ptr.76", align 8
  %306 = alloca %"class.std::shared_ptr.29", align 8
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %"class.std::shared_ptr.76", align 8
  %309 = alloca %"class.UnitTest::TestDetails", align 8
  %310 = alloca %"class.UnitTest::TestDetails", align 8
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::shared_ptr.76", align 8
  %313 = alloca %"class.UnitTest::TestDetails", align 8
  %314 = alloca %"class.UnitTest::TestDetails", align 8
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::__cxx11::basic_string", align 8
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::__cxx11::basic_string", align 8
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.UnitTest::TestDetails", align 8
  %327 = alloca %"class.UnitTest::TestDetails", align 8
  %328 = alloca %"class.std::shared_ptr.76", align 8
  %329 = alloca %"class.std::shared_ptr.29", align 8
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca %"class.std::shared_ptr.76", align 8
  %332 = alloca %"class.UnitTest::TestDetails", align 8
  %333 = alloca %"class.UnitTest::TestDetails", align 8
  %334 = alloca %"class.std::__cxx11::basic_string", align 8
  %335 = alloca %"class.std::shared_ptr.76", align 8
  %336 = alloca %"class.UnitTest::TestDetails", align 8
  %337 = alloca %"class.UnitTest::TestDetails", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::__cxx11::basic_string", align 8
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::__cxx11::basic_string", align 8
  %347 = alloca %"class.std::__cxx11::basic_string", align 8
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.UnitTest::TestDetails", align 8
  %350 = alloca %"class.UnitTest::TestDetails", align 8
  %351 = alloca %"class.std::shared_ptr.76", align 8
  %352 = alloca %"class.std::shared_ptr.29", align 8
  %353 = alloca %"class.std::__cxx11::basic_string", align 8
  %354 = alloca %"class.std::shared_ptr.76", align 8
  %355 = alloca %"class.UnitTest::TestDetails", align 8
  %356 = alloca %"class.UnitTest::TestDetails", align 8
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca %"class.std::shared_ptr.76", align 8
  %359 = alloca %"class.UnitTest::TestDetails", align 8
  %360 = alloca %"class.UnitTest::TestDetails", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::__cxx11::basic_string", align 8
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"class.std::__cxx11::basic_string", align 8
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.std::__cxx11::basic_string", align 8
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::__cxx11::basic_string", align 8
  %374 = alloca %"class.UnitTest::TestDetails", align 8
  %375 = alloca %"class.UnitTest::TestDetails", align 8
  %376 = alloca %"class.std::shared_ptr.76", align 8
  %377 = alloca %"class.std::shared_ptr.29", align 8
  %378 = alloca %"class.std::__cxx11::basic_string", align 8
  %379 = alloca %"class.std::shared_ptr.76", align 8
  %380 = alloca %"class.UnitTest::TestDetails", align 8
  %381 = alloca %"class.UnitTest::TestDetails", align 8
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::shared_ptr.76", align 8
  %384 = alloca %"class.UnitTest::TestDetails", align 8
  %385 = alloca %"class.UnitTest::TestDetails", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %386 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #8
  %387 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 33088) #9
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %387)
          to label %388 unwind label %439

388:                                              ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef %387)
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #8
  %389 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #9
          to label %390 unwind label %443

390:                                              ; preds = %388
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %389)
          to label %391 unwind label %447

391:                                              ; preds = %390
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %389)
          to label %392 unwind label %443

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #8
  %393 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #9
          to label %394 unwind label %451

394:                                              ; preds = %392
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %393)
          to label %395 unwind label %455

395:                                              ; preds = %394
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef %393)
          to label %396 unwind label %451

396:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #8
  %397 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #9
          to label %398 unwind label %459

398:                                              ; preds = %396
  %399 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %400 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  %401 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %397, ptr noundef %399, ptr noundef %400, ptr noundef %401)
          to label %402 unwind label %463

402:                                              ; preds = %398
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef %397)
          to label %403 unwind label %459

403:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #8
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str)
          to label %404 unwind label %467

404:                                              ; preds = %403
  %405 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  %406 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %407 = load ptr, ptr %406, align 8, !tbaa !9
  %408 = getelementptr inbounds ptr, ptr %407, i64 5
  %409 = load ptr, ptr %408, align 8
  invoke void %409(ptr noundef nonnull align 8 dereferenceable(96) %406)
          to label %410 unwind label %471

410:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.55)
          to label %411 unwind label %475

411:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.82)
          to label %412 unwind label %479

412:                                              ; preds = %411
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.83)
          to label %413 unwind label %483

413:                                              ; preds = %412
  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.84)
          to label %414 unwind label %487

414:                                              ; preds = %413
  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.85)
          to label %415 unwind label %491

415:                                              ; preds = %414
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str)
          to label %416 unwind label %495

416:                                              ; preds = %415
  %417 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.44)
          to label %418 unwind label %504

418:                                              ; preds = %416
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str)
          to label %419 unwind label %508

419:                                              ; preds = %418
  %420 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %421

421:                                              ; preds = %419
  %422 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %423 unwind label %513

423:                                              ; preds = %421
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %424 unwind label %517

424:                                              ; preds = %423
  %425 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef %28)
          to label %426 unwind label %521

426:                                              ; preds = %424
  %427 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %425)
          to label %428 unwind label %521

428:                                              ; preds = %426
  %429 = xor i1 %427, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br i1 %429, label %430, label %570

430:                                              ; preds = %428
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %432 unwind label %527

432:                                              ; preds = %430
  %433 = load ptr, ptr %431, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %435 unwind label %531

435:                                              ; preds = %432
  %436 = load ptr, ptr %434, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef nonnull align 8 dereferenceable(30) %436, i32 noundef 402)
          to label %437 unwind label %531

437:                                              ; preds = %435
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %433, ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef @.str.5)
          to label %438 unwind label %531

438:                                              ; preds = %437
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %570

439:                                              ; preds = %1
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %4, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %387, i64 noundef 33088) #10
  br label %4078

443:                                              ; preds = %391, %388
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %4, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %5, align 4
  br label %4077

447:                                              ; preds = %390
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %4, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %389, i64 noundef 144) #10
  br label %4077

451:                                              ; preds = %395, %392
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %4, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %5, align 4
  br label %4076

455:                                              ; preds = %394
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %4, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %393, i64 noundef 136) #10
  br label %4076

459:                                              ; preds = %402, %396
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %4, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %5, align 4
  br label %4075

463:                                              ; preds = %398
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %4, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %397, i64 noundef 96) #10
  br label %4075

467:                                              ; preds = %403
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %4, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  br label %4074

471:                                              ; preds = %4059, %4011, %3944, %3824, %3820, %3772, %3705, %3597, %3593, %3545, %3478, %3370, %3366, %3318, %3251, %3149, %3145, %3097, %3030, %2928, %2924, %2876, %2809, %2707, %2703, %2655, %2588, %2468, %2464, %2416, %2349, %2229, %2225, %2177, %2110, %2002, %1998, %1950, %1883, %1775, %1771, %1723, %1656, %1554, %1550, %1502, %1435, %1333, %1329, %1281, %1214, %1106, %1102, %1054, %987, %885, %881, %833, %766, %664, %660, %612, %545, %404
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %4, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %5, align 4
  br label %4074

475:                                              ; preds = %410
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %4, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %5, align 4
  br label %503

479:                                              ; preds = %411
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %4, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %5, align 4
  br label %502

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

487:                                              ; preds = %413
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %4, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %5, align 4
  br label %500

491:                                              ; preds = %414
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %4, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %5, align 4
  br label %499

495:                                              ; preds = %415
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %4, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %499

499:                                              ; preds = %495, %491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %500

500:                                              ; preds = %499, %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %501

501:                                              ; preds = %500, %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %502

502:                                              ; preds = %501, %479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %503

503:                                              ; preds = %502, %475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %4074

504:                                              ; preds = %416
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %4, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %5, align 4
  br label %512

508:                                              ; preds = %418
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %4, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %512

512:                                              ; preds = %508, %504
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %4074

513:                                              ; preds = %421
  %514 = landingpad { ptr, i32 }
          catch ptr null
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %4, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %5, align 4
  br label %526

517:                                              ; preds = %423
  %518 = landingpad { ptr, i32 }
          catch ptr null
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %4, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %5, align 4
  br label %525

521:                                              ; preds = %426, %424
  %522 = landingpad { ptr, i32 }
          catch ptr null
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %4, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %525

525:                                              ; preds = %521, %517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %526

526:                                              ; preds = %525, %513
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %535

527:                                              ; preds = %430
  %528 = landingpad { ptr, i32 }
          catch ptr null
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %4, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %5, align 4
  br label %535

531:                                              ; preds = %437, %435, %432
  %532 = landingpad { ptr, i32 }
          catch ptr null
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %4, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %535

535:                                              ; preds = %531, %527, %526
  %536 = load ptr, ptr %4, align 8
  %537 = call ptr @__cxa_begin_catch(ptr %536) #8
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %539 unwind label %571

539:                                              ; preds = %535
  %540 = load ptr, ptr %538, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %542 unwind label %575

542:                                              ; preds = %539
  %543 = load ptr, ptr %541, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %31, ptr noundef nonnull align 8 dereferenceable(30) %543, i32 noundef 402)
          to label %544 unwind label %575

544:                                              ; preds = %542
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %540, ptr noundef nonnull align 8 dereferenceable(30) %31, ptr noundef @.str.6)
          to label %545 unwind label %575

545:                                              ; preds = %544
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  invoke void @__cxa_end_catch()
          to label %546 unwind label %471

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %570, %546
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #8
  %550 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %551 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %552 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %33, ptr noundef nonnull align 8 dereferenceable(88) %552)
          to label %553 unwind label %581

553:                                              ; preds = %549
  %554 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %555 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %554)
          to label %556 unwind label %585

556:                                              ; preds = %553
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %32, ptr noundef nonnull align 8 dereferenceable(136) %550, ptr noundef %551, ptr noundef %33, ptr noundef nonnull align 8 dereferenceable(24) %555, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %557 unwind label %585

557:                                              ; preds = %556
  %558 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef %35, i1 noundef zeroext false)
          to label %559 unwind label %590

559:                                              ; preds = %557
  %560 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %561

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %563 unwind label %594

563:                                              ; preds = %561
  %564 = load ptr, ptr %562, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %566 unwind label %598

566:                                              ; preds = %563
  %567 = load ptr, ptr %565, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef nonnull align 8 dereferenceable(30) %567, i32 noundef 405)
          to label %568 unwind label %598

568:                                              ; preds = %566
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA98_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %564, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(98) @.str.86, ptr noundef nonnull align 8 dereferenceable(30) %36)
          to label %569 unwind label %598

569:                                              ; preds = %568
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %614

570:                                              ; preds = %438, %428
  br label %547

571:                                              ; preds = %535
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %4, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %5, align 4
  br label %579

575:                                              ; preds = %544, %542, %539
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %4, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %579

579:                                              ; preds = %575, %571
  invoke void @__cxa_end_catch()
          to label %580 unwind label %4084

580:                                              ; preds = %579
  br label %4074

581:                                              ; preds = %549
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %4, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %5, align 4
  br label %589

585:                                              ; preds = %556, %553
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %4, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  br label %589

589:                                              ; preds = %585, %581
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  br label %4074

590:                                              ; preds = %557
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %4, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %4074

594:                                              ; preds = %561
  %595 = landingpad { ptr, i32 }
          catch ptr null
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %4, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %5, align 4
  br label %602

598:                                              ; preds = %568, %566, %563
  %599 = landingpad { ptr, i32 }
          catch ptr null
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %4, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %602

602:                                              ; preds = %598, %594
  %603 = load ptr, ptr %4, align 8
  %604 = call ptr @__cxa_begin_catch(ptr %603) #8
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %606 unwind label %628

606:                                              ; preds = %602
  %607 = load ptr, ptr %605, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  %608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %609 unwind label %632

609:                                              ; preds = %606
  %610 = load ptr, ptr %608, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %610, i32 noundef 405)
          to label %611 unwind label %632

611:                                              ; preds = %609
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %607, ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef @.str.87)
          to label %612 unwind label %632

612:                                              ; preds = %611
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  invoke void @__cxa_end_catch()
          to label %613 unwind label %471

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613, %569
  br label %615

615:                                              ; preds = %614
  br label %616

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef %39)
          to label %617 unwind label %638

617:                                              ; preds = %616
  %618 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %619

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %621 unwind label %642

621:                                              ; preds = %619
  %622 = load ptr, ptr %620, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  %623 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %624 unwind label %646

624:                                              ; preds = %621
  %625 = load ptr, ptr %623, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef nonnull align 8 dereferenceable(30) %625, i32 noundef 407)
          to label %626 unwind label %646

626:                                              ; preds = %624
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %622, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(142) @.str.88, ptr noundef nonnull align 8 dereferenceable(30) %40)
          to label %627 unwind label %646

627:                                              ; preds = %626
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %662

628:                                              ; preds = %602
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %4, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %5, align 4
  br label %636

632:                                              ; preds = %611, %609, %606
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %4, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %636

636:                                              ; preds = %632, %628
  invoke void @__cxa_end_catch()
          to label %637 unwind label %4084

637:                                              ; preds = %636
  br label %4074

638:                                              ; preds = %616
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %4, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %4074

642:                                              ; preds = %619
  %643 = landingpad { ptr, i32 }
          catch ptr null
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %4, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %5, align 4
  br label %650

646:                                              ; preds = %626, %624, %621
  %647 = landingpad { ptr, i32 }
          catch ptr null
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %4, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %650

650:                                              ; preds = %646, %642
  %651 = load ptr, ptr %4, align 8
  %652 = call ptr @__cxa_begin_catch(ptr %651) #8
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %654 unwind label %696

654:                                              ; preds = %650
  %655 = load ptr, ptr %653, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %657 unwind label %700

657:                                              ; preds = %654
  %658 = load ptr, ptr %656, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %41, ptr noundef nonnull align 8 dereferenceable(30) %658, i32 noundef 407)
          to label %659 unwind label %700

659:                                              ; preds = %657
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %655, ptr noundef nonnull align 8 dereferenceable(30) %41, ptr noundef @.str.89)
          to label %660 unwind label %700

660:                                              ; preds = %659
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  invoke void @__cxa_end_catch()
          to label %661 unwind label %471

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661, %627
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  %665 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %666 = load ptr, ptr %665, align 8, !tbaa !9
  %667 = getelementptr inbounds ptr, ptr %666, i64 5
  %668 = load ptr, ptr %667, align 8
  invoke void %668(ptr noundef nonnull align 8 dereferenceable(96) %665)
          to label %669 unwind label %471

669:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.55)
          to label %670 unwind label %706

670:                                              ; preds = %669
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.82)
          to label %671 unwind label %710

671:                                              ; preds = %670
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.90)
          to label %672 unwind label %714

672:                                              ; preds = %671
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str)
          to label %673 unwind label %718

673:                                              ; preds = %672
  %674 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.44)
          to label %675 unwind label %725

675:                                              ; preds = %673
  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)
          to label %676 unwind label %729

676:                                              ; preds = %675
  %677 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %678

678:                                              ; preds = %676
  %679 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %680 unwind label %734

680:                                              ; preds = %678
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %681 unwind label %738

681:                                              ; preds = %680
  %682 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %679, ptr noundef %50)
          to label %683 unwind label %742

683:                                              ; preds = %681
  %684 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %682)
          to label %685 unwind label %742

685:                                              ; preds = %683
  %686 = xor i1 %684, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br i1 %686, label %687, label %791

687:                                              ; preds = %685
  %688 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %689 unwind label %748

689:                                              ; preds = %687
  %690 = load ptr, ptr %688, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %692 unwind label %752

692:                                              ; preds = %689
  %693 = load ptr, ptr %691, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %52, ptr noundef nonnull align 8 dereferenceable(30) %693, i32 noundef 419)
          to label %694 unwind label %752

694:                                              ; preds = %692
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %690, ptr noundef nonnull align 8 dereferenceable(30) %52, ptr noundef @.str.5)
          to label %695 unwind label %752

695:                                              ; preds = %694
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %791

696:                                              ; preds = %650
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %4, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %5, align 4
  br label %704

700:                                              ; preds = %659, %657, %654
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %4, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %704

704:                                              ; preds = %700, %696
  invoke void @__cxa_end_catch()
          to label %705 unwind label %4084

705:                                              ; preds = %704
  br label %4074

706:                                              ; preds = %669
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %4, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %5, align 4
  br label %724

710:                                              ; preds = %670
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %4, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %5, align 4
  br label %723

714:                                              ; preds = %671
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %4, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %5, align 4
  br label %722

718:                                              ; preds = %672
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %4, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %722

722:                                              ; preds = %718, %714
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %723

723:                                              ; preds = %722, %710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %724

724:                                              ; preds = %723, %706
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %4074

725:                                              ; preds = %673
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %4, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %5, align 4
  br label %733

729:                                              ; preds = %675
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %4, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %733

733:                                              ; preds = %729, %725
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %4074

734:                                              ; preds = %678
  %735 = landingpad { ptr, i32 }
          catch ptr null
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %4, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %5, align 4
  br label %747

738:                                              ; preds = %680
  %739 = landingpad { ptr, i32 }
          catch ptr null
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %4, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %5, align 4
  br label %746

742:                                              ; preds = %683, %681
  %743 = landingpad { ptr, i32 }
          catch ptr null
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %4, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %746

746:                                              ; preds = %742, %738
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %747

747:                                              ; preds = %746, %734
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %756

748:                                              ; preds = %687
  %749 = landingpad { ptr, i32 }
          catch ptr null
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %4, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %5, align 4
  br label %756

752:                                              ; preds = %694, %692, %689
  %753 = landingpad { ptr, i32 }
          catch ptr null
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %4, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %756

756:                                              ; preds = %752, %748, %747
  %757 = load ptr, ptr %4, align 8
  %758 = call ptr @__cxa_begin_catch(ptr %757) #8
  %759 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %760 unwind label %792

760:                                              ; preds = %756
  %761 = load ptr, ptr %759, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %763 unwind label %796

763:                                              ; preds = %760
  %764 = load ptr, ptr %762, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %53, ptr noundef nonnull align 8 dereferenceable(30) %764, i32 noundef 419)
          to label %765 unwind label %796

765:                                              ; preds = %763
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %761, ptr noundef nonnull align 8 dereferenceable(30) %53, ptr noundef @.str.6)
          to label %766 unwind label %796

766:                                              ; preds = %765
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  invoke void @__cxa_end_catch()
          to label %767 unwind label %471

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %791, %767
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #8
  %771 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %772 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %773 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %55, ptr noundef nonnull align 8 dereferenceable(88) %773)
          to label %774 unwind label %802

774:                                              ; preds = %770
  %775 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %776 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %775)
          to label %777 unwind label %806

777:                                              ; preds = %774
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %54, ptr noundef nonnull align 8 dereferenceable(136) %771, ptr noundef %772, ptr noundef %55, ptr noundef nonnull align 8 dereferenceable(24) %776, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %778 unwind label %806

778:                                              ; preds = %777
  %779 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %54) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef %57, i1 noundef zeroext false)
          to label %780 unwind label %811

780:                                              ; preds = %778
  %781 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %782

782:                                              ; preds = %780
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %784 unwind label %815

784:                                              ; preds = %782
  %785 = load ptr, ptr %783, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %787 unwind label %819

787:                                              ; preds = %784
  %788 = load ptr, ptr %786, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %58, ptr noundef nonnull align 8 dereferenceable(30) %788, i32 noundef 422)
          to label %789 unwind label %819

789:                                              ; preds = %787
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %785, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(36) @.str.91, ptr noundef nonnull align 8 dereferenceable(30) %58)
          to label %790 unwind label %819

790:                                              ; preds = %789
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %835

791:                                              ; preds = %695, %685
  br label %768

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

796:                                              ; preds = %765, %763, %760
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %4, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %800

800:                                              ; preds = %796, %792
  invoke void @__cxa_end_catch()
          to label %801 unwind label %4084

801:                                              ; preds = %800
  br label %4074

802:                                              ; preds = %770
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %4, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %5, align 4
  br label %810

806:                                              ; preds = %777, %774
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %4, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  br label %810

810:                                              ; preds = %806, %802
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #8
  br label %4074

811:                                              ; preds = %778
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %4, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %4074

815:                                              ; preds = %782
  %816 = landingpad { ptr, i32 }
          catch ptr null
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %4, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %5, align 4
  br label %823

819:                                              ; preds = %789, %787, %784
  %820 = landingpad { ptr, i32 }
          catch ptr null
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %4, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %823

823:                                              ; preds = %819, %815
  %824 = load ptr, ptr %4, align 8
  %825 = call ptr @__cxa_begin_catch(ptr %824) #8
  %826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %827 unwind label %849

827:                                              ; preds = %823
  %828 = load ptr, ptr %826, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %830 unwind label %853

830:                                              ; preds = %827
  %831 = load ptr, ptr %829, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %831, i32 noundef 422)
          to label %832 unwind label %853

832:                                              ; preds = %830
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %828, ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef @.str.92)
          to label %833 unwind label %853

833:                                              ; preds = %832
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  invoke void @__cxa_end_catch()
          to label %834 unwind label %471

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834, %790
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef %61)
          to label %838 unwind label %859

838:                                              ; preds = %837
  %839 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %840

840:                                              ; preds = %838
  %841 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %842 unwind label %863

842:                                              ; preds = %840
  %843 = load ptr, ptr %841, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %845 unwind label %867

845:                                              ; preds = %842
  %846 = load ptr, ptr %844, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %62, ptr noundef nonnull align 8 dereferenceable(30) %846, i32 noundef 424)
          to label %847 unwind label %867

847:                                              ; preds = %845
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA115_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %843, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(115) @.str.93, ptr noundef nonnull align 8 dereferenceable(30) %62)
          to label %848 unwind label %867

848:                                              ; preds = %847
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %883

849:                                              ; preds = %823
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %4, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %5, align 4
  br label %857

853:                                              ; preds = %832, %830, %827
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %4, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  br label %857

857:                                              ; preds = %853, %849
  invoke void @__cxa_end_catch()
          to label %858 unwind label %4084

858:                                              ; preds = %857
  br label %4074

859:                                              ; preds = %837
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %4, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %4074

863:                                              ; preds = %840
  %864 = landingpad { ptr, i32 }
          catch ptr null
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %4, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %5, align 4
  br label %871

867:                                              ; preds = %847, %845, %842
  %868 = landingpad { ptr, i32 }
          catch ptr null
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %4, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %871

871:                                              ; preds = %867, %863
  %872 = load ptr, ptr %4, align 8
  %873 = call ptr @__cxa_begin_catch(ptr %872) #8
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %875 unwind label %917

875:                                              ; preds = %871
  %876 = load ptr, ptr %874, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  %877 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %878 unwind label %921

878:                                              ; preds = %875
  %879 = load ptr, ptr %877, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef nonnull align 8 dereferenceable(30) %879, i32 noundef 424)
          to label %880 unwind label %921

880:                                              ; preds = %878
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %876, ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef @.str.94)
          to label %881 unwind label %921

881:                                              ; preds = %880
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  invoke void @__cxa_end_catch()
          to label %882 unwind label %471

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882, %848
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  %886 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %887 = load ptr, ptr %886, align 8, !tbaa !9
  %888 = getelementptr inbounds ptr, ptr %887, i64 5
  %889 = load ptr, ptr %888, align 8
  invoke void %889(ptr noundef nonnull align 8 dereferenceable(96) %886)
          to label %890 unwind label %471

890:                                              ; preds = %885
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.55)
          to label %891 unwind label %927

891:                                              ; preds = %890
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.82)
          to label %892 unwind label %931

892:                                              ; preds = %891
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.95)
          to label %893 unwind label %935

893:                                              ; preds = %892
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str)
          to label %894 unwind label %939

894:                                              ; preds = %893
  %895 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.44)
          to label %896 unwind label %946

896:                                              ; preds = %894
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str)
          to label %897 unwind label %950

897:                                              ; preds = %896
  %898 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %899

899:                                              ; preds = %897
  %900 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %901 unwind label %955

901:                                              ; preds = %899
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %902 unwind label %959

902:                                              ; preds = %901
  %903 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %900, ptr noundef %72)
          to label %904 unwind label %963

904:                                              ; preds = %902
  %905 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %903)
          to label %906 unwind label %963

906:                                              ; preds = %904
  %907 = xor i1 %905, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br i1 %907, label %908, label %1012

908:                                              ; preds = %906
  %909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %910 unwind label %969

910:                                              ; preds = %908
  %911 = load ptr, ptr %909, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  %912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %913 unwind label %973

913:                                              ; preds = %910
  %914 = load ptr, ptr %912, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %74, ptr noundef nonnull align 8 dereferenceable(30) %914, i32 noundef 436)
          to label %915 unwind label %973

915:                                              ; preds = %913
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %911, ptr noundef nonnull align 8 dereferenceable(30) %74, ptr noundef @.str.5)
          to label %916 unwind label %973

916:                                              ; preds = %915
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %1012

917:                                              ; preds = %871
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %4, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %5, align 4
  br label %925

921:                                              ; preds = %880, %878, %875
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %4, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %925

925:                                              ; preds = %921, %917
  invoke void @__cxa_end_catch()
          to label %926 unwind label %4084

926:                                              ; preds = %925
  br label %4074

927:                                              ; preds = %890
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %4, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %5, align 4
  br label %945

931:                                              ; preds = %891
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %4, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %5, align 4
  br label %944

935:                                              ; preds = %892
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %4, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %5, align 4
  br label %943

939:                                              ; preds = %893
  %940 = landingpad { ptr, i32 }
          cleanup
  %941 = extractvalue { ptr, i32 } %940, 0
  store ptr %941, ptr %4, align 8
  %942 = extractvalue { ptr, i32 } %940, 1
  store i32 %942, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %943

943:                                              ; preds = %939, %935
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %944

944:                                              ; preds = %943, %931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %945

945:                                              ; preds = %944, %927
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  br label %4074

946:                                              ; preds = %894
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %4, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %5, align 4
  br label %954

950:                                              ; preds = %896
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %4, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %954

954:                                              ; preds = %950, %946
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %4074

955:                                              ; preds = %899
  %956 = landingpad { ptr, i32 }
          catch ptr null
  %957 = extractvalue { ptr, i32 } %956, 0
  store ptr %957, ptr %4, align 8
  %958 = extractvalue { ptr, i32 } %956, 1
  store i32 %958, ptr %5, align 4
  br label %968

959:                                              ; preds = %901
  %960 = landingpad { ptr, i32 }
          catch ptr null
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %4, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %5, align 4
  br label %967

963:                                              ; preds = %904, %902
  %964 = landingpad { ptr, i32 }
          catch ptr null
  %965 = extractvalue { ptr, i32 } %964, 0
  store ptr %965, ptr %4, align 8
  %966 = extractvalue { ptr, i32 } %964, 1
  store i32 %966, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %967

967:                                              ; preds = %963, %959
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %968

968:                                              ; preds = %967, %955
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br label %977

969:                                              ; preds = %908
  %970 = landingpad { ptr, i32 }
          catch ptr null
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %4, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %5, align 4
  br label %977

973:                                              ; preds = %915, %913, %910
  %974 = landingpad { ptr, i32 }
          catch ptr null
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %4, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %977

977:                                              ; preds = %973, %969, %968
  %978 = load ptr, ptr %4, align 8
  %979 = call ptr @__cxa_begin_catch(ptr %978) #8
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %981 unwind label %1013

981:                                              ; preds = %977
  %982 = load ptr, ptr %980, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %984 unwind label %1017

984:                                              ; preds = %981
  %985 = load ptr, ptr %983, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %75, ptr noundef nonnull align 8 dereferenceable(30) %985, i32 noundef 436)
          to label %986 unwind label %1017

986:                                              ; preds = %984
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %982, ptr noundef nonnull align 8 dereferenceable(30) %75, ptr noundef @.str.6)
          to label %987 unwind label %1017

987:                                              ; preds = %986
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  invoke void @__cxa_end_catch()
          to label %988 unwind label %471

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %1012, %988
  br label %990

990:                                              ; preds = %989
  br label %991

991:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #8
  %992 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %993 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %994 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %77, ptr noundef nonnull align 8 dereferenceable(88) %994)
          to label %995 unwind label %1023

995:                                              ; preds = %991
  %996 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %997 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %996)
          to label %998 unwind label %1027

998:                                              ; preds = %995
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %76, ptr noundef nonnull align 8 dereferenceable(136) %992, ptr noundef %993, ptr noundef %77, ptr noundef nonnull align 8 dereferenceable(24) %997, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %999 unwind label %1027

999:                                              ; preds = %998
  %1000 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef %79, i1 noundef zeroext false)
          to label %1001 unwind label %1032

1001:                                             ; preds = %999
  %1002 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %1003

1003:                                             ; preds = %1001
  %1004 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1005 unwind label %1036

1005:                                             ; preds = %1003
  %1006 = load ptr, ptr %1004, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  %1007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1008 unwind label %1040

1008:                                             ; preds = %1005
  %1009 = load ptr, ptr %1007, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %80, ptr noundef nonnull align 8 dereferenceable(30) %1009, i32 noundef 439)
          to label %1010 unwind label %1040

1010:                                             ; preds = %1008
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1006, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(79) @.str.96, ptr noundef nonnull align 8 dereferenceable(30) %80)
          to label %1011 unwind label %1040

1011:                                             ; preds = %1010
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %1056

1012:                                             ; preds = %916, %906
  br label %989

1013:                                             ; preds = %977
  %1014 = landingpad { ptr, i32 }
          cleanup
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %4, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %5, align 4
  br label %1021

1017:                                             ; preds = %986, %984, %981
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %4, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %1021

1021:                                             ; preds = %1017, %1013
  invoke void @__cxa_end_catch()
          to label %1022 unwind label %4084

1022:                                             ; preds = %1021
  br label %4074

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

1027:                                             ; preds = %998, %995
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %4, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #8
  br label %1031

1031:                                             ; preds = %1027, %1023
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #8
  br label %4074

1032:                                             ; preds = %999
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %4, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %4074

1036:                                             ; preds = %1003
  %1037 = landingpad { ptr, i32 }
          catch ptr null
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %4, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %5, align 4
  br label %1044

1040:                                             ; preds = %1010, %1008, %1005
  %1041 = landingpad { ptr, i32 }
          catch ptr null
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %4, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %1044

1044:                                             ; preds = %1040, %1036
  %1045 = load ptr, ptr %4, align 8
  %1046 = call ptr @__cxa_begin_catch(ptr %1045) #8
  %1047 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1048 unwind label %1070

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr %1047, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  %1050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1051 unwind label %1074

1051:                                             ; preds = %1048
  %1052 = load ptr, ptr %1050, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull align 8 dereferenceable(30) %1052, i32 noundef 439)
          to label %1053 unwind label %1074

1053:                                             ; preds = %1051
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1049, ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef @.str.97)
          to label %1054 unwind label %1074

1054:                                             ; preds = %1053
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  invoke void @__cxa_end_catch()
          to label %1055 unwind label %471

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055, %1011
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef %83)
          to label %1059 unwind label %1080

1059:                                             ; preds = %1058
  %1060 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %1061

1061:                                             ; preds = %1059
  %1062 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1063 unwind label %1084

1063:                                             ; preds = %1061
  %1064 = load ptr, ptr %1062, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #8
  %1065 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1066 unwind label %1088

1066:                                             ; preds = %1063
  %1067 = load ptr, ptr %1065, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef nonnull align 8 dereferenceable(30) %1067, i32 noundef 441)
          to label %1068 unwind label %1088

1068:                                             ; preds = %1066
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1064, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(160) @.str.98, ptr noundef nonnull align 8 dereferenceable(30) %84)
          to label %1069 unwind label %1088

1069:                                             ; preds = %1068
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  br label %1104

1070:                                             ; preds = %1044
  %1071 = landingpad { ptr, i32 }
          cleanup
  %1072 = extractvalue { ptr, i32 } %1071, 0
  store ptr %1072, ptr %4, align 8
  %1073 = extractvalue { ptr, i32 } %1071, 1
  store i32 %1073, ptr %5, align 4
  br label %1078

1074:                                             ; preds = %1053, %1051, %1048
  %1075 = landingpad { ptr, i32 }
          cleanup
  %1076 = extractvalue { ptr, i32 } %1075, 0
  store ptr %1076, ptr %4, align 8
  %1077 = extractvalue { ptr, i32 } %1075, 1
  store i32 %1077, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  br label %1078

1078:                                             ; preds = %1074, %1070
  invoke void @__cxa_end_catch()
          to label %1079 unwind label %4084

1079:                                             ; preds = %1078
  br label %4074

1080:                                             ; preds = %1058
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %4, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %4074

1084:                                             ; preds = %1061
  %1085 = landingpad { ptr, i32 }
          catch ptr null
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %4, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %5, align 4
  br label %1092

1088:                                             ; preds = %1068, %1066, %1063
  %1089 = landingpad { ptr, i32 }
          catch ptr null
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %4, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  br label %1092

1092:                                             ; preds = %1088, %1084
  %1093 = load ptr, ptr %4, align 8
  %1094 = call ptr @__cxa_begin_catch(ptr %1093) #8
  %1095 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1096 unwind label %1139

1096:                                             ; preds = %1092
  %1097 = load ptr, ptr %1095, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #8
  %1098 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1099 unwind label %1143

1099:                                             ; preds = %1096
  %1100 = load ptr, ptr %1098, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef nonnull align 8 dereferenceable(30) %1100, i32 noundef 441)
          to label %1101 unwind label %1143

1101:                                             ; preds = %1099
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1097, ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef @.str.99)
          to label %1102 unwind label %1143

1102:                                             ; preds = %1101
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  invoke void @__cxa_end_catch()
          to label %1103 unwind label %471

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1103, %1069
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105
  %1107 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1108 = load ptr, ptr %1107, align 8, !tbaa !9
  %1109 = getelementptr inbounds ptr, ptr %1108, i64 5
  %1110 = load ptr, ptr %1109, align 8
  invoke void %1110(ptr noundef nonnull align 8 dereferenceable(96) %1107)
          to label %1111 unwind label %471

1111:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.55)
          to label %1112 unwind label %1149

1112:                                             ; preds = %1111
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.82)
          to label %1113 unwind label %1153

1113:                                             ; preds = %1112
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.100)
          to label %1114 unwind label %1157

1114:                                             ; preds = %1113
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.101)
          to label %1115 unwind label %1161

1115:                                             ; preds = %1114
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str)
          to label %1116 unwind label %1165

1116:                                             ; preds = %1115
  %1117 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.44)
          to label %1118 unwind label %1173

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

1119:                                             ; preds = %1118
  %1120 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  br label %1121

1121:                                             ; preds = %1119
  %1122 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1123 unwind label %1182

1123:                                             ; preds = %1121
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1124 unwind label %1186

1124:                                             ; preds = %1123
  %1125 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1122, ptr noundef %95)
          to label %1126 unwind label %1190

1126:                                             ; preds = %1124
  %1127 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1125)
          to label %1128 unwind label %1190

1128:                                             ; preds = %1126
  %1129 = xor i1 %1127, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  br i1 %1129, label %1130, label %1239

1130:                                             ; preds = %1128
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1132 unwind label %1196

1132:                                             ; preds = %1130
  %1133 = load ptr, ptr %1131, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  %1134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1135 unwind label %1200

1135:                                             ; preds = %1132
  %1136 = load ptr, ptr %1134, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %97, ptr noundef nonnull align 8 dereferenceable(30) %1136, i32 noundef 455)
          to label %1137 unwind label %1200

1137:                                             ; preds = %1135
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1133, ptr noundef nonnull align 8 dereferenceable(30) %97, ptr noundef @.str.5)
          to label %1138 unwind label %1200

1138:                                             ; preds = %1137
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %1239

1139:                                             ; preds = %1092
  %1140 = landingpad { ptr, i32 }
          cleanup
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %4, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %5, align 4
  br label %1147

1143:                                             ; preds = %1101, %1099, %1096
  %1144 = landingpad { ptr, i32 }
          cleanup
  %1145 = extractvalue { ptr, i32 } %1144, 0
  store ptr %1145, ptr %4, align 8
  %1146 = extractvalue { ptr, i32 } %1144, 1
  store i32 %1146, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %1147

1147:                                             ; preds = %1143, %1139
  invoke void @__cxa_end_catch()
          to label %1148 unwind label %4084

1148:                                             ; preds = %1147
  br label %4074

1149:                                             ; preds = %1111
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %4, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %5, align 4
  br label %1172

1153:                                             ; preds = %1112
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %4, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %5, align 4
  br label %1171

1157:                                             ; preds = %1113
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %4, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %5, align 4
  br label %1170

1161:                                             ; preds = %1114
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %4, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %5, align 4
  br label %1169

1165:                                             ; preds = %1115
  %1166 = landingpad { ptr, i32 }
          cleanup
  %1167 = extractvalue { ptr, i32 } %1166, 0
  store ptr %1167, ptr %4, align 8
  %1168 = extractvalue { ptr, i32 } %1166, 1
  store i32 %1168, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %1169

1169:                                             ; preds = %1165, %1161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %1170

1170:                                             ; preds = %1169, %1157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %1171

1171:                                             ; preds = %1170, %1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %1172

1172:                                             ; preds = %1171, %1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  br label %4074

1173:                                             ; preds = %1116
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %4, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %5, align 4
  br label %1181

1177:                                             ; preds = %1118
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %4, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %1181

1181:                                             ; preds = %1177, %1173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  br label %4074

1182:                                             ; preds = %1121
  %1183 = landingpad { ptr, i32 }
          catch ptr null
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %4, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %5, align 4
  br label %1195

1186:                                             ; preds = %1123
  %1187 = landingpad { ptr, i32 }
          catch ptr null
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %4, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %5, align 4
  br label %1194

1190:                                             ; preds = %1126, %1124
  %1191 = landingpad { ptr, i32 }
          catch ptr null
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %4, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  br label %1194

1194:                                             ; preds = %1190, %1186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %1195

1195:                                             ; preds = %1194, %1182
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  br label %1204

1196:                                             ; preds = %1130
  %1197 = landingpad { ptr, i32 }
          catch ptr null
  %1198 = extractvalue { ptr, i32 } %1197, 0
  store ptr %1198, ptr %4, align 8
  %1199 = extractvalue { ptr, i32 } %1197, 1
  store i32 %1199, ptr %5, align 4
  br label %1204

1200:                                             ; preds = %1137, %1135, %1132
  %1201 = landingpad { ptr, i32 }
          catch ptr null
  %1202 = extractvalue { ptr, i32 } %1201, 0
  store ptr %1202, ptr %4, align 8
  %1203 = extractvalue { ptr, i32 } %1201, 1
  store i32 %1203, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %1204

1204:                                             ; preds = %1200, %1196, %1195
  %1205 = load ptr, ptr %4, align 8
  %1206 = call ptr @__cxa_begin_catch(ptr %1205) #8
  %1207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1208 unwind label %1240

1208:                                             ; preds = %1204
  %1209 = load ptr, ptr %1207, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #8
  %1210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1211 unwind label %1244

1211:                                             ; preds = %1208
  %1212 = load ptr, ptr %1210, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %98, ptr noundef nonnull align 8 dereferenceable(30) %1212, i32 noundef 455)
          to label %1213 unwind label %1244

1213:                                             ; preds = %1211
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1209, ptr noundef nonnull align 8 dereferenceable(30) %98, ptr noundef @.str.6)
          to label %1214 unwind label %1244

1214:                                             ; preds = %1213
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  invoke void @__cxa_end_catch()
          to label %1215 unwind label %471

1215:                                             ; preds = %1214
  br label %1216

1216:                                             ; preds = %1239, %1215
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 16, ptr %99) #8
  %1219 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %1220 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %1221 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %100, ptr noundef nonnull align 8 dereferenceable(88) %1221)
          to label %1222 unwind label %1250

1222:                                             ; preds = %1218
  %1223 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1224 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1223)
          to label %1225 unwind label %1254

1225:                                             ; preds = %1222
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %99, ptr noundef nonnull align 8 dereferenceable(136) %1219, ptr noundef %1220, ptr noundef %100, ptr noundef nonnull align 8 dereferenceable(24) %1224, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1226 unwind label %1254

1226:                                             ; preds = %1225
  %1227 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %99) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef %102, i1 noundef zeroext false)
          to label %1228 unwind label %1259

1228:                                             ; preds = %1226
  %1229 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %101) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #8
  br label %1230

1230:                                             ; preds = %1228
  %1231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1232 unwind label %1263

1232:                                             ; preds = %1230
  %1233 = load ptr, ptr %1231, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #8
  %1234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1235 unwind label %1267

1235:                                             ; preds = %1232
  %1236 = load ptr, ptr %1234, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %103, ptr noundef nonnull align 8 dereferenceable(30) %1236, i32 noundef 458)
          to label %1237 unwind label %1267

1237:                                             ; preds = %1235
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA94_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1233, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(94) @.str.102, ptr noundef nonnull align 8 dereferenceable(30) %103)
          to label %1238 unwind label %1267

1238:                                             ; preds = %1237
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #8
  br label %1283

1239:                                             ; preds = %1138, %1128
  br label %1216

1240:                                             ; preds = %1204
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %4, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %5, align 4
  br label %1248

1244:                                             ; preds = %1213, %1211, %1208
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %4, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  br label %1248

1248:                                             ; preds = %1244, %1240
  invoke void @__cxa_end_catch()
          to label %1249 unwind label %4084

1249:                                             ; preds = %1248
  br label %4074

1250:                                             ; preds = %1218
  %1251 = landingpad { ptr, i32 }
          cleanup
  %1252 = extractvalue { ptr, i32 } %1251, 0
  store ptr %1252, ptr %4, align 8
  %1253 = extractvalue { ptr, i32 } %1251, 1
  store i32 %1253, ptr %5, align 4
  br label %1258

1254:                                             ; preds = %1225, %1222
  %1255 = landingpad { ptr, i32 }
          cleanup
  %1256 = extractvalue { ptr, i32 } %1255, 0
  store ptr %1256, ptr %4, align 8
  %1257 = extractvalue { ptr, i32 } %1255, 1
  store i32 %1257, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  br label %1258

1258:                                             ; preds = %1254, %1250
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  br label %4074

1259:                                             ; preds = %1226
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %4, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #8
  br label %4074

1263:                                             ; preds = %1230
  %1264 = landingpad { ptr, i32 }
          catch ptr null
  %1265 = extractvalue { ptr, i32 } %1264, 0
  store ptr %1265, ptr %4, align 8
  %1266 = extractvalue { ptr, i32 } %1264, 1
  store i32 %1266, ptr %5, align 4
  br label %1271

1267:                                             ; preds = %1237, %1235, %1232
  %1268 = landingpad { ptr, i32 }
          catch ptr null
  %1269 = extractvalue { ptr, i32 } %1268, 0
  store ptr %1269, ptr %4, align 8
  %1270 = extractvalue { ptr, i32 } %1268, 1
  store i32 %1270, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #8
  br label %1271

1271:                                             ; preds = %1267, %1263
  %1272 = load ptr, ptr %4, align 8
  %1273 = call ptr @__cxa_begin_catch(ptr %1272) #8
  %1274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1275 unwind label %1297

1275:                                             ; preds = %1271
  %1276 = load ptr, ptr %1274, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #8
  %1277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1278 unwind label %1301

1278:                                             ; preds = %1275
  %1279 = load ptr, ptr %1277, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef nonnull align 8 dereferenceable(30) %1279, i32 noundef 458)
          to label %1280 unwind label %1301

1280:                                             ; preds = %1278
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1276, ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef @.str.103)
          to label %1281 unwind label %1301

1281:                                             ; preds = %1280
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  invoke void @__cxa_end_catch()
          to label %1282 unwind label %471

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282, %1238
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef %106)
          to label %1286 unwind label %1307

1286:                                             ; preds = %1285
  %1287 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #8
  br label %1288

1288:                                             ; preds = %1286
  %1289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1290 unwind label %1311

1290:                                             ; preds = %1288
  %1291 = load ptr, ptr %1289, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #8
  %1292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1293 unwind label %1315

1293:                                             ; preds = %1290
  %1294 = load ptr, ptr %1292, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %107, ptr noundef nonnull align 8 dereferenceable(30) %1294, i32 noundef 460)
          to label %1295 unwind label %1315

1295:                                             ; preds = %1293
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1291, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(252) @.str.104, ptr noundef nonnull align 8 dereferenceable(30) %107)
          to label %1296 unwind label %1315

1296:                                             ; preds = %1295
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  br label %1331

1297:                                             ; preds = %1271
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %4, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %5, align 4
  br label %1305

1301:                                             ; preds = %1280, %1278, %1275
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %4, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  br label %1305

1305:                                             ; preds = %1301, %1297
  invoke void @__cxa_end_catch()
          to label %1306 unwind label %4084

1306:                                             ; preds = %1305
  br label %4074

1307:                                             ; preds = %1285
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %4, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #8
  br label %4074

1311:                                             ; preds = %1288
  %1312 = landingpad { ptr, i32 }
          catch ptr null
  %1313 = extractvalue { ptr, i32 } %1312, 0
  store ptr %1313, ptr %4, align 8
  %1314 = extractvalue { ptr, i32 } %1312, 1
  store i32 %1314, ptr %5, align 4
  br label %1319

1315:                                             ; preds = %1295, %1293, %1290
  %1316 = landingpad { ptr, i32 }
          catch ptr null
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %4, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  br label %1319

1319:                                             ; preds = %1315, %1311
  %1320 = load ptr, ptr %4, align 8
  %1321 = call ptr @__cxa_begin_catch(ptr %1320) #8
  %1322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1323 unwind label %1365

1323:                                             ; preds = %1319
  %1324 = load ptr, ptr %1322, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #8
  %1325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1326 unwind label %1369

1326:                                             ; preds = %1323
  %1327 = load ptr, ptr %1325, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef nonnull align 8 dereferenceable(30) %1327, i32 noundef 460)
          to label %1328 unwind label %1369

1328:                                             ; preds = %1326
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1324, ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef @.str.105)
          to label %1329 unwind label %1369

1329:                                             ; preds = %1328
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  invoke void @__cxa_end_catch()
          to label %1330 unwind label %471

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330, %1296
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  %1334 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1335 = load ptr, ptr %1334, align 8, !tbaa !9
  %1336 = getelementptr inbounds ptr, ptr %1335, i64 5
  %1337 = load ptr, ptr %1336, align 8
  invoke void %1337(ptr noundef nonnull align 8 dereferenceable(96) %1334)
          to label %1338 unwind label %471

1338:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.55)
          to label %1339 unwind label %1375

1339:                                             ; preds = %1338
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.82)
          to label %1340 unwind label %1379

1340:                                             ; preds = %1339
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.95)
          to label %1341 unwind label %1383

1341:                                             ; preds = %1340
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str)
          to label %1342 unwind label %1387

1342:                                             ; preds = %1341
  %1343 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef @.str.106)
          to label %1344 unwind label %1394

1344:                                             ; preds = %1342
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str)
          to label %1345 unwind label %1398

1345:                                             ; preds = %1344
  %1346 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %1347

1347:                                             ; preds = %1345
  %1348 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1349 unwind label %1403

1349:                                             ; preds = %1347
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1350 unwind label %1407

1350:                                             ; preds = %1349
  %1351 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1348, ptr noundef %117)
          to label %1352 unwind label %1411

1352:                                             ; preds = %1350
  %1353 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1351)
          to label %1354 unwind label %1411

1354:                                             ; preds = %1352
  %1355 = xor i1 %1353, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  br i1 %1355, label %1356, label %1460

1356:                                             ; preds = %1354
  %1357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1358 unwind label %1417

1358:                                             ; preds = %1356
  %1359 = load ptr, ptr %1357, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #8
  %1360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1361 unwind label %1421

1361:                                             ; preds = %1358
  %1362 = load ptr, ptr %1360, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %119, ptr noundef nonnull align 8 dereferenceable(30) %1362, i32 noundef 472)
          to label %1363 unwind label %1421

1363:                                             ; preds = %1361
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1359, ptr noundef nonnull align 8 dereferenceable(30) %119, ptr noundef @.str.5)
          to label %1364 unwind label %1421

1364:                                             ; preds = %1363
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  br label %1460

1365:                                             ; preds = %1319
  %1366 = landingpad { ptr, i32 }
          cleanup
  %1367 = extractvalue { ptr, i32 } %1366, 0
  store ptr %1367, ptr %4, align 8
  %1368 = extractvalue { ptr, i32 } %1366, 1
  store i32 %1368, ptr %5, align 4
  br label %1373

1369:                                             ; preds = %1328, %1326, %1323
  %1370 = landingpad { ptr, i32 }
          cleanup
  %1371 = extractvalue { ptr, i32 } %1370, 0
  store ptr %1371, ptr %4, align 8
  %1372 = extractvalue { ptr, i32 } %1370, 1
  store i32 %1372, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  br label %1373

1373:                                             ; preds = %1369, %1365
  invoke void @__cxa_end_catch()
          to label %1374 unwind label %4084

1374:                                             ; preds = %1373
  br label %4074

1375:                                             ; preds = %1338
  %1376 = landingpad { ptr, i32 }
          cleanup
  %1377 = extractvalue { ptr, i32 } %1376, 0
  store ptr %1377, ptr %4, align 8
  %1378 = extractvalue { ptr, i32 } %1376, 1
  store i32 %1378, ptr %5, align 4
  br label %1393

1379:                                             ; preds = %1339
  %1380 = landingpad { ptr, i32 }
          cleanup
  %1381 = extractvalue { ptr, i32 } %1380, 0
  store ptr %1381, ptr %4, align 8
  %1382 = extractvalue { ptr, i32 } %1380, 1
  store i32 %1382, ptr %5, align 4
  br label %1392

1383:                                             ; preds = %1340
  %1384 = landingpad { ptr, i32 }
          cleanup
  %1385 = extractvalue { ptr, i32 } %1384, 0
  store ptr %1385, ptr %4, align 8
  %1386 = extractvalue { ptr, i32 } %1384, 1
  store i32 %1386, ptr %5, align 4
  br label %1391

1387:                                             ; preds = %1341
  %1388 = landingpad { ptr, i32 }
          cleanup
  %1389 = extractvalue { ptr, i32 } %1388, 0
  store ptr %1389, ptr %4, align 8
  %1390 = extractvalue { ptr, i32 } %1388, 1
  store i32 %1390, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  br label %1391

1391:                                             ; preds = %1387, %1383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  br label %1392

1392:                                             ; preds = %1391, %1379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %1393

1393:                                             ; preds = %1392, %1375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #8
  br label %4074

1394:                                             ; preds = %1342
  %1395 = landingpad { ptr, i32 }
          cleanup
  %1396 = extractvalue { ptr, i32 } %1395, 0
  store ptr %1396, ptr %4, align 8
  %1397 = extractvalue { ptr, i32 } %1395, 1
  store i32 %1397, ptr %5, align 4
  br label %1402

1398:                                             ; preds = %1344
  %1399 = landingpad { ptr, i32 }
          cleanup
  %1400 = extractvalue { ptr, i32 } %1399, 0
  store ptr %1400, ptr %4, align 8
  %1401 = extractvalue { ptr, i32 } %1399, 1
  store i32 %1401, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %1402

1402:                                             ; preds = %1398, %1394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %4074

1403:                                             ; preds = %1347
  %1404 = landingpad { ptr, i32 }
          catch ptr null
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %4, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %5, align 4
  br label %1416

1407:                                             ; preds = %1349
  %1408 = landingpad { ptr, i32 }
          catch ptr null
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %4, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %5, align 4
  br label %1415

1411:                                             ; preds = %1352, %1350
  %1412 = landingpad { ptr, i32 }
          catch ptr null
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %4, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %1415

1415:                                             ; preds = %1411, %1407
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %1416

1416:                                             ; preds = %1415, %1403
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  br label %1425

1417:                                             ; preds = %1356
  %1418 = landingpad { ptr, i32 }
          catch ptr null
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %4, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %5, align 4
  br label %1425

1421:                                             ; preds = %1363, %1361, %1358
  %1422 = landingpad { ptr, i32 }
          catch ptr null
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %4, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  br label %1425

1425:                                             ; preds = %1421, %1417, %1416
  %1426 = load ptr, ptr %4, align 8
  %1427 = call ptr @__cxa_begin_catch(ptr %1426) #8
  %1428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1429 unwind label %1461

1429:                                             ; preds = %1425
  %1430 = load ptr, ptr %1428, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #8
  %1431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1432 unwind label %1465

1432:                                             ; preds = %1429
  %1433 = load ptr, ptr %1431, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %120, ptr noundef nonnull align 8 dereferenceable(30) %1433, i32 noundef 472)
          to label %1434 unwind label %1465

1434:                                             ; preds = %1432
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1430, ptr noundef nonnull align 8 dereferenceable(30) %120, ptr noundef @.str.6)
          to label %1435 unwind label %1465

1435:                                             ; preds = %1434
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #8
  invoke void @__cxa_end_catch()
          to label %1436 unwind label %471

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1460, %1436
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #8
  %1440 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %1441 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %1442 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %122, ptr noundef nonnull align 8 dereferenceable(88) %1442)
          to label %1443 unwind label %1471

1443:                                             ; preds = %1439
  %1444 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1445 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1444)
          to label %1446 unwind label %1475

1446:                                             ; preds = %1443
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %121, ptr noundef nonnull align 8 dereferenceable(136) %1440, ptr noundef %1441, ptr noundef %122, ptr noundef nonnull align 8 dereferenceable(24) %1445, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1447 unwind label %1475

1447:                                             ; preds = %1446
  %1448 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %121) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %121) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %124, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef %124, i1 noundef zeroext false)
          to label %1449 unwind label %1480

1449:                                             ; preds = %1447
  %1450 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #8
  br label %1451

1451:                                             ; preds = %1449
  %1452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1453 unwind label %1484

1453:                                             ; preds = %1451
  %1454 = load ptr, ptr %1452, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #8
  %1455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1456 unwind label %1488

1456:                                             ; preds = %1453
  %1457 = load ptr, ptr %1455, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %125, ptr noundef nonnull align 8 dereferenceable(30) %1457, i32 noundef 475)
          to label %1458 unwind label %1488

1458:                                             ; preds = %1456
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1454, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(142) @.str.107, ptr noundef nonnull align 8 dereferenceable(30) %125)
          to label %1459 unwind label %1488

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

1460:                                             ; preds = %1364, %1354
  br label %1437

1461:                                             ; preds = %1425
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %4, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %5, align 4
  br label %1469

1465:                                             ; preds = %1434, %1432, %1429
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %4, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #8
  br label %1469

1469:                                             ; preds = %1465, %1461
  invoke void @__cxa_end_catch()
          to label %1470 unwind label %4084

1470:                                             ; preds = %1469
  br label %4074

1471:                                             ; preds = %1439
  %1472 = landingpad { ptr, i32 }
          cleanup
  %1473 = extractvalue { ptr, i32 } %1472, 0
  store ptr %1473, ptr %4, align 8
  %1474 = extractvalue { ptr, i32 } %1472, 1
  store i32 %1474, ptr %5, align 4
  br label %1479

1475:                                             ; preds = %1446, %1443
  %1476 = landingpad { ptr, i32 }
          cleanup
  %1477 = extractvalue { ptr, i32 } %1476, 0
  store ptr %1477, ptr %4, align 8
  %1478 = extractvalue { ptr, i32 } %1476, 1
  store i32 %1478, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122) #8
  br label %1479

1479:                                             ; preds = %1475, %1471
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #8
  br label %4074

1480:                                             ; preds = %1447
  %1481 = landingpad { ptr, i32 }
          cleanup
  %1482 = extractvalue { ptr, i32 } %1481, 0
  store ptr %1482, ptr %4, align 8
  %1483 = extractvalue { ptr, i32 } %1481, 1
  store i32 %1483, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #8
  br label %4074

1484:                                             ; preds = %1451
  %1485 = landingpad { ptr, i32 }
          catch ptr null
  %1486 = extractvalue { ptr, i32 } %1485, 0
  store ptr %1486, ptr %4, align 8
  %1487 = extractvalue { ptr, i32 } %1485, 1
  store i32 %1487, ptr %5, align 4
  br label %1492

1488:                                             ; preds = %1458, %1456, %1453
  %1489 = landingpad { ptr, i32 }
          catch ptr null
  %1490 = extractvalue { ptr, i32 } %1489, 0
  store ptr %1490, ptr %4, align 8
  %1491 = extractvalue { ptr, i32 } %1489, 1
  store i32 %1491, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #8
  br label %1492

1492:                                             ; preds = %1488, %1484
  %1493 = load ptr, ptr %4, align 8
  %1494 = call ptr @__cxa_begin_catch(ptr %1493) #8
  %1495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1496 unwind label %1518

1496:                                             ; preds = %1492
  %1497 = load ptr, ptr %1495, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #8
  %1498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1499 unwind label %1522

1499:                                             ; preds = %1496
  %1500 = load ptr, ptr %1498, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %126, ptr noundef nonnull align 8 dereferenceable(30) %1500, i32 noundef 475)
          to label %1501 unwind label %1522

1501:                                             ; preds = %1499
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1497, ptr noundef nonnull align 8 dereferenceable(30) %126, ptr noundef @.str.108)
          to label %1502 unwind label %1522

1502:                                             ; preds = %1501
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  invoke void @__cxa_end_catch()
          to label %1503 unwind label %471

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503, %1459
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef %128)
          to label %1507 unwind label %1528

1507:                                             ; preds = %1506
  %1508 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  br label %1509

1509:                                             ; preds = %1507
  %1510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1511 unwind label %1532

1511:                                             ; preds = %1509
  %1512 = load ptr, ptr %1510, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #8
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1514 unwind label %1536

1514:                                             ; preds = %1511
  %1515 = load ptr, ptr %1513, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %129, ptr noundef nonnull align 8 dereferenceable(30) %1515, i32 noundef 477)
          to label %1516 unwind label %1536

1516:                                             ; preds = %1514
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1512, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(227) @.str.109, ptr noundef nonnull align 8 dereferenceable(30) %129)
          to label %1517 unwind label %1536

1517:                                             ; preds = %1516
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #8
  br label %1552

1518:                                             ; preds = %1492
  %1519 = landingpad { ptr, i32 }
          cleanup
  %1520 = extractvalue { ptr, i32 } %1519, 0
  store ptr %1520, ptr %4, align 8
  %1521 = extractvalue { ptr, i32 } %1519, 1
  store i32 %1521, ptr %5, align 4
  br label %1526

1522:                                             ; preds = %1501, %1499, %1496
  %1523 = landingpad { ptr, i32 }
          cleanup
  %1524 = extractvalue { ptr, i32 } %1523, 0
  store ptr %1524, ptr %4, align 8
  %1525 = extractvalue { ptr, i32 } %1523, 1
  store i32 %1525, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br label %1526

1526:                                             ; preds = %1522, %1518
  invoke void @__cxa_end_catch()
          to label %1527 unwind label %4084

1527:                                             ; preds = %1526
  br label %4074

1528:                                             ; preds = %1506
  %1529 = landingpad { ptr, i32 }
          cleanup
  %1530 = extractvalue { ptr, i32 } %1529, 0
  store ptr %1530, ptr %4, align 8
  %1531 = extractvalue { ptr, i32 } %1529, 1
  store i32 %1531, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  br label %4074

1532:                                             ; preds = %1509
  %1533 = landingpad { ptr, i32 }
          catch ptr null
  %1534 = extractvalue { ptr, i32 } %1533, 0
  store ptr %1534, ptr %4, align 8
  %1535 = extractvalue { ptr, i32 } %1533, 1
  store i32 %1535, ptr %5, align 4
  br label %1540

1536:                                             ; preds = %1516, %1514, %1511
  %1537 = landingpad { ptr, i32 }
          catch ptr null
  %1538 = extractvalue { ptr, i32 } %1537, 0
  store ptr %1538, ptr %4, align 8
  %1539 = extractvalue { ptr, i32 } %1537, 1
  store i32 %1539, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #8
  br label %1540

1540:                                             ; preds = %1536, %1532
  %1541 = load ptr, ptr %4, align 8
  %1542 = call ptr @__cxa_begin_catch(ptr %1541) #8
  %1543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1544 unwind label %1586

1544:                                             ; preds = %1540
  %1545 = load ptr, ptr %1543, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #8
  %1546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1547 unwind label %1590

1547:                                             ; preds = %1544
  %1548 = load ptr, ptr %1546, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %130, ptr noundef nonnull align 8 dereferenceable(30) %1548, i32 noundef 477)
          to label %1549 unwind label %1590

1549:                                             ; preds = %1547
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1545, ptr noundef nonnull align 8 dereferenceable(30) %130, ptr noundef @.str.110)
          to label %1550 unwind label %1590

1550:                                             ; preds = %1549
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  invoke void @__cxa_end_catch()
          to label %1551 unwind label %471

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551, %1517
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  %1555 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1556 = load ptr, ptr %1555, align 8, !tbaa !9
  %1557 = getelementptr inbounds ptr, ptr %1556, i64 5
  %1558 = load ptr, ptr %1557, align 8
  invoke void %1558(ptr noundef nonnull align 8 dereferenceable(96) %1555)
          to label %1559 unwind label %471

1559:                                             ; preds = %1554
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.111)
          to label %1560 unwind label %1596

1560:                                             ; preds = %1559
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.82)
          to label %1561 unwind label %1600

1561:                                             ; preds = %1560
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.95)
          to label %1562 unwind label %1604

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

1563:                                             ; preds = %1562
  %1564 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.112)
          to label %1565 unwind label %1615

1565:                                             ; preds = %1563
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str)
          to label %1566 unwind label %1619

1566:                                             ; preds = %1565
  %1567 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #8
  br label %1568

1568:                                             ; preds = %1566
  %1569 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %140, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1570 unwind label %1624

1570:                                             ; preds = %1568
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %139, ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1571 unwind label %1628

1571:                                             ; preds = %1570
  %1572 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1569, ptr noundef %139)
          to label %1573 unwind label %1632

1573:                                             ; preds = %1571
  %1574 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1572)
          to label %1575 unwind label %1632

1575:                                             ; preds = %1573
  %1576 = xor i1 %1574, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #8
  br i1 %1576, label %1577, label %1681

1577:                                             ; preds = %1575
  %1578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1579 unwind label %1638

1579:                                             ; preds = %1577
  %1580 = load ptr, ptr %1578, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #8
  %1581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1582 unwind label %1642

1582:                                             ; preds = %1579
  %1583 = load ptr, ptr %1581, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef nonnull align 8 dereferenceable(30) %1583, i32 noundef 489)
          to label %1584 unwind label %1642

1584:                                             ; preds = %1582
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1580, ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef @.str.5)
          to label %1585 unwind label %1642

1585:                                             ; preds = %1584
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1681

1586:                                             ; preds = %1540
  %1587 = landingpad { ptr, i32 }
          cleanup
  %1588 = extractvalue { ptr, i32 } %1587, 0
  store ptr %1588, ptr %4, align 8
  %1589 = extractvalue { ptr, i32 } %1587, 1
  store i32 %1589, ptr %5, align 4
  br label %1594

1590:                                             ; preds = %1549, %1547, %1544
  %1591 = landingpad { ptr, i32 }
          cleanup
  %1592 = extractvalue { ptr, i32 } %1591, 0
  store ptr %1592, ptr %4, align 8
  %1593 = extractvalue { ptr, i32 } %1591, 1
  store i32 %1593, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  br label %1594

1594:                                             ; preds = %1590, %1586
  invoke void @__cxa_end_catch()
          to label %1595 unwind label %4084

1595:                                             ; preds = %1594
  br label %4074

1596:                                             ; preds = %1559
  %1597 = landingpad { ptr, i32 }
          cleanup
  %1598 = extractvalue { ptr, i32 } %1597, 0
  store ptr %1598, ptr %4, align 8
  %1599 = extractvalue { ptr, i32 } %1597, 1
  store i32 %1599, ptr %5, align 4
  br label %1614

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

1604:                                             ; preds = %1561
  %1605 = landingpad { ptr, i32 }
          cleanup
  %1606 = extractvalue { ptr, i32 } %1605, 0
  store ptr %1606, ptr %4, align 8
  %1607 = extractvalue { ptr, i32 } %1605, 1
  store i32 %1607, ptr %5, align 4
  br label %1612

1608:                                             ; preds = %1562
  %1609 = landingpad { ptr, i32 }
          cleanup
  %1610 = extractvalue { ptr, i32 } %1609, 0
  store ptr %1610, ptr %4, align 8
  %1611 = extractvalue { ptr, i32 } %1609, 1
  store i32 %1611, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %1612

1612:                                             ; preds = %1608, %1604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %1613

1613:                                             ; preds = %1612, %1600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %1614

1614:                                             ; preds = %1613, %1596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #8
  br label %4074

1615:                                             ; preds = %1563
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %4, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %5, align 4
  br label %1623

1619:                                             ; preds = %1565
  %1620 = landingpad { ptr, i32 }
          cleanup
  %1621 = extractvalue { ptr, i32 } %1620, 0
  store ptr %1621, ptr %4, align 8
  %1622 = extractvalue { ptr, i32 } %1620, 1
  store i32 %1622, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1623

1623:                                             ; preds = %1619, %1615
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #8
  br label %4074

1624:                                             ; preds = %1568
  %1625 = landingpad { ptr, i32 }
          catch ptr null
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %4, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %5, align 4
  br label %1637

1628:                                             ; preds = %1570
  %1629 = landingpad { ptr, i32 }
          catch ptr null
  %1630 = extractvalue { ptr, i32 } %1629, 0
  store ptr %1630, ptr %4, align 8
  %1631 = extractvalue { ptr, i32 } %1629, 1
  store i32 %1631, ptr %5, align 4
  br label %1636

1632:                                             ; preds = %1573, %1571
  %1633 = landingpad { ptr, i32 }
          catch ptr null
  %1634 = extractvalue { ptr, i32 } %1633, 0
  store ptr %1634, ptr %4, align 8
  %1635 = extractvalue { ptr, i32 } %1633, 1
  store i32 %1635, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  br label %1636

1636:                                             ; preds = %1632, %1628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  br label %1637

1637:                                             ; preds = %1636, %1624
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #8
  br label %1646

1638:                                             ; preds = %1577
  %1639 = landingpad { ptr, i32 }
          catch ptr null
  %1640 = extractvalue { ptr, i32 } %1639, 0
  store ptr %1640, ptr %4, align 8
  %1641 = extractvalue { ptr, i32 } %1639, 1
  store i32 %1641, ptr %5, align 4
  br label %1646

1642:                                             ; preds = %1584, %1582, %1579
  %1643 = landingpad { ptr, i32 }
          catch ptr null
  %1644 = extractvalue { ptr, i32 } %1643, 0
  store ptr %1644, ptr %4, align 8
  %1645 = extractvalue { ptr, i32 } %1643, 1
  store i32 %1645, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1646

1646:                                             ; preds = %1642, %1638, %1637
  %1647 = load ptr, ptr %4, align 8
  %1648 = call ptr @__cxa_begin_catch(ptr %1647) #8
  %1649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1650 unwind label %1682

1650:                                             ; preds = %1646
  %1651 = load ptr, ptr %1649, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #8
  %1652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1653 unwind label %1686

1653:                                             ; preds = %1650
  %1654 = load ptr, ptr %1652, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef nonnull align 8 dereferenceable(30) %1654, i32 noundef 489)
          to label %1655 unwind label %1686

1655:                                             ; preds = %1653
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1651, ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef @.str.6)
          to label %1656 unwind label %1686

1656:                                             ; preds = %1655
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #8
  invoke void @__cxa_end_catch()
          to label %1657 unwind label %471

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1681, %1657
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659
  call void @llvm.lifetime.start.p0(i64 16, ptr %143) #8
  %1661 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %1662 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %1663 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %144, ptr noundef nonnull align 8 dereferenceable(88) %1663)
          to label %1664 unwind label %1692

1664:                                             ; preds = %1660
  %1665 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1666 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1665)
          to label %1667 unwind label %1696

1667:                                             ; preds = %1664
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %143, ptr noundef nonnull align 8 dereferenceable(136) %1661, ptr noundef %1662, ptr noundef %144, ptr noundef nonnull align 8 dereferenceable(24) %1666, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1668 unwind label %1696

1668:                                             ; preds = %1667
  %1669 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %144) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %146, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef %146, i1 noundef zeroext false)
          to label %1670 unwind label %1701

1670:                                             ; preds = %1668
  %1671 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #8
  br label %1672

1672:                                             ; preds = %1670
  %1673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1674 unwind label %1705

1674:                                             ; preds = %1672
  %1675 = load ptr, ptr %1673, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %147) #8
  %1676 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1677 unwind label %1709

1677:                                             ; preds = %1674
  %1678 = load ptr, ptr %1676, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %147, ptr noundef nonnull align 8 dereferenceable(30) %1678, i32 noundef 492)
          to label %1679 unwind label %1709

1679:                                             ; preds = %1677
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1675, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(149) @.str.113, ptr noundef nonnull align 8 dereferenceable(30) %147)
          to label %1680 unwind label %1709

1680:                                             ; preds = %1679
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #8
  br label %1725

1681:                                             ; preds = %1585, %1575
  br label %1658

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

1686:                                             ; preds = %1655, %1653, %1650
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %4, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #8
  br label %1690

1690:                                             ; preds = %1686, %1682
  invoke void @__cxa_end_catch()
          to label %1691 unwind label %4084

1691:                                             ; preds = %1690
  br label %4074

1692:                                             ; preds = %1660
  %1693 = landingpad { ptr, i32 }
          cleanup
  %1694 = extractvalue { ptr, i32 } %1693, 0
  store ptr %1694, ptr %4, align 8
  %1695 = extractvalue { ptr, i32 } %1693, 1
  store i32 %1695, ptr %5, align 4
  br label %1700

1696:                                             ; preds = %1667, %1664
  %1697 = landingpad { ptr, i32 }
          cleanup
  %1698 = extractvalue { ptr, i32 } %1697, 0
  store ptr %1698, ptr %4, align 8
  %1699 = extractvalue { ptr, i32 } %1697, 1
  store i32 %1699, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %144) #8
  br label %1700

1700:                                             ; preds = %1696, %1692
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #8
  br label %4074

1701:                                             ; preds = %1668
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %4, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #8
  br label %4074

1705:                                             ; preds = %1672
  %1706 = landingpad { ptr, i32 }
          catch ptr null
  %1707 = extractvalue { ptr, i32 } %1706, 0
  store ptr %1707, ptr %4, align 8
  %1708 = extractvalue { ptr, i32 } %1706, 1
  store i32 %1708, ptr %5, align 4
  br label %1713

1709:                                             ; preds = %1679, %1677, %1674
  %1710 = landingpad { ptr, i32 }
          catch ptr null
  %1711 = extractvalue { ptr, i32 } %1710, 0
  store ptr %1711, ptr %4, align 8
  %1712 = extractvalue { ptr, i32 } %1710, 1
  store i32 %1712, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #8
  br label %1713

1713:                                             ; preds = %1709, %1705
  %1714 = load ptr, ptr %4, align 8
  %1715 = call ptr @__cxa_begin_catch(ptr %1714) #8
  %1716 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1717 unwind label %1739

1717:                                             ; preds = %1713
  %1718 = load ptr, ptr %1716, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #8
  %1719 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1720 unwind label %1743

1720:                                             ; preds = %1717
  %1721 = load ptr, ptr %1719, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %148, ptr noundef nonnull align 8 dereferenceable(30) %1721, i32 noundef 492)
          to label %1722 unwind label %1743

1722:                                             ; preds = %1720
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1718, ptr noundef nonnull align 8 dereferenceable(30) %148, ptr noundef @.str.114)
          to label %1723 unwind label %1743

1723:                                             ; preds = %1722
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #8
  invoke void @__cxa_end_catch()
          to label %1724 unwind label %471

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724, %1680
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %150, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef %150)
          to label %1728 unwind label %1749

1728:                                             ; preds = %1727
  %1729 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %150) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %1730

1730:                                             ; preds = %1728
  %1731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1732 unwind label %1753

1732:                                             ; preds = %1730
  %1733 = load ptr, ptr %1731, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #8
  %1734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1735 unwind label %1757

1735:                                             ; preds = %1732
  %1736 = load ptr, ptr %1734, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %151, ptr noundef nonnull align 8 dereferenceable(30) %1736, i32 noundef 494)
          to label %1737 unwind label %1757

1737:                                             ; preds = %1735
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1733, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(252) @.str.115, ptr noundef nonnull align 8 dereferenceable(30) %151)
          to label %1738 unwind label %1757

1738:                                             ; preds = %1737
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #8
  br label %1773

1739:                                             ; preds = %1713
  %1740 = landingpad { ptr, i32 }
          cleanup
  %1741 = extractvalue { ptr, i32 } %1740, 0
  store ptr %1741, ptr %4, align 8
  %1742 = extractvalue { ptr, i32 } %1740, 1
  store i32 %1742, ptr %5, align 4
  br label %1747

1743:                                             ; preds = %1722, %1720, %1717
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %4, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #8
  br label %1747

1747:                                             ; preds = %1743, %1739
  invoke void @__cxa_end_catch()
          to label %1748 unwind label %4084

1748:                                             ; preds = %1747
  br label %4074

1749:                                             ; preds = %1727
  %1750 = landingpad { ptr, i32 }
          cleanup
  %1751 = extractvalue { ptr, i32 } %1750, 0
  store ptr %1751, ptr %4, align 8
  %1752 = extractvalue { ptr, i32 } %1750, 1
  store i32 %1752, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %150) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %4074

1753:                                             ; preds = %1730
  %1754 = landingpad { ptr, i32 }
          catch ptr null
  %1755 = extractvalue { ptr, i32 } %1754, 0
  store ptr %1755, ptr %4, align 8
  %1756 = extractvalue { ptr, i32 } %1754, 1
  store i32 %1756, ptr %5, align 4
  br label %1761

1757:                                             ; preds = %1737, %1735, %1732
  %1758 = landingpad { ptr, i32 }
          catch ptr null
  %1759 = extractvalue { ptr, i32 } %1758, 0
  store ptr %1759, ptr %4, align 8
  %1760 = extractvalue { ptr, i32 } %1758, 1
  store i32 %1760, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #8
  br label %1761

1761:                                             ; preds = %1757, %1753
  %1762 = load ptr, ptr %4, align 8
  %1763 = call ptr @__cxa_begin_catch(ptr %1762) #8
  %1764 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1765 unwind label %1808

1765:                                             ; preds = %1761
  %1766 = load ptr, ptr %1764, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #8
  %1767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1768 unwind label %1812

1768:                                             ; preds = %1765
  %1769 = load ptr, ptr %1767, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %152, ptr noundef nonnull align 8 dereferenceable(30) %1769, i32 noundef 494)
          to label %1770 unwind label %1812

1770:                                             ; preds = %1768
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1766, ptr noundef nonnull align 8 dereferenceable(30) %152, ptr noundef @.str.116)
          to label %1771 unwind label %1812

1771:                                             ; preds = %1770
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #8
  invoke void @__cxa_end_catch()
          to label %1772 unwind label %471

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772, %1738
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  %1776 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1777 = load ptr, ptr %1776, align 8, !tbaa !9
  %1778 = getelementptr inbounds ptr, ptr %1777, i64 5
  %1779 = load ptr, ptr %1778, align 8
  invoke void %1779(ptr noundef nonnull align 8 dereferenceable(96) %1776)
          to label %1780 unwind label %471

1780:                                             ; preds = %1775
  call void @llvm.lifetime.start.p0(i64 32, ptr %153) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %157) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef @.str.111)
          to label %1781 unwind label %1818

1781:                                             ; preds = %1780
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef @.str.82)
          to label %1782 unwind label %1822

1782:                                             ; preds = %1781
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.117)
          to label %1783 unwind label %1826

1783:                                             ; preds = %1782
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.118)
          to label %1784 unwind label %1830

1784:                                             ; preds = %1783
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str)
          to label %1785 unwind label %1834

1785:                                             ; preds = %1784
  %1786 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %159) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %160, ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef @.str.119)
          to label %1787 unwind label %1842

1787:                                             ; preds = %1785
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str)
          to label %1788 unwind label %1846

1788:                                             ; preds = %1787
  %1789 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #8
  br label %1790

1790:                                             ; preds = %1788
  %1791 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1792 unwind label %1851

1792:                                             ; preds = %1790
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1793 unwind label %1855

1793:                                             ; preds = %1792
  %1794 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1791, ptr noundef %162)
          to label %1795 unwind label %1859

1795:                                             ; preds = %1793
  %1796 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1794)
          to label %1797 unwind label %1859

1797:                                             ; preds = %1795
  %1798 = xor i1 %1796, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br i1 %1798, label %1799, label %1908

1799:                                             ; preds = %1797
  %1800 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1801 unwind label %1865

1801:                                             ; preds = %1799
  %1802 = load ptr, ptr %1800, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #8
  %1803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1804 unwind label %1869

1804:                                             ; preds = %1801
  %1805 = load ptr, ptr %1803, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %164, ptr noundef nonnull align 8 dereferenceable(30) %1805, i32 noundef 507)
          to label %1806 unwind label %1869

1806:                                             ; preds = %1804
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1802, ptr noundef nonnull align 8 dereferenceable(30) %164, ptr noundef @.str.5)
          to label %1807 unwind label %1869

1807:                                             ; preds = %1806
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #8
  br label %1908

1808:                                             ; preds = %1761
  %1809 = landingpad { ptr, i32 }
          cleanup
  %1810 = extractvalue { ptr, i32 } %1809, 0
  store ptr %1810, ptr %4, align 8
  %1811 = extractvalue { ptr, i32 } %1809, 1
  store i32 %1811, ptr %5, align 4
  br label %1816

1812:                                             ; preds = %1770, %1768, %1765
  %1813 = landingpad { ptr, i32 }
          cleanup
  %1814 = extractvalue { ptr, i32 } %1813, 0
  store ptr %1814, ptr %4, align 8
  %1815 = extractvalue { ptr, i32 } %1813, 1
  store i32 %1815, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #8
  br label %1816

1816:                                             ; preds = %1812, %1808
  invoke void @__cxa_end_catch()
          to label %1817 unwind label %4084

1817:                                             ; preds = %1816
  br label %4074

1818:                                             ; preds = %1780
  %1819 = landingpad { ptr, i32 }
          cleanup
  %1820 = extractvalue { ptr, i32 } %1819, 0
  store ptr %1820, ptr %4, align 8
  %1821 = extractvalue { ptr, i32 } %1819, 1
  store i32 %1821, ptr %5, align 4
  br label %1841

1822:                                             ; preds = %1781
  %1823 = landingpad { ptr, i32 }
          cleanup
  %1824 = extractvalue { ptr, i32 } %1823, 0
  store ptr %1824, ptr %4, align 8
  %1825 = extractvalue { ptr, i32 } %1823, 1
  store i32 %1825, ptr %5, align 4
  br label %1840

1826:                                             ; preds = %1782
  %1827 = landingpad { ptr, i32 }
          cleanup
  %1828 = extractvalue { ptr, i32 } %1827, 0
  store ptr %1828, ptr %4, align 8
  %1829 = extractvalue { ptr, i32 } %1827, 1
  store i32 %1829, ptr %5, align 4
  br label %1839

1830:                                             ; preds = %1783
  %1831 = landingpad { ptr, i32 }
          cleanup
  %1832 = extractvalue { ptr, i32 } %1831, 0
  store ptr %1832, ptr %4, align 8
  %1833 = extractvalue { ptr, i32 } %1831, 1
  store i32 %1833, ptr %5, align 4
  br label %1838

1834:                                             ; preds = %1784
  %1835 = landingpad { ptr, i32 }
          cleanup
  %1836 = extractvalue { ptr, i32 } %1835, 0
  store ptr %1836, ptr %4, align 8
  %1837 = extractvalue { ptr, i32 } %1835, 1
  store i32 %1837, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  br label %1838

1838:                                             ; preds = %1834, %1830
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  br label %1839

1839:                                             ; preds = %1838, %1826
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  br label %1840

1840:                                             ; preds = %1839, %1822
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  br label %1841

1841:                                             ; preds = %1840, %1818
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #8
  br label %4074

1842:                                             ; preds = %1785
  %1843 = landingpad { ptr, i32 }
          cleanup
  %1844 = extractvalue { ptr, i32 } %1843, 0
  store ptr %1844, ptr %4, align 8
  %1845 = extractvalue { ptr, i32 } %1843, 1
  store i32 %1845, ptr %5, align 4
  br label %1850

1846:                                             ; preds = %1787
  %1847 = landingpad { ptr, i32 }
          cleanup
  %1848 = extractvalue { ptr, i32 } %1847, 0
  store ptr %1848, ptr %4, align 8
  %1849 = extractvalue { ptr, i32 } %1847, 1
  store i32 %1849, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  br label %1850

1850:                                             ; preds = %1846, %1842
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #8
  br label %4074

1851:                                             ; preds = %1790
  %1852 = landingpad { ptr, i32 }
          catch ptr null
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %4, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %5, align 4
  br label %1864

1855:                                             ; preds = %1792
  %1856 = landingpad { ptr, i32 }
          catch ptr null
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %4, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %5, align 4
  br label %1863

1859:                                             ; preds = %1795, %1793
  %1860 = landingpad { ptr, i32 }
          catch ptr null
  %1861 = extractvalue { ptr, i32 } %1860, 0
  store ptr %1861, ptr %4, align 8
  %1862 = extractvalue { ptr, i32 } %1860, 1
  store i32 %1862, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #8
  br label %1863

1863:                                             ; preds = %1859, %1855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %1864

1864:                                             ; preds = %1863, %1851
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br label %1873

1865:                                             ; preds = %1799
  %1866 = landingpad { ptr, i32 }
          catch ptr null
  %1867 = extractvalue { ptr, i32 } %1866, 0
  store ptr %1867, ptr %4, align 8
  %1868 = extractvalue { ptr, i32 } %1866, 1
  store i32 %1868, ptr %5, align 4
  br label %1873

1869:                                             ; preds = %1806, %1804, %1801
  %1870 = landingpad { ptr, i32 }
          catch ptr null
  %1871 = extractvalue { ptr, i32 } %1870, 0
  store ptr %1871, ptr %4, align 8
  %1872 = extractvalue { ptr, i32 } %1870, 1
  store i32 %1872, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #8
  br label %1873

1873:                                             ; preds = %1869, %1865, %1864
  %1874 = load ptr, ptr %4, align 8
  %1875 = call ptr @__cxa_begin_catch(ptr %1874) #8
  %1876 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1877 unwind label %1909

1877:                                             ; preds = %1873
  %1878 = load ptr, ptr %1876, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #8
  %1879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1880 unwind label %1913

1880:                                             ; preds = %1877
  %1881 = load ptr, ptr %1879, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %165, ptr noundef nonnull align 8 dereferenceable(30) %1881, i32 noundef 507)
          to label %1882 unwind label %1913

1882:                                             ; preds = %1880
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1878, ptr noundef nonnull align 8 dereferenceable(30) %165, ptr noundef @.str.6)
          to label %1883 unwind label %1913

1883:                                             ; preds = %1882
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #8
  invoke void @__cxa_end_catch()
          to label %1884 unwind label %471

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1908, %1884
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  call void @llvm.lifetime.start.p0(i64 16, ptr %166) #8
  %1888 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %1889 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %1890 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %167, ptr noundef nonnull align 8 dereferenceable(88) %1890)
          to label %1891 unwind label %1919

1891:                                             ; preds = %1887
  %1892 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1893 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1892)
          to label %1894 unwind label %1923

1894:                                             ; preds = %1891
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %166, ptr noundef nonnull align 8 dereferenceable(136) %1888, ptr noundef %1889, ptr noundef %167, ptr noundef nonnull align 8 dereferenceable(24) %1893, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1895 unwind label %1923

1895:                                             ; preds = %1894
  %1896 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %166) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %166) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef %169, i1 noundef zeroext false)
          to label %1897 unwind label %1928

1897:                                             ; preds = %1895
  %1898 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #8
  br label %1899

1899:                                             ; preds = %1897
  %1900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1901 unwind label %1932

1901:                                             ; preds = %1899
  %1902 = load ptr, ptr %1900, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #8
  %1903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1904 unwind label %1936

1904:                                             ; preds = %1901
  %1905 = load ptr, ptr %1903, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %170, ptr noundef nonnull align 8 dereferenceable(30) %1905, i32 noundef 510)
          to label %1906 unwind label %1936

1906:                                             ; preds = %1904
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1902, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(218) @.str.120, ptr noundef nonnull align 8 dereferenceable(30) %170)
          to label %1907 unwind label %1936

1907:                                             ; preds = %1906
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #8
  br label %1952

1908:                                             ; preds = %1807, %1797
  br label %1885

1909:                                             ; preds = %1873
  %1910 = landingpad { ptr, i32 }
          cleanup
  %1911 = extractvalue { ptr, i32 } %1910, 0
  store ptr %1911, ptr %4, align 8
  %1912 = extractvalue { ptr, i32 } %1910, 1
  store i32 %1912, ptr %5, align 4
  br label %1917

1913:                                             ; preds = %1882, %1880, %1877
  %1914 = landingpad { ptr, i32 }
          cleanup
  %1915 = extractvalue { ptr, i32 } %1914, 0
  store ptr %1915, ptr %4, align 8
  %1916 = extractvalue { ptr, i32 } %1914, 1
  store i32 %1916, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #8
  br label %1917

1917:                                             ; preds = %1913, %1909
  invoke void @__cxa_end_catch()
          to label %1918 unwind label %4084

1918:                                             ; preds = %1917
  br label %4074

1919:                                             ; preds = %1887
  %1920 = landingpad { ptr, i32 }
          cleanup
  %1921 = extractvalue { ptr, i32 } %1920, 0
  store ptr %1921, ptr %4, align 8
  %1922 = extractvalue { ptr, i32 } %1920, 1
  store i32 %1922, ptr %5, align 4
  br label %1927

1923:                                             ; preds = %1894, %1891
  %1924 = landingpad { ptr, i32 }
          cleanup
  %1925 = extractvalue { ptr, i32 } %1924, 0
  store ptr %1925, ptr %4, align 8
  %1926 = extractvalue { ptr, i32 } %1924, 1
  store i32 %1926, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167) #8
  br label %1927

1927:                                             ; preds = %1923, %1919
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  br label %4074

1928:                                             ; preds = %1895
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %4, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #8
  br label %4074

1932:                                             ; preds = %1899
  %1933 = landingpad { ptr, i32 }
          catch ptr null
  %1934 = extractvalue { ptr, i32 } %1933, 0
  store ptr %1934, ptr %4, align 8
  %1935 = extractvalue { ptr, i32 } %1933, 1
  store i32 %1935, ptr %5, align 4
  br label %1940

1936:                                             ; preds = %1906, %1904, %1901
  %1937 = landingpad { ptr, i32 }
          catch ptr null
  %1938 = extractvalue { ptr, i32 } %1937, 0
  store ptr %1938, ptr %4, align 8
  %1939 = extractvalue { ptr, i32 } %1937, 1
  store i32 %1939, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #8
  br label %1940

1940:                                             ; preds = %1936, %1932
  %1941 = load ptr, ptr %4, align 8
  %1942 = call ptr @__cxa_begin_catch(ptr %1941) #8
  %1943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1944 unwind label %1966

1944:                                             ; preds = %1940
  %1945 = load ptr, ptr %1943, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #8
  %1946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1947 unwind label %1970

1947:                                             ; preds = %1944
  %1948 = load ptr, ptr %1946, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %171, ptr noundef nonnull align 8 dereferenceable(30) %1948, i32 noundef 510)
          to label %1949 unwind label %1970

1949:                                             ; preds = %1947
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1945, ptr noundef nonnull align 8 dereferenceable(30) %171, ptr noundef @.str.121)
          to label %1950 unwind label %1970

1950:                                             ; preds = %1949
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #8
  invoke void @__cxa_end_catch()
          to label %1951 unwind label %471

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951, %1907
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %172, ptr noundef %173)
          to label %1955 unwind label %1976

1955:                                             ; preds = %1954
  %1956 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #8
  br label %1957

1957:                                             ; preds = %1955
  %1958 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1959 unwind label %1980

1959:                                             ; preds = %1957
  %1960 = load ptr, ptr %1958, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #8
  %1961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1962 unwind label %1984

1962:                                             ; preds = %1959
  %1963 = load ptr, ptr %1961, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %174, ptr noundef nonnull align 8 dereferenceable(30) %1963, i32 noundef 512)
          to label %1964 unwind label %1984

1964:                                             ; preds = %1962
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1960, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(420) @.str.122, ptr noundef nonnull align 8 dereferenceable(30) %174)
          to label %1965 unwind label %1984

1965:                                             ; preds = %1964
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #8
  br label %2000

1966:                                             ; preds = %1940
  %1967 = landingpad { ptr, i32 }
          cleanup
  %1968 = extractvalue { ptr, i32 } %1967, 0
  store ptr %1968, ptr %4, align 8
  %1969 = extractvalue { ptr, i32 } %1967, 1
  store i32 %1969, ptr %5, align 4
  br label %1974

1970:                                             ; preds = %1949, %1947, %1944
  %1971 = landingpad { ptr, i32 }
          cleanup
  %1972 = extractvalue { ptr, i32 } %1971, 0
  store ptr %1972, ptr %4, align 8
  %1973 = extractvalue { ptr, i32 } %1971, 1
  store i32 %1973, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #8
  br label %1974

1974:                                             ; preds = %1970, %1966
  invoke void @__cxa_end_catch()
          to label %1975 unwind label %4084

1975:                                             ; preds = %1974
  br label %4074

1976:                                             ; preds = %1954
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %4, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #8
  br label %4074

1980:                                             ; preds = %1957
  %1981 = landingpad { ptr, i32 }
          catch ptr null
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %4, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %5, align 4
  br label %1988

1984:                                             ; preds = %1964, %1962, %1959
  %1985 = landingpad { ptr, i32 }
          catch ptr null
  %1986 = extractvalue { ptr, i32 } %1985, 0
  store ptr %1986, ptr %4, align 8
  %1987 = extractvalue { ptr, i32 } %1985, 1
  store i32 %1987, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #8
  br label %1988

1988:                                             ; preds = %1984, %1980
  %1989 = load ptr, ptr %4, align 8
  %1990 = call ptr @__cxa_begin_catch(ptr %1989) #8
  %1991 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1992 unwind label %2035

1992:                                             ; preds = %1988
  %1993 = load ptr, ptr %1991, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %175) #8
  %1994 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1995 unwind label %2039

1995:                                             ; preds = %1992
  %1996 = load ptr, ptr %1994, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef nonnull align 8 dereferenceable(30) %1996, i32 noundef 512)
          to label %1997 unwind label %2039

1997:                                             ; preds = %1995
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1993, ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef @.str.123)
          to label %1998 unwind label %2039

1998:                                             ; preds = %1997
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #8
  invoke void @__cxa_end_catch()
          to label %1999 unwind label %471

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999, %1965
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  %2003 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2004 = load ptr, ptr %2003, align 8, !tbaa !9
  %2005 = getelementptr inbounds ptr, ptr %2004, i64 5
  %2006 = load ptr, ptr %2005, align 8
  invoke void %2006(ptr noundef nonnull align 8 dereferenceable(96) %2003)
          to label %2007 unwind label %471

2007:                                             ; preds = %2002
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %177) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %179) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %181) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %180, ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef @.str.124)
          to label %2008 unwind label %2045

2008:                                             ; preds = %2007
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %179, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef @.str.82)
          to label %2009 unwind label %2049

2009:                                             ; preds = %2008
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %178, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef @.str.125)
          to label %2010 unwind label %2053

2010:                                             ; preds = %2009
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef @.str.126)
          to label %2011 unwind label %2057

2011:                                             ; preds = %2010
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %176, ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef @.str)
          to label %2012 unwind label %2061

2012:                                             ; preds = %2011
  %2013 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %183, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.44)
          to label %2014 unwind label %2069

2014:                                             ; preds = %2012
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef @.str)
          to label %2015 unwind label %2073

2015:                                             ; preds = %2014
  %2016 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #8
  br label %2017

2017:                                             ; preds = %2015
  %2018 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2019 unwind label %2078

2019:                                             ; preds = %2017
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2020 unwind label %2082

2020:                                             ; preds = %2019
  %2021 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2018, ptr noundef %185)
          to label %2022 unwind label %2086

2022:                                             ; preds = %2020
  %2023 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2021)
          to label %2024 unwind label %2086

2024:                                             ; preds = %2022
  %2025 = xor i1 %2023, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #8
  br i1 %2025, label %2026, label %2135

2026:                                             ; preds = %2024
  %2027 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2028 unwind label %2092

2028:                                             ; preds = %2026
  %2029 = load ptr, ptr %2027, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %187) #8
  %2030 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2031 unwind label %2096

2031:                                             ; preds = %2028
  %2032 = load ptr, ptr %2030, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %187, ptr noundef nonnull align 8 dereferenceable(30) %2032, i32 noundef 525)
          to label %2033 unwind label %2096

2033:                                             ; preds = %2031
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2029, ptr noundef nonnull align 8 dereferenceable(30) %187, ptr noundef @.str.5)
          to label %2034 unwind label %2096

2034:                                             ; preds = %2033
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #8
  br label %2135

2035:                                             ; preds = %1988
  %2036 = landingpad { ptr, i32 }
          cleanup
  %2037 = extractvalue { ptr, i32 } %2036, 0
  store ptr %2037, ptr %4, align 8
  %2038 = extractvalue { ptr, i32 } %2036, 1
  store i32 %2038, ptr %5, align 4
  br label %2043

2039:                                             ; preds = %1997, %1995, %1992
  %2040 = landingpad { ptr, i32 }
          cleanup
  %2041 = extractvalue { ptr, i32 } %2040, 0
  store ptr %2041, ptr %4, align 8
  %2042 = extractvalue { ptr, i32 } %2040, 1
  store i32 %2042, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #8
  br label %2043

2043:                                             ; preds = %2039, %2035
  invoke void @__cxa_end_catch()
          to label %2044 unwind label %4084

2044:                                             ; preds = %2043
  br label %4074

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

2049:                                             ; preds = %2008
  %2050 = landingpad { ptr, i32 }
          cleanup
  %2051 = extractvalue { ptr, i32 } %2050, 0
  store ptr %2051, ptr %4, align 8
  %2052 = extractvalue { ptr, i32 } %2050, 1
  store i32 %2052, ptr %5, align 4
  br label %2067

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

2057:                                             ; preds = %2010
  %2058 = landingpad { ptr, i32 }
          cleanup
  %2059 = extractvalue { ptr, i32 } %2058, 0
  store ptr %2059, ptr %4, align 8
  %2060 = extractvalue { ptr, i32 } %2058, 1
  store i32 %2060, ptr %5, align 4
  br label %2065

2061:                                             ; preds = %2011
  %2062 = landingpad { ptr, i32 }
          cleanup
  %2063 = extractvalue { ptr, i32 } %2062, 0
  store ptr %2063, ptr %4, align 8
  %2064 = extractvalue { ptr, i32 } %2062, 1
  store i32 %2064, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %2065

2065:                                             ; preds = %2061, %2057
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  br label %2066

2066:                                             ; preds = %2065, %2053
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  br label %2067

2067:                                             ; preds = %2066, %2049
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  br label %2068

2068:                                             ; preds = %2067, %2045
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #8
  br label %4074

2069:                                             ; preds = %2012
  %2070 = landingpad { ptr, i32 }
          cleanup
  %2071 = extractvalue { ptr, i32 } %2070, 0
  store ptr %2071, ptr %4, align 8
  %2072 = extractvalue { ptr, i32 } %2070, 1
  store i32 %2072, ptr %5, align 4
  br label %2077

2073:                                             ; preds = %2014
  %2074 = landingpad { ptr, i32 }
          cleanup
  %2075 = extractvalue { ptr, i32 } %2074, 0
  store ptr %2075, ptr %4, align 8
  %2076 = extractvalue { ptr, i32 } %2074, 1
  store i32 %2076, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  br label %2077

2077:                                             ; preds = %2073, %2069
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #8
  br label %4074

2078:                                             ; preds = %2017
  %2079 = landingpad { ptr, i32 }
          catch ptr null
  %2080 = extractvalue { ptr, i32 } %2079, 0
  store ptr %2080, ptr %4, align 8
  %2081 = extractvalue { ptr, i32 } %2079, 1
  store i32 %2081, ptr %5, align 4
  br label %2091

2082:                                             ; preds = %2019
  %2083 = landingpad { ptr, i32 }
          catch ptr null
  %2084 = extractvalue { ptr, i32 } %2083, 0
  store ptr %2084, ptr %4, align 8
  %2085 = extractvalue { ptr, i32 } %2083, 1
  store i32 %2085, ptr %5, align 4
  br label %2090

2086:                                             ; preds = %2022, %2020
  %2087 = landingpad { ptr, i32 }
          catch ptr null
  %2088 = extractvalue { ptr, i32 } %2087, 0
  store ptr %2088, ptr %4, align 8
  %2089 = extractvalue { ptr, i32 } %2087, 1
  store i32 %2089, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #8
  br label %2090

2090:                                             ; preds = %2086, %2082
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #8
  br label %2091

2091:                                             ; preds = %2090, %2078
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #8
  br label %2100

2092:                                             ; preds = %2026
  %2093 = landingpad { ptr, i32 }
          catch ptr null
  %2094 = extractvalue { ptr, i32 } %2093, 0
  store ptr %2094, ptr %4, align 8
  %2095 = extractvalue { ptr, i32 } %2093, 1
  store i32 %2095, ptr %5, align 4
  br label %2100

2096:                                             ; preds = %2033, %2031, %2028
  %2097 = landingpad { ptr, i32 }
          catch ptr null
  %2098 = extractvalue { ptr, i32 } %2097, 0
  store ptr %2098, ptr %4, align 8
  %2099 = extractvalue { ptr, i32 } %2097, 1
  store i32 %2099, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #8
  br label %2100

2100:                                             ; preds = %2096, %2092, %2091
  %2101 = load ptr, ptr %4, align 8
  %2102 = call ptr @__cxa_begin_catch(ptr %2101) #8
  %2103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2104 unwind label %2136

2104:                                             ; preds = %2100
  %2105 = load ptr, ptr %2103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #8
  %2106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2107 unwind label %2140

2107:                                             ; preds = %2104
  %2108 = load ptr, ptr %2106, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %188, ptr noundef nonnull align 8 dereferenceable(30) %2108, i32 noundef 525)
          to label %2109 unwind label %2140

2109:                                             ; preds = %2107
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2105, ptr noundef nonnull align 8 dereferenceable(30) %188, ptr noundef @.str.6)
          to label %2110 unwind label %2140

2110:                                             ; preds = %2109
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  invoke void @__cxa_end_catch()
          to label %2111 unwind label %471

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2135, %2111
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  call void @llvm.lifetime.start.p0(i64 16, ptr %189) #8
  %2115 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %2116 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %2117 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %190, ptr noundef nonnull align 8 dereferenceable(88) %2117)
          to label %2118 unwind label %2146

2118:                                             ; preds = %2114
  %2119 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2120 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2119)
          to label %2121 unwind label %2150

2121:                                             ; preds = %2118
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %189, ptr noundef nonnull align 8 dereferenceable(136) %2115, ptr noundef %2116, ptr noundef %190, ptr noundef nonnull align 8 dereferenceable(24) %2120, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2122 unwind label %2150

2122:                                             ; preds = %2121
  %2123 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %189) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %191) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %192, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %191, ptr noundef %192, i1 noundef zeroext false)
          to label %2124 unwind label %2155

2124:                                             ; preds = %2122
  %2125 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %191) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #8
  br label %2126

2126:                                             ; preds = %2124
  %2127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2128 unwind label %2159

2128:                                             ; preds = %2126
  %2129 = load ptr, ptr %2127, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %193) #8
  %2130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2131 unwind label %2163

2131:                                             ; preds = %2128
  %2132 = load ptr, ptr %2130, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %193, ptr noundef nonnull align 8 dereferenceable(30) %2132, i32 noundef 528)
          to label %2133 unwind label %2163

2133:                                             ; preds = %2131
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2129, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(5) @.str.7, ptr noundef nonnull align 8 dereferenceable(30) %193)
          to label %2134 unwind label %2163

2134:                                             ; preds = %2133
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #8
  br label %2179

2135:                                             ; preds = %2034, %2024
  br label %2112

2136:                                             ; preds = %2100
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %4, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %5, align 4
  br label %2144

2140:                                             ; preds = %2109, %2107, %2104
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %4, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  br label %2144

2144:                                             ; preds = %2140, %2136
  invoke void @__cxa_end_catch()
          to label %2145 unwind label %4084

2145:                                             ; preds = %2144
  br label %4074

2146:                                             ; preds = %2114
  %2147 = landingpad { ptr, i32 }
          cleanup
  %2148 = extractvalue { ptr, i32 } %2147, 0
  store ptr %2148, ptr %4, align 8
  %2149 = extractvalue { ptr, i32 } %2147, 1
  store i32 %2149, ptr %5, align 4
  br label %2154

2150:                                             ; preds = %2121, %2118
  %2151 = landingpad { ptr, i32 }
          cleanup
  %2152 = extractvalue { ptr, i32 } %2151, 0
  store ptr %2152, ptr %4, align 8
  %2153 = extractvalue { ptr, i32 } %2151, 1
  store i32 %2153, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #8
  br label %2154

2154:                                             ; preds = %2150, %2146
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #8
  br label %4074

2155:                                             ; preds = %2122
  %2156 = landingpad { ptr, i32 }
          cleanup
  %2157 = extractvalue { ptr, i32 } %2156, 0
  store ptr %2157, ptr %4, align 8
  %2158 = extractvalue { ptr, i32 } %2156, 1
  store i32 %2158, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #8
  br label %4074

2159:                                             ; preds = %2126
  %2160 = landingpad { ptr, i32 }
          catch ptr null
  %2161 = extractvalue { ptr, i32 } %2160, 0
  store ptr %2161, ptr %4, align 8
  %2162 = extractvalue { ptr, i32 } %2160, 1
  store i32 %2162, ptr %5, align 4
  br label %2167

2163:                                             ; preds = %2133, %2131, %2128
  %2164 = landingpad { ptr, i32 }
          catch ptr null
  %2165 = extractvalue { ptr, i32 } %2164, 0
  store ptr %2165, ptr %4, align 8
  %2166 = extractvalue { ptr, i32 } %2164, 1
  store i32 %2166, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #8
  br label %2167

2167:                                             ; preds = %2163, %2159
  %2168 = load ptr, ptr %4, align 8
  %2169 = call ptr @__cxa_begin_catch(ptr %2168) #8
  %2170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2171 unwind label %2193

2171:                                             ; preds = %2167
  %2172 = load ptr, ptr %2170, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %194) #8
  %2173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2174 unwind label %2197

2174:                                             ; preds = %2171
  %2175 = load ptr, ptr %2173, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %194, ptr noundef nonnull align 8 dereferenceable(30) %2175, i32 noundef 528)
          to label %2176 unwind label %2197

2176:                                             ; preds = %2174
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2172, ptr noundef nonnull align 8 dereferenceable(30) %194, ptr noundef @.str.27)
          to label %2177 unwind label %2197

2177:                                             ; preds = %2176
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #8
  invoke void @__cxa_end_catch()
          to label %2178 unwind label %471

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178, %2134
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 32, ptr %195) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %195, ptr noundef %196)
          to label %2182 unwind label %2203

2182:                                             ; preds = %2181
  %2183 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %195) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %196) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #8
  br label %2184

2184:                                             ; preds = %2182
  %2185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2186 unwind label %2207

2186:                                             ; preds = %2184
  %2187 = load ptr, ptr %2185, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %197) #8
  %2188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2189 unwind label %2211

2189:                                             ; preds = %2186
  %2190 = load ptr, ptr %2188, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %197, ptr noundef nonnull align 8 dereferenceable(30) %2190, i32 noundef 530)
          to label %2191 unwind label %2211

2191:                                             ; preds = %2189
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2187, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(5) @.str.7, ptr noundef nonnull align 8 dereferenceable(30) %197)
          to label %2192 unwind label %2211

2192:                                             ; preds = %2191
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #8
  br label %2227

2193:                                             ; preds = %2167
  %2194 = landingpad { ptr, i32 }
          cleanup
  %2195 = extractvalue { ptr, i32 } %2194, 0
  store ptr %2195, ptr %4, align 8
  %2196 = extractvalue { ptr, i32 } %2194, 1
  store i32 %2196, ptr %5, align 4
  br label %2201

2197:                                             ; preds = %2176, %2174, %2171
  %2198 = landingpad { ptr, i32 }
          cleanup
  %2199 = extractvalue { ptr, i32 } %2198, 0
  store ptr %2199, ptr %4, align 8
  %2200 = extractvalue { ptr, i32 } %2198, 1
  store i32 %2200, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #8
  br label %2201

2201:                                             ; preds = %2197, %2193
  invoke void @__cxa_end_catch()
          to label %2202 unwind label %4084

2202:                                             ; preds = %2201
  br label %4074

2203:                                             ; preds = %2181
  %2204 = landingpad { ptr, i32 }
          cleanup
  %2205 = extractvalue { ptr, i32 } %2204, 0
  store ptr %2205, ptr %4, align 8
  %2206 = extractvalue { ptr, i32 } %2204, 1
  store i32 %2206, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %196) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #8
  br label %4074

2207:                                             ; preds = %2184
  %2208 = landingpad { ptr, i32 }
          catch ptr null
  %2209 = extractvalue { ptr, i32 } %2208, 0
  store ptr %2209, ptr %4, align 8
  %2210 = extractvalue { ptr, i32 } %2208, 1
  store i32 %2210, ptr %5, align 4
  br label %2215

2211:                                             ; preds = %2191, %2189, %2186
  %2212 = landingpad { ptr, i32 }
          catch ptr null
  %2213 = extractvalue { ptr, i32 } %2212, 0
  store ptr %2213, ptr %4, align 8
  %2214 = extractvalue { ptr, i32 } %2212, 1
  store i32 %2214, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #8
  br label %2215

2215:                                             ; preds = %2211, %2207
  %2216 = load ptr, ptr %4, align 8
  %2217 = call ptr @__cxa_begin_catch(ptr %2216) #8
  %2218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2219 unwind label %2264

2219:                                             ; preds = %2215
  %2220 = load ptr, ptr %2218, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #8
  %2221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2222 unwind label %2268

2222:                                             ; preds = %2219
  %2223 = load ptr, ptr %2221, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef nonnull align 8 dereferenceable(30) %2223, i32 noundef 530)
          to label %2224 unwind label %2268

2224:                                             ; preds = %2222
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2220, ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef @.str.28)
          to label %2225 unwind label %2268

2225:                                             ; preds = %2224
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #8
  invoke void @__cxa_end_catch()
          to label %2226 unwind label %471

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226, %2192
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  %2230 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2231 = load ptr, ptr %2230, align 8, !tbaa !9
  %2232 = getelementptr inbounds ptr, ptr %2231, i64 5
  %2233 = load ptr, ptr %2232, align 8
  invoke void %2233(ptr noundef nonnull align 8 dereferenceable(96) %2230)
          to label %2234 unwind label %471

2234:                                             ; preds = %2229
  call void @llvm.lifetime.start.p0(i64 32, ptr %199) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %200) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %205) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %205, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str.111)
          to label %2235 unwind label %2274

2235:                                             ; preds = %2234
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef @.str.127)
          to label %2236 unwind label %2278

2236:                                             ; preds = %2235
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %203, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.82)
          to label %2237 unwind label %2282

2237:                                             ; preds = %2236
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %202, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str.128)
          to label %2238 unwind label %2286

2238:                                             ; preds = %2237
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef @.str.129)
          to label %2239 unwind label %2290

2239:                                             ; preds = %2238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %200, ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.130)
          to label %2240 unwind label %2294

2240:                                             ; preds = %2239
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %199, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef @.str)
          to label %2241 unwind label %2298

2241:                                             ; preds = %2240
  %2242 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %208) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %209) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef @.str.44)
          to label %2243 unwind label %2308

2243:                                             ; preds = %2241
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef @.str)
          to label %2244 unwind label %2312

2244:                                             ; preds = %2243
  %2245 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %2246

2246:                                             ; preds = %2244
  %2247 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %211) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %211, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2248 unwind label %2317

2248:                                             ; preds = %2246
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2249 unwind label %2321

2249:                                             ; preds = %2248
  %2250 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2247, ptr noundef %210)
          to label %2251 unwind label %2325

2251:                                             ; preds = %2249
  %2252 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2250)
          to label %2253 unwind label %2325

2253:                                             ; preds = %2251
  %2254 = xor i1 %2252, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #8
  br i1 %2254, label %2255, label %2374

2255:                                             ; preds = %2253
  %2256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2257 unwind label %2331

2257:                                             ; preds = %2255
  %2258 = load ptr, ptr %2256, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #8
  %2259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2260 unwind label %2335

2260:                                             ; preds = %2257
  %2261 = load ptr, ptr %2259, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %212, ptr noundef nonnull align 8 dereferenceable(30) %2261, i32 noundef 547)
          to label %2262 unwind label %2335

2262:                                             ; preds = %2260
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2258, ptr noundef nonnull align 8 dereferenceable(30) %212, ptr noundef @.str.5)
          to label %2263 unwind label %2335

2263:                                             ; preds = %2262
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #8
  br label %2374

2264:                                             ; preds = %2215
  %2265 = landingpad { ptr, i32 }
          cleanup
  %2266 = extractvalue { ptr, i32 } %2265, 0
  store ptr %2266, ptr %4, align 8
  %2267 = extractvalue { ptr, i32 } %2265, 1
  store i32 %2267, ptr %5, align 4
  br label %2272

2268:                                             ; preds = %2224, %2222, %2219
  %2269 = landingpad { ptr, i32 }
          cleanup
  %2270 = extractvalue { ptr, i32 } %2269, 0
  store ptr %2270, ptr %4, align 8
  %2271 = extractvalue { ptr, i32 } %2269, 1
  store i32 %2271, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #8
  br label %2272

2272:                                             ; preds = %2268, %2264
  invoke void @__cxa_end_catch()
          to label %2273 unwind label %4084

2273:                                             ; preds = %2272
  br label %4074

2274:                                             ; preds = %2234
  %2275 = landingpad { ptr, i32 }
          cleanup
  %2276 = extractvalue { ptr, i32 } %2275, 0
  store ptr %2276, ptr %4, align 8
  %2277 = extractvalue { ptr, i32 } %2275, 1
  store i32 %2277, ptr %5, align 4
  br label %2307

2278:                                             ; preds = %2235
  %2279 = landingpad { ptr, i32 }
          cleanup
  %2280 = extractvalue { ptr, i32 } %2279, 0
  store ptr %2280, ptr %4, align 8
  %2281 = extractvalue { ptr, i32 } %2279, 1
  store i32 %2281, ptr %5, align 4
  br label %2306

2282:                                             ; preds = %2236
  %2283 = landingpad { ptr, i32 }
          cleanup
  %2284 = extractvalue { ptr, i32 } %2283, 0
  store ptr %2284, ptr %4, align 8
  %2285 = extractvalue { ptr, i32 } %2283, 1
  store i32 %2285, ptr %5, align 4
  br label %2305

2286:                                             ; preds = %2237
  %2287 = landingpad { ptr, i32 }
          cleanup
  %2288 = extractvalue { ptr, i32 } %2287, 0
  store ptr %2288, ptr %4, align 8
  %2289 = extractvalue { ptr, i32 } %2287, 1
  store i32 %2289, ptr %5, align 4
  br label %2304

2290:                                             ; preds = %2238
  %2291 = landingpad { ptr, i32 }
          cleanup
  %2292 = extractvalue { ptr, i32 } %2291, 0
  store ptr %2292, ptr %4, align 8
  %2293 = extractvalue { ptr, i32 } %2291, 1
  store i32 %2293, ptr %5, align 4
  br label %2303

2294:                                             ; preds = %2239
  %2295 = landingpad { ptr, i32 }
          cleanup
  %2296 = extractvalue { ptr, i32 } %2295, 0
  store ptr %2296, ptr %4, align 8
  %2297 = extractvalue { ptr, i32 } %2295, 1
  store i32 %2297, ptr %5, align 4
  br label %2302

2298:                                             ; preds = %2240
  %2299 = landingpad { ptr, i32 }
          cleanup
  %2300 = extractvalue { ptr, i32 } %2299, 0
  store ptr %2300, ptr %4, align 8
  %2301 = extractvalue { ptr, i32 } %2299, 1
  store i32 %2301, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #8
  br label %2302

2302:                                             ; preds = %2298, %2294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  br label %2303

2303:                                             ; preds = %2302, %2290
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  br label %2304

2304:                                             ; preds = %2303, %2286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  br label %2305

2305:                                             ; preds = %2304, %2282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #8
  br label %2306

2306:                                             ; preds = %2305, %2278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #8
  br label %2307

2307:                                             ; preds = %2306, %2274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #8
  br label %4074

2308:                                             ; preds = %2241
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %4, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %5, align 4
  br label %2316

2312:                                             ; preds = %2243
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %4, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  br label %2316

2316:                                             ; preds = %2312, %2308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %4074

2317:                                             ; preds = %2246
  %2318 = landingpad { ptr, i32 }
          catch ptr null
  %2319 = extractvalue { ptr, i32 } %2318, 0
  store ptr %2319, ptr %4, align 8
  %2320 = extractvalue { ptr, i32 } %2318, 1
  store i32 %2320, ptr %5, align 4
  br label %2330

2321:                                             ; preds = %2248
  %2322 = landingpad { ptr, i32 }
          catch ptr null
  %2323 = extractvalue { ptr, i32 } %2322, 0
  store ptr %2323, ptr %4, align 8
  %2324 = extractvalue { ptr, i32 } %2322, 1
  store i32 %2324, ptr %5, align 4
  br label %2329

2325:                                             ; preds = %2251, %2249
  %2326 = landingpad { ptr, i32 }
          catch ptr null
  %2327 = extractvalue { ptr, i32 } %2326, 0
  store ptr %2327, ptr %4, align 8
  %2328 = extractvalue { ptr, i32 } %2326, 1
  store i32 %2328, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  br label %2329

2329:                                             ; preds = %2325, %2321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #8
  br label %2330

2330:                                             ; preds = %2329, %2317
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #8
  br label %2339

2331:                                             ; preds = %2255
  %2332 = landingpad { ptr, i32 }
          catch ptr null
  %2333 = extractvalue { ptr, i32 } %2332, 0
  store ptr %2333, ptr %4, align 8
  %2334 = extractvalue { ptr, i32 } %2332, 1
  store i32 %2334, ptr %5, align 4
  br label %2339

2335:                                             ; preds = %2262, %2260, %2257
  %2336 = landingpad { ptr, i32 }
          catch ptr null
  %2337 = extractvalue { ptr, i32 } %2336, 0
  store ptr %2337, ptr %4, align 8
  %2338 = extractvalue { ptr, i32 } %2336, 1
  store i32 %2338, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #8
  br label %2339

2339:                                             ; preds = %2335, %2331, %2330
  %2340 = load ptr, ptr %4, align 8
  %2341 = call ptr @__cxa_begin_catch(ptr %2340) #8
  %2342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2343 unwind label %2375

2343:                                             ; preds = %2339
  %2344 = load ptr, ptr %2342, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %213) #8
  %2345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2346 unwind label %2379

2346:                                             ; preds = %2343
  %2347 = load ptr, ptr %2345, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %213, ptr noundef nonnull align 8 dereferenceable(30) %2347, i32 noundef 547)
          to label %2348 unwind label %2379

2348:                                             ; preds = %2346
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2344, ptr noundef nonnull align 8 dereferenceable(30) %213, ptr noundef @.str.6)
          to label %2349 unwind label %2379

2349:                                             ; preds = %2348
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #8
  invoke void @__cxa_end_catch()
          to label %2350 unwind label %471

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2374, %2350
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 16, ptr %214) #8
  %2354 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %2355 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %2356 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %215, ptr noundef nonnull align 8 dereferenceable(88) %2356)
          to label %2357 unwind label %2385

2357:                                             ; preds = %2353
  %2358 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2359 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2358)
          to label %2360 unwind label %2389

2360:                                             ; preds = %2357
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %214, ptr noundef nonnull align 8 dereferenceable(136) %2354, ptr noundef %2355, ptr noundef %215, ptr noundef nonnull align 8 dereferenceable(24) %2359, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2361 unwind label %2389

2361:                                             ; preds = %2360
  %2362 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %214) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %214) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %216) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %217, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %216, ptr noundef %217, i1 noundef zeroext false)
          to label %2363 unwind label %2394

2363:                                             ; preds = %2361
  %2364 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %216) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #8
  br label %2365

2365:                                             ; preds = %2363
  %2366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2367 unwind label %2398

2367:                                             ; preds = %2365
  %2368 = load ptr, ptr %2366, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #8
  %2369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2370 unwind label %2402

2370:                                             ; preds = %2367
  %2371 = load ptr, ptr %2369, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %218, ptr noundef nonnull align 8 dereferenceable(30) %2371, i32 noundef 550)
          to label %2372 unwind label %2402

2372:                                             ; preds = %2370
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA82_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2368, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(82) @.str.131, ptr noundef nonnull align 8 dereferenceable(30) %218)
          to label %2373 unwind label %2402

2373:                                             ; preds = %2372
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #8
  br label %2418

2374:                                             ; preds = %2263, %2253
  br label %2351

2375:                                             ; preds = %2339
  %2376 = landingpad { ptr, i32 }
          cleanup
  %2377 = extractvalue { ptr, i32 } %2376, 0
  store ptr %2377, ptr %4, align 8
  %2378 = extractvalue { ptr, i32 } %2376, 1
  store i32 %2378, ptr %5, align 4
  br label %2383

2379:                                             ; preds = %2348, %2346, %2343
  %2380 = landingpad { ptr, i32 }
          cleanup
  %2381 = extractvalue { ptr, i32 } %2380, 0
  store ptr %2381, ptr %4, align 8
  %2382 = extractvalue { ptr, i32 } %2380, 1
  store i32 %2382, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #8
  br label %2383

2383:                                             ; preds = %2379, %2375
  invoke void @__cxa_end_catch()
          to label %2384 unwind label %4084

2384:                                             ; preds = %2383
  br label %4074

2385:                                             ; preds = %2353
  %2386 = landingpad { ptr, i32 }
          cleanup
  %2387 = extractvalue { ptr, i32 } %2386, 0
  store ptr %2387, ptr %4, align 8
  %2388 = extractvalue { ptr, i32 } %2386, 1
  store i32 %2388, ptr %5, align 4
  br label %2393

2389:                                             ; preds = %2360, %2357
  %2390 = landingpad { ptr, i32 }
          cleanup
  %2391 = extractvalue { ptr, i32 } %2390, 0
  store ptr %2391, ptr %4, align 8
  %2392 = extractvalue { ptr, i32 } %2390, 1
  store i32 %2392, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #8
  br label %2393

2393:                                             ; preds = %2389, %2385
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #8
  br label %4074

2394:                                             ; preds = %2361
  %2395 = landingpad { ptr, i32 }
          cleanup
  %2396 = extractvalue { ptr, i32 } %2395, 0
  store ptr %2396, ptr %4, align 8
  %2397 = extractvalue { ptr, i32 } %2395, 1
  store i32 %2397, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #8
  br label %4074

2398:                                             ; preds = %2365
  %2399 = landingpad { ptr, i32 }
          catch ptr null
  %2400 = extractvalue { ptr, i32 } %2399, 0
  store ptr %2400, ptr %4, align 8
  %2401 = extractvalue { ptr, i32 } %2399, 1
  store i32 %2401, ptr %5, align 4
  br label %2406

2402:                                             ; preds = %2372, %2370, %2367
  %2403 = landingpad { ptr, i32 }
          catch ptr null
  %2404 = extractvalue { ptr, i32 } %2403, 0
  store ptr %2404, ptr %4, align 8
  %2405 = extractvalue { ptr, i32 } %2403, 1
  store i32 %2405, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #8
  br label %2406

2406:                                             ; preds = %2402, %2398
  %2407 = load ptr, ptr %4, align 8
  %2408 = call ptr @__cxa_begin_catch(ptr %2407) #8
  %2409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2410 unwind label %2432

2410:                                             ; preds = %2406
  %2411 = load ptr, ptr %2409, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %219) #8
  %2412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2413 unwind label %2436

2413:                                             ; preds = %2410
  %2414 = load ptr, ptr %2412, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %219, ptr noundef nonnull align 8 dereferenceable(30) %2414, i32 noundef 550)
          to label %2415 unwind label %2436

2415:                                             ; preds = %2413
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2411, ptr noundef nonnull align 8 dereferenceable(30) %219, ptr noundef @.str.132)
          to label %2416 unwind label %2436

2416:                                             ; preds = %2415
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #8
  invoke void @__cxa_end_catch()
          to label %2417 unwind label %471

2417:                                             ; preds = %2416
  br label %2418

2418:                                             ; preds = %2417, %2373
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419
  call void @llvm.lifetime.start.p0(i64 32, ptr %220) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr noundef %221)
          to label %2421 unwind label %2442

2421:                                             ; preds = %2420
  %2422 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %220) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #8
  br label %2423

2423:                                             ; preds = %2421
  %2424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2425 unwind label %2446

2425:                                             ; preds = %2423
  %2426 = load ptr, ptr %2424, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #8
  %2427 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2428 unwind label %2450

2428:                                             ; preds = %2425
  %2429 = load ptr, ptr %2427, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %222, ptr noundef nonnull align 8 dereferenceable(30) %2429, i32 noundef 552)
          to label %2430 unwind label %2450

2430:                                             ; preds = %2428
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA338_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2426, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(338) @.str.133, ptr noundef nonnull align 8 dereferenceable(30) %222)
          to label %2431 unwind label %2450

2431:                                             ; preds = %2430
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #8
  br label %2466

2432:                                             ; preds = %2406
  %2433 = landingpad { ptr, i32 }
          cleanup
  %2434 = extractvalue { ptr, i32 } %2433, 0
  store ptr %2434, ptr %4, align 8
  %2435 = extractvalue { ptr, i32 } %2433, 1
  store i32 %2435, ptr %5, align 4
  br label %2440

2436:                                             ; preds = %2415, %2413, %2410
  %2437 = landingpad { ptr, i32 }
          cleanup
  %2438 = extractvalue { ptr, i32 } %2437, 0
  store ptr %2438, ptr %4, align 8
  %2439 = extractvalue { ptr, i32 } %2437, 1
  store i32 %2439, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #8
  br label %2440

2440:                                             ; preds = %2436, %2432
  invoke void @__cxa_end_catch()
          to label %2441 unwind label %4084

2441:                                             ; preds = %2440
  br label %4074

2442:                                             ; preds = %2420
  %2443 = landingpad { ptr, i32 }
          cleanup
  %2444 = extractvalue { ptr, i32 } %2443, 0
  store ptr %2444, ptr %4, align 8
  %2445 = extractvalue { ptr, i32 } %2443, 1
  store i32 %2445, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #8
  br label %4074

2446:                                             ; preds = %2423
  %2447 = landingpad { ptr, i32 }
          catch ptr null
  %2448 = extractvalue { ptr, i32 } %2447, 0
  store ptr %2448, ptr %4, align 8
  %2449 = extractvalue { ptr, i32 } %2447, 1
  store i32 %2449, ptr %5, align 4
  br label %2454

2450:                                             ; preds = %2430, %2428, %2425
  %2451 = landingpad { ptr, i32 }
          catch ptr null
  %2452 = extractvalue { ptr, i32 } %2451, 0
  store ptr %2452, ptr %4, align 8
  %2453 = extractvalue { ptr, i32 } %2451, 1
  store i32 %2453, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #8
  br label %2454

2454:                                             ; preds = %2450, %2446
  %2455 = load ptr, ptr %4, align 8
  %2456 = call ptr @__cxa_begin_catch(ptr %2455) #8
  %2457 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2458 unwind label %2503

2458:                                             ; preds = %2454
  %2459 = load ptr, ptr %2457, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %223) #8
  %2460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2461 unwind label %2507

2461:                                             ; preds = %2458
  %2462 = load ptr, ptr %2460, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %223, ptr noundef nonnull align 8 dereferenceable(30) %2462, i32 noundef 552)
          to label %2463 unwind label %2507

2463:                                             ; preds = %2461
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2459, ptr noundef nonnull align 8 dereferenceable(30) %223, ptr noundef @.str.134)
          to label %2464 unwind label %2507

2464:                                             ; preds = %2463
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #8
  invoke void @__cxa_end_catch()
          to label %2465 unwind label %471

2465:                                             ; preds = %2464
  br label %2466

2466:                                             ; preds = %2465, %2431
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

2468:                                             ; preds = %2467
  %2469 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2470 = load ptr, ptr %2469, align 8, !tbaa !9
  %2471 = getelementptr inbounds ptr, ptr %2470, i64 5
  %2472 = load ptr, ptr %2471, align 8
  invoke void %2472(ptr noundef nonnull align 8 dereferenceable(96) %2469)
          to label %2473 unwind label %471

2473:                                             ; preds = %2468
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %225) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %228) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %230, ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef @.str.111)
          to label %2474 unwind label %2513

2474:                                             ; preds = %2473
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.135)
          to label %2475 unwind label %2517

2475:                                             ; preds = %2474
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %228, ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef @.str.82)
          to label %2476 unwind label %2521

2476:                                             ; preds = %2475
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %227, ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef @.str.117)
          to label %2477 unwind label %2525

2477:                                             ; preds = %2476
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef @.str.136)
          to label %2478 unwind label %2529

2478:                                             ; preds = %2477
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %225, ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef @.str.137)
          to label %2479 unwind label %2533

2479:                                             ; preds = %2478
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef @.str)
          to label %2480 unwind label %2537

2480:                                             ; preds = %2479
  %2481 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %232) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %233) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %233, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @.str.119)
          to label %2482 unwind label %2547

2482:                                             ; preds = %2480
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %232, ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef @.str)
          to label %2483 unwind label %2551

2483:                                             ; preds = %2482
  %2484 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %232) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #8
  br label %2485

2485:                                             ; preds = %2483
  %2486 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %236) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %236, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2487 unwind label %2556

2487:                                             ; preds = %2485
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %235, ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2488 unwind label %2560

2488:                                             ; preds = %2487
  %2489 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2486, ptr noundef %235)
          to label %2490 unwind label %2564

2490:                                             ; preds = %2488
  %2491 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2489)
          to label %2492 unwind label %2564

2492:                                             ; preds = %2490
  %2493 = xor i1 %2491, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #8
  br i1 %2493, label %2494, label %2613

2494:                                             ; preds = %2492
  %2495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2496 unwind label %2570

2496:                                             ; preds = %2494
  %2497 = load ptr, ptr %2495, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %237) #8
  %2498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2499 unwind label %2574

2499:                                             ; preds = %2496
  %2500 = load ptr, ptr %2498, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %237, ptr noundef nonnull align 8 dereferenceable(30) %2500, i32 noundef 567)
          to label %2501 unwind label %2574

2501:                                             ; preds = %2499
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2497, ptr noundef nonnull align 8 dereferenceable(30) %237, ptr noundef @.str.5)
          to label %2502 unwind label %2574

2502:                                             ; preds = %2501
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #8
  br label %2613

2503:                                             ; preds = %2454
  %2504 = landingpad { ptr, i32 }
          cleanup
  %2505 = extractvalue { ptr, i32 } %2504, 0
  store ptr %2505, ptr %4, align 8
  %2506 = extractvalue { ptr, i32 } %2504, 1
  store i32 %2506, ptr %5, align 4
  br label %2511

2507:                                             ; preds = %2463, %2461, %2458
  %2508 = landingpad { ptr, i32 }
          cleanup
  %2509 = extractvalue { ptr, i32 } %2508, 0
  store ptr %2509, ptr %4, align 8
  %2510 = extractvalue { ptr, i32 } %2508, 1
  store i32 %2510, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #8
  br label %2511

2511:                                             ; preds = %2507, %2503
  invoke void @__cxa_end_catch()
          to label %2512 unwind label %4084

2512:                                             ; preds = %2511
  br label %4074

2513:                                             ; preds = %2473
  %2514 = landingpad { ptr, i32 }
          cleanup
  %2515 = extractvalue { ptr, i32 } %2514, 0
  store ptr %2515, ptr %4, align 8
  %2516 = extractvalue { ptr, i32 } %2514, 1
  store i32 %2516, ptr %5, align 4
  br label %2546

2517:                                             ; preds = %2474
  %2518 = landingpad { ptr, i32 }
          cleanup
  %2519 = extractvalue { ptr, i32 } %2518, 0
  store ptr %2519, ptr %4, align 8
  %2520 = extractvalue { ptr, i32 } %2518, 1
  store i32 %2520, ptr %5, align 4
  br label %2545

2521:                                             ; preds = %2475
  %2522 = landingpad { ptr, i32 }
          cleanup
  %2523 = extractvalue { ptr, i32 } %2522, 0
  store ptr %2523, ptr %4, align 8
  %2524 = extractvalue { ptr, i32 } %2522, 1
  store i32 %2524, ptr %5, align 4
  br label %2544

2525:                                             ; preds = %2476
  %2526 = landingpad { ptr, i32 }
          cleanup
  %2527 = extractvalue { ptr, i32 } %2526, 0
  store ptr %2527, ptr %4, align 8
  %2528 = extractvalue { ptr, i32 } %2526, 1
  store i32 %2528, ptr %5, align 4
  br label %2543

2529:                                             ; preds = %2477
  %2530 = landingpad { ptr, i32 }
          cleanup
  %2531 = extractvalue { ptr, i32 } %2530, 0
  store ptr %2531, ptr %4, align 8
  %2532 = extractvalue { ptr, i32 } %2530, 1
  store i32 %2532, ptr %5, align 4
  br label %2542

2533:                                             ; preds = %2478
  %2534 = landingpad { ptr, i32 }
          cleanup
  %2535 = extractvalue { ptr, i32 } %2534, 0
  store ptr %2535, ptr %4, align 8
  %2536 = extractvalue { ptr, i32 } %2534, 1
  store i32 %2536, ptr %5, align 4
  br label %2541

2537:                                             ; preds = %2479
  %2538 = landingpad { ptr, i32 }
          cleanup
  %2539 = extractvalue { ptr, i32 } %2538, 0
  store ptr %2539, ptr %4, align 8
  %2540 = extractvalue { ptr, i32 } %2538, 1
  store i32 %2540, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #8
  br label %2541

2541:                                             ; preds = %2537, %2533
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #8
  br label %2542

2542:                                             ; preds = %2541, %2529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  br label %2543

2543:                                             ; preds = %2542, %2525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #8
  br label %2544

2544:                                             ; preds = %2543, %2521
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  br label %2545

2545:                                             ; preds = %2544, %2517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #8
  br label %2546

2546:                                             ; preds = %2545, %2513
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #8
  br label %4074

2547:                                             ; preds = %2480
  %2548 = landingpad { ptr, i32 }
          cleanup
  %2549 = extractvalue { ptr, i32 } %2548, 0
  store ptr %2549, ptr %4, align 8
  %2550 = extractvalue { ptr, i32 } %2548, 1
  store i32 %2550, ptr %5, align 4
  br label %2555

2551:                                             ; preds = %2482
  %2552 = landingpad { ptr, i32 }
          cleanup
  %2553 = extractvalue { ptr, i32 } %2552, 0
  store ptr %2553, ptr %4, align 8
  %2554 = extractvalue { ptr, i32 } %2552, 1
  store i32 %2554, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  br label %2555

2555:                                             ; preds = %2551, %2547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #8
  br label %4074

2556:                                             ; preds = %2485
  %2557 = landingpad { ptr, i32 }
          catch ptr null
  %2558 = extractvalue { ptr, i32 } %2557, 0
  store ptr %2558, ptr %4, align 8
  %2559 = extractvalue { ptr, i32 } %2557, 1
  store i32 %2559, ptr %5, align 4
  br label %2569

2560:                                             ; preds = %2487
  %2561 = landingpad { ptr, i32 }
          catch ptr null
  %2562 = extractvalue { ptr, i32 } %2561, 0
  store ptr %2562, ptr %4, align 8
  %2563 = extractvalue { ptr, i32 } %2561, 1
  store i32 %2563, ptr %5, align 4
  br label %2568

2564:                                             ; preds = %2490, %2488
  %2565 = landingpad { ptr, i32 }
          catch ptr null
  %2566 = extractvalue { ptr, i32 } %2565, 0
  store ptr %2566, ptr %4, align 8
  %2567 = extractvalue { ptr, i32 } %2565, 1
  store i32 %2567, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #8
  br label %2568

2568:                                             ; preds = %2564, %2560
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #8
  br label %2569

2569:                                             ; preds = %2568, %2556
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #8
  br label %2578

2570:                                             ; preds = %2494
  %2571 = landingpad { ptr, i32 }
          catch ptr null
  %2572 = extractvalue { ptr, i32 } %2571, 0
  store ptr %2572, ptr %4, align 8
  %2573 = extractvalue { ptr, i32 } %2571, 1
  store i32 %2573, ptr %5, align 4
  br label %2578

2574:                                             ; preds = %2501, %2499, %2496
  %2575 = landingpad { ptr, i32 }
          catch ptr null
  %2576 = extractvalue { ptr, i32 } %2575, 0
  store ptr %2576, ptr %4, align 8
  %2577 = extractvalue { ptr, i32 } %2575, 1
  store i32 %2577, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #8
  br label %2578

2578:                                             ; preds = %2574, %2570, %2569
  %2579 = load ptr, ptr %4, align 8
  %2580 = call ptr @__cxa_begin_catch(ptr %2579) #8
  %2581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2582 unwind label %2614

2582:                                             ; preds = %2578
  %2583 = load ptr, ptr %2581, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %238) #8
  %2584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2585 unwind label %2618

2585:                                             ; preds = %2582
  %2586 = load ptr, ptr %2584, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %238, ptr noundef nonnull align 8 dereferenceable(30) %2586, i32 noundef 567)
          to label %2587 unwind label %2618

2587:                                             ; preds = %2585
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2583, ptr noundef nonnull align 8 dereferenceable(30) %238, ptr noundef @.str.6)
          to label %2588 unwind label %2618

2588:                                             ; preds = %2587
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #8
  invoke void @__cxa_end_catch()
          to label %2589 unwind label %471

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2613, %2589
  br label %2591

2591:                                             ; preds = %2590
  br label %2592

2592:                                             ; preds = %2591
  call void @llvm.lifetime.start.p0(i64 16, ptr %239) #8
  %2593 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %2594 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %2595 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %240, ptr noundef nonnull align 8 dereferenceable(88) %2595)
          to label %2596 unwind label %2624

2596:                                             ; preds = %2592
  %2597 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2598 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2597)
          to label %2599 unwind label %2628

2599:                                             ; preds = %2596
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %239, ptr noundef nonnull align 8 dereferenceable(136) %2593, ptr noundef %2594, ptr noundef %240, ptr noundef nonnull align 8 dereferenceable(24) %2598, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2600 unwind label %2628

2600:                                             ; preds = %2599
  %2601 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %239) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %240) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %241) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %241, ptr noundef %242, i1 noundef zeroext false)
          to label %2602 unwind label %2633

2602:                                             ; preds = %2600
  %2603 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %241) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %242) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #8
  br label %2604

2604:                                             ; preds = %2602
  %2605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2606 unwind label %2637

2606:                                             ; preds = %2604
  %2607 = load ptr, ptr %2605, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #8
  %2608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2609 unwind label %2641

2609:                                             ; preds = %2606
  %2610 = load ptr, ptr %2608, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %243, ptr noundef nonnull align 8 dereferenceable(30) %2610, i32 noundef 570)
          to label %2611 unwind label %2641

2611:                                             ; preds = %2609
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2607, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(111) @.str.138, ptr noundef nonnull align 8 dereferenceable(30) %243)
          to label %2612 unwind label %2641

2612:                                             ; preds = %2611
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #8
  br label %2657

2613:                                             ; preds = %2502, %2492
  br label %2590

2614:                                             ; preds = %2578
  %2615 = landingpad { ptr, i32 }
          cleanup
  %2616 = extractvalue { ptr, i32 } %2615, 0
  store ptr %2616, ptr %4, align 8
  %2617 = extractvalue { ptr, i32 } %2615, 1
  store i32 %2617, ptr %5, align 4
  br label %2622

2618:                                             ; preds = %2587, %2585, %2582
  %2619 = landingpad { ptr, i32 }
          cleanup
  %2620 = extractvalue { ptr, i32 } %2619, 0
  store ptr %2620, ptr %4, align 8
  %2621 = extractvalue { ptr, i32 } %2619, 1
  store i32 %2621, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #8
  br label %2622

2622:                                             ; preds = %2618, %2614
  invoke void @__cxa_end_catch()
          to label %2623 unwind label %4084

2623:                                             ; preds = %2622
  br label %4074

2624:                                             ; preds = %2592
  %2625 = landingpad { ptr, i32 }
          cleanup
  %2626 = extractvalue { ptr, i32 } %2625, 0
  store ptr %2626, ptr %4, align 8
  %2627 = extractvalue { ptr, i32 } %2625, 1
  store i32 %2627, ptr %5, align 4
  br label %2632

2628:                                             ; preds = %2599, %2596
  %2629 = landingpad { ptr, i32 }
          cleanup
  %2630 = extractvalue { ptr, i32 } %2629, 0
  store ptr %2630, ptr %4, align 8
  %2631 = extractvalue { ptr, i32 } %2629, 1
  store i32 %2631, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %240) #8
  br label %2632

2632:                                             ; preds = %2628, %2624
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #8
  br label %4074

2633:                                             ; preds = %2600
  %2634 = landingpad { ptr, i32 }
          cleanup
  %2635 = extractvalue { ptr, i32 } %2634, 0
  store ptr %2635, ptr %4, align 8
  %2636 = extractvalue { ptr, i32 } %2634, 1
  store i32 %2636, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %242) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #8
  br label %4074

2637:                                             ; preds = %2604
  %2638 = landingpad { ptr, i32 }
          catch ptr null
  %2639 = extractvalue { ptr, i32 } %2638, 0
  store ptr %2639, ptr %4, align 8
  %2640 = extractvalue { ptr, i32 } %2638, 1
  store i32 %2640, ptr %5, align 4
  br label %2645

2641:                                             ; preds = %2611, %2609, %2606
  %2642 = landingpad { ptr, i32 }
          catch ptr null
  %2643 = extractvalue { ptr, i32 } %2642, 0
  store ptr %2643, ptr %4, align 8
  %2644 = extractvalue { ptr, i32 } %2642, 1
  store i32 %2644, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #8
  br label %2645

2645:                                             ; preds = %2641, %2637
  %2646 = load ptr, ptr %4, align 8
  %2647 = call ptr @__cxa_begin_catch(ptr %2646) #8
  %2648 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2649 unwind label %2671

2649:                                             ; preds = %2645
  %2650 = load ptr, ptr %2648, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %244) #8
  %2651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2652 unwind label %2675

2652:                                             ; preds = %2649
  %2653 = load ptr, ptr %2651, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %244, ptr noundef nonnull align 8 dereferenceable(30) %2653, i32 noundef 570)
          to label %2654 unwind label %2675

2654:                                             ; preds = %2652
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2650, ptr noundef nonnull align 8 dereferenceable(30) %244, ptr noundef @.str.139)
          to label %2655 unwind label %2675

2655:                                             ; preds = %2654
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #8
  invoke void @__cxa_end_catch()
          to label %2656 unwind label %471

2656:                                             ; preds = %2655
  br label %2657

2657:                                             ; preds = %2656, %2612
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %246, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %245, ptr noundef %246)
          to label %2660 unwind label %2681

2660:                                             ; preds = %2659
  %2661 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %246) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #8
  br label %2662

2662:                                             ; preds = %2660
  %2663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2664 unwind label %2685

2664:                                             ; preds = %2662
  %2665 = load ptr, ptr %2663, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %247) #8
  %2666 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2667 unwind label %2689

2667:                                             ; preds = %2664
  %2668 = load ptr, ptr %2666, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %247, ptr noundef nonnull align 8 dereferenceable(30) %2668, i32 noundef 572)
          to label %2669 unwind label %2689

2669:                                             ; preds = %2667
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2665, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(243) @.str.140, ptr noundef nonnull align 8 dereferenceable(30) %247)
          to label %2670 unwind label %2689

2670:                                             ; preds = %2669
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #8
  br label %2705

2671:                                             ; preds = %2645
  %2672 = landingpad { ptr, i32 }
          cleanup
  %2673 = extractvalue { ptr, i32 } %2672, 0
  store ptr %2673, ptr %4, align 8
  %2674 = extractvalue { ptr, i32 } %2672, 1
  store i32 %2674, ptr %5, align 4
  br label %2679

2675:                                             ; preds = %2654, %2652, %2649
  %2676 = landingpad { ptr, i32 }
          cleanup
  %2677 = extractvalue { ptr, i32 } %2676, 0
  store ptr %2677, ptr %4, align 8
  %2678 = extractvalue { ptr, i32 } %2676, 1
  store i32 %2678, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #8
  br label %2679

2679:                                             ; preds = %2675, %2671
  invoke void @__cxa_end_catch()
          to label %2680 unwind label %4084

2680:                                             ; preds = %2679
  br label %4074

2681:                                             ; preds = %2659
  %2682 = landingpad { ptr, i32 }
          cleanup
  %2683 = extractvalue { ptr, i32 } %2682, 0
  store ptr %2683, ptr %4, align 8
  %2684 = extractvalue { ptr, i32 } %2682, 1
  store i32 %2684, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %246) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #8
  br label %4074

2685:                                             ; preds = %2662
  %2686 = landingpad { ptr, i32 }
          catch ptr null
  %2687 = extractvalue { ptr, i32 } %2686, 0
  store ptr %2687, ptr %4, align 8
  %2688 = extractvalue { ptr, i32 } %2686, 1
  store i32 %2688, ptr %5, align 4
  br label %2693

2689:                                             ; preds = %2669, %2667, %2664
  %2690 = landingpad { ptr, i32 }
          catch ptr null
  %2691 = extractvalue { ptr, i32 } %2690, 0
  store ptr %2691, ptr %4, align 8
  %2692 = extractvalue { ptr, i32 } %2690, 1
  store i32 %2692, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #8
  br label %2693

2693:                                             ; preds = %2689, %2685
  %2694 = load ptr, ptr %4, align 8
  %2695 = call ptr @__cxa_begin_catch(ptr %2694) #8
  %2696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2697 unwind label %2739

2697:                                             ; preds = %2693
  %2698 = load ptr, ptr %2696, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #8
  %2699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2700 unwind label %2743

2700:                                             ; preds = %2697
  %2701 = load ptr, ptr %2699, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %248, ptr noundef nonnull align 8 dereferenceable(30) %2701, i32 noundef 572)
          to label %2702 unwind label %2743

2702:                                             ; preds = %2700
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2698, ptr noundef nonnull align 8 dereferenceable(30) %248, ptr noundef @.str.141)
          to label %2703 unwind label %2743

2703:                                             ; preds = %2702
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #8
  invoke void @__cxa_end_catch()
          to label %2704 unwind label %471

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704, %2670
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706
  %2708 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2709 = load ptr, ptr %2708, align 8, !tbaa !9
  %2710 = getelementptr inbounds ptr, ptr %2709, i64 5
  %2711 = load ptr, ptr %2710, align 8
  invoke void %2711(ptr noundef nonnull align 8 dereferenceable(96) %2708)
          to label %2712 unwind label %471

2712:                                             ; preds = %2707
  call void @llvm.lifetime.start.p0(i64 32, ptr %249) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %251) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %253) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef @.str.55)
          to label %2713 unwind label %2749

2713:                                             ; preds = %2712
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %251, ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef @.str.82)
          to label %2714 unwind label %2753

2714:                                             ; preds = %2713
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %250, ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef @.str.142)
          to label %2715 unwind label %2757

2715:                                             ; preds = %2714
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %249, ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef @.str)
          to label %2716 unwind label %2761

2716:                                             ; preds = %2715
  %2717 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %255) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %255, ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str.44)
          to label %2718 unwind label %2768

2718:                                             ; preds = %2716
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %254, ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef @.str)
          to label %2719 unwind label %2772

2719:                                             ; preds = %2718
  %2720 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %254) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #8
  br label %2721

2721:                                             ; preds = %2719
  %2722 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %258) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %258, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2723 unwind label %2777

2723:                                             ; preds = %2721
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %257, ptr noundef nonnull align 8 dereferenceable(32) %258, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2724 unwind label %2781

2724:                                             ; preds = %2723
  %2725 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2722, ptr noundef %257)
          to label %2726 unwind label %2785

2726:                                             ; preds = %2724
  %2727 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2725)
          to label %2728 unwind label %2785

2728:                                             ; preds = %2726
  %2729 = xor i1 %2727, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #8
  br i1 %2729, label %2730, label %2834

2730:                                             ; preds = %2728
  %2731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2732 unwind label %2791

2732:                                             ; preds = %2730
  %2733 = load ptr, ptr %2731, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #8
  %2734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2735 unwind label %2795

2735:                                             ; preds = %2732
  %2736 = load ptr, ptr %2734, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %259, ptr noundef nonnull align 8 dereferenceable(30) %2736, i32 noundef 584)
          to label %2737 unwind label %2795

2737:                                             ; preds = %2735
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2733, ptr noundef nonnull align 8 dereferenceable(30) %259, ptr noundef @.str.5)
          to label %2738 unwind label %2795

2738:                                             ; preds = %2737
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #8
  br label %2834

2739:                                             ; preds = %2693
  %2740 = landingpad { ptr, i32 }
          cleanup
  %2741 = extractvalue { ptr, i32 } %2740, 0
  store ptr %2741, ptr %4, align 8
  %2742 = extractvalue { ptr, i32 } %2740, 1
  store i32 %2742, ptr %5, align 4
  br label %2747

2743:                                             ; preds = %2702, %2700, %2697
  %2744 = landingpad { ptr, i32 }
          cleanup
  %2745 = extractvalue { ptr, i32 } %2744, 0
  store ptr %2745, ptr %4, align 8
  %2746 = extractvalue { ptr, i32 } %2744, 1
  store i32 %2746, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #8
  br label %2747

2747:                                             ; preds = %2743, %2739
  invoke void @__cxa_end_catch()
          to label %2748 unwind label %4084

2748:                                             ; preds = %2747
  br label %4074

2749:                                             ; preds = %2712
  %2750 = landingpad { ptr, i32 }
          cleanup
  %2751 = extractvalue { ptr, i32 } %2750, 0
  store ptr %2751, ptr %4, align 8
  %2752 = extractvalue { ptr, i32 } %2750, 1
  store i32 %2752, ptr %5, align 4
  br label %2767

2753:                                             ; preds = %2713
  %2754 = landingpad { ptr, i32 }
          cleanup
  %2755 = extractvalue { ptr, i32 } %2754, 0
  store ptr %2755, ptr %4, align 8
  %2756 = extractvalue { ptr, i32 } %2754, 1
  store i32 %2756, ptr %5, align 4
  br label %2766

2757:                                             ; preds = %2714
  %2758 = landingpad { ptr, i32 }
          cleanup
  %2759 = extractvalue { ptr, i32 } %2758, 0
  store ptr %2759, ptr %4, align 8
  %2760 = extractvalue { ptr, i32 } %2758, 1
  store i32 %2760, ptr %5, align 4
  br label %2765

2761:                                             ; preds = %2715
  %2762 = landingpad { ptr, i32 }
          cleanup
  %2763 = extractvalue { ptr, i32 } %2762, 0
  store ptr %2763, ptr %4, align 8
  %2764 = extractvalue { ptr, i32 } %2762, 1
  store i32 %2764, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  br label %2765

2765:                                             ; preds = %2761, %2757
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #8
  br label %2766

2766:                                             ; preds = %2765, %2753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #8
  br label %2767

2767:                                             ; preds = %2766, %2749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #8
  br label %4074

2768:                                             ; preds = %2716
  %2769 = landingpad { ptr, i32 }
          cleanup
  %2770 = extractvalue { ptr, i32 } %2769, 0
  store ptr %2770, ptr %4, align 8
  %2771 = extractvalue { ptr, i32 } %2769, 1
  store i32 %2771, ptr %5, align 4
  br label %2776

2772:                                             ; preds = %2718
  %2773 = landingpad { ptr, i32 }
          cleanup
  %2774 = extractvalue { ptr, i32 } %2773, 0
  store ptr %2774, ptr %4, align 8
  %2775 = extractvalue { ptr, i32 } %2773, 1
  store i32 %2775, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  br label %2776

2776:                                             ; preds = %2772, %2768
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #8
  br label %4074

2777:                                             ; preds = %2721
  %2778 = landingpad { ptr, i32 }
          catch ptr null
  %2779 = extractvalue { ptr, i32 } %2778, 0
  store ptr %2779, ptr %4, align 8
  %2780 = extractvalue { ptr, i32 } %2778, 1
  store i32 %2780, ptr %5, align 4
  br label %2790

2781:                                             ; preds = %2723
  %2782 = landingpad { ptr, i32 }
          catch ptr null
  %2783 = extractvalue { ptr, i32 } %2782, 0
  store ptr %2783, ptr %4, align 8
  %2784 = extractvalue { ptr, i32 } %2782, 1
  store i32 %2784, ptr %5, align 4
  br label %2789

2785:                                             ; preds = %2726, %2724
  %2786 = landingpad { ptr, i32 }
          catch ptr null
  %2787 = extractvalue { ptr, i32 } %2786, 0
  store ptr %2787, ptr %4, align 8
  %2788 = extractvalue { ptr, i32 } %2786, 1
  store i32 %2788, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #8
  br label %2789

2789:                                             ; preds = %2785, %2781
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #8
  br label %2790

2790:                                             ; preds = %2789, %2777
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #8
  br label %2799

2791:                                             ; preds = %2730
  %2792 = landingpad { ptr, i32 }
          catch ptr null
  %2793 = extractvalue { ptr, i32 } %2792, 0
  store ptr %2793, ptr %4, align 8
  %2794 = extractvalue { ptr, i32 } %2792, 1
  store i32 %2794, ptr %5, align 4
  br label %2799

2795:                                             ; preds = %2737, %2735, %2732
  %2796 = landingpad { ptr, i32 }
          catch ptr null
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %4, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #8
  br label %2799

2799:                                             ; preds = %2795, %2791, %2790
  %2800 = load ptr, ptr %4, align 8
  %2801 = call ptr @__cxa_begin_catch(ptr %2800) #8
  %2802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2803 unwind label %2835

2803:                                             ; preds = %2799
  %2804 = load ptr, ptr %2802, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %260) #8
  %2805 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2806 unwind label %2839

2806:                                             ; preds = %2803
  %2807 = load ptr, ptr %2805, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %260, ptr noundef nonnull align 8 dereferenceable(30) %2807, i32 noundef 584)
          to label %2808 unwind label %2839

2808:                                             ; preds = %2806
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2804, ptr noundef nonnull align 8 dereferenceable(30) %260, ptr noundef @.str.6)
          to label %2809 unwind label %2839

2809:                                             ; preds = %2808
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #8
  invoke void @__cxa_end_catch()
          to label %2810 unwind label %471

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2834, %2810
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

2813:                                             ; preds = %2812
  call void @llvm.lifetime.start.p0(i64 16, ptr %261) #8
  %2814 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %2815 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %2816 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %262, ptr noundef nonnull align 8 dereferenceable(88) %2816)
          to label %2817 unwind label %2845

2817:                                             ; preds = %2813
  %2818 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2819 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2818)
          to label %2820 unwind label %2849

2820:                                             ; preds = %2817
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %261, ptr noundef nonnull align 8 dereferenceable(136) %2814, ptr noundef %2815, ptr noundef %262, ptr noundef nonnull align 8 dereferenceable(24) %2819, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2821 unwind label %2849

2821:                                             ; preds = %2820
  %2822 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %261) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %262) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %261) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %263) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %264, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %263, ptr noundef %264, i1 noundef zeroext false)
          to label %2823 unwind label %2854

2823:                                             ; preds = %2821
  %2824 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %263) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %264) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #8
  br label %2825

2825:                                             ; preds = %2823
  %2826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2827 unwind label %2858

2827:                                             ; preds = %2825
  %2828 = load ptr, ptr %2826, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %265) #8
  %2829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2830 unwind label %2862

2830:                                             ; preds = %2827
  %2831 = load ptr, ptr %2829, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %265, ptr noundef nonnull align 8 dereferenceable(30) %2831, i32 noundef 587)
          to label %2832 unwind label %2862

2832:                                             ; preds = %2830
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2828, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(79) @.str.96, ptr noundef nonnull align 8 dereferenceable(30) %265)
          to label %2833 unwind label %2862

2833:                                             ; preds = %2832
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #8
  br label %2878

2834:                                             ; preds = %2738, %2728
  br label %2811

2835:                                             ; preds = %2799
  %2836 = landingpad { ptr, i32 }
          cleanup
  %2837 = extractvalue { ptr, i32 } %2836, 0
  store ptr %2837, ptr %4, align 8
  %2838 = extractvalue { ptr, i32 } %2836, 1
  store i32 %2838, ptr %5, align 4
  br label %2843

2839:                                             ; preds = %2808, %2806, %2803
  %2840 = landingpad { ptr, i32 }
          cleanup
  %2841 = extractvalue { ptr, i32 } %2840, 0
  store ptr %2841, ptr %4, align 8
  %2842 = extractvalue { ptr, i32 } %2840, 1
  store i32 %2842, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #8
  br label %2843

2843:                                             ; preds = %2839, %2835
  invoke void @__cxa_end_catch()
          to label %2844 unwind label %4084

2844:                                             ; preds = %2843
  br label %4074

2845:                                             ; preds = %2813
  %2846 = landingpad { ptr, i32 }
          cleanup
  %2847 = extractvalue { ptr, i32 } %2846, 0
  store ptr %2847, ptr %4, align 8
  %2848 = extractvalue { ptr, i32 } %2846, 1
  store i32 %2848, ptr %5, align 4
  br label %2853

2849:                                             ; preds = %2820, %2817
  %2850 = landingpad { ptr, i32 }
          cleanup
  %2851 = extractvalue { ptr, i32 } %2850, 0
  store ptr %2851, ptr %4, align 8
  %2852 = extractvalue { ptr, i32 } %2850, 1
  store i32 %2852, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %262) #8
  br label %2853

2853:                                             ; preds = %2849, %2845
  call void @llvm.lifetime.end.p0(i64 16, ptr %261) #8
  br label %4074

2854:                                             ; preds = %2821
  %2855 = landingpad { ptr, i32 }
          cleanup
  %2856 = extractvalue { ptr, i32 } %2855, 0
  store ptr %2856, ptr %4, align 8
  %2857 = extractvalue { ptr, i32 } %2855, 1
  store i32 %2857, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %264) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #8
  br label %4074

2858:                                             ; preds = %2825
  %2859 = landingpad { ptr, i32 }
          catch ptr null
  %2860 = extractvalue { ptr, i32 } %2859, 0
  store ptr %2860, ptr %4, align 8
  %2861 = extractvalue { ptr, i32 } %2859, 1
  store i32 %2861, ptr %5, align 4
  br label %2866

2862:                                             ; preds = %2832, %2830, %2827
  %2863 = landingpad { ptr, i32 }
          catch ptr null
  %2864 = extractvalue { ptr, i32 } %2863, 0
  store ptr %2864, ptr %4, align 8
  %2865 = extractvalue { ptr, i32 } %2863, 1
  store i32 %2865, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #8
  br label %2866

2866:                                             ; preds = %2862, %2858
  %2867 = load ptr, ptr %4, align 8
  %2868 = call ptr @__cxa_begin_catch(ptr %2867) #8
  %2869 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2870 unwind label %2892

2870:                                             ; preds = %2866
  %2871 = load ptr, ptr %2869, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %266) #8
  %2872 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2873 unwind label %2896

2873:                                             ; preds = %2870
  %2874 = load ptr, ptr %2872, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %266, ptr noundef nonnull align 8 dereferenceable(30) %2874, i32 noundef 587)
          to label %2875 unwind label %2896

2875:                                             ; preds = %2873
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2871, ptr noundef nonnull align 8 dereferenceable(30) %266, ptr noundef @.str.97)
          to label %2876 unwind label %2896

2876:                                             ; preds = %2875
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #8
  invoke void @__cxa_end_catch()
          to label %2877 unwind label %471

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877, %2833
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  call void @llvm.lifetime.start.p0(i64 32, ptr %267) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %268, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %267, ptr noundef %268)
          to label %2881 unwind label %2902

2881:                                             ; preds = %2880
  %2882 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %267) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %267) #8
  br label %2883

2883:                                             ; preds = %2881
  %2884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2885 unwind label %2906

2885:                                             ; preds = %2883
  %2886 = load ptr, ptr %2884, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %269) #8
  %2887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2888 unwind label %2910

2888:                                             ; preds = %2885
  %2889 = load ptr, ptr %2887, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %269, ptr noundef nonnull align 8 dereferenceable(30) %2889, i32 noundef 589)
          to label %2890 unwind label %2910

2890:                                             ; preds = %2888
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2886, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(160) @.str.98, ptr noundef nonnull align 8 dereferenceable(30) %269)
          to label %2891 unwind label %2910

2891:                                             ; preds = %2890
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #8
  br label %2926

2892:                                             ; preds = %2866
  %2893 = landingpad { ptr, i32 }
          cleanup
  %2894 = extractvalue { ptr, i32 } %2893, 0
  store ptr %2894, ptr %4, align 8
  %2895 = extractvalue { ptr, i32 } %2893, 1
  store i32 %2895, ptr %5, align 4
  br label %2900

2896:                                             ; preds = %2875, %2873, %2870
  %2897 = landingpad { ptr, i32 }
          cleanup
  %2898 = extractvalue { ptr, i32 } %2897, 0
  store ptr %2898, ptr %4, align 8
  %2899 = extractvalue { ptr, i32 } %2897, 1
  store i32 %2899, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #8
  br label %2900

2900:                                             ; preds = %2896, %2892
  invoke void @__cxa_end_catch()
          to label %2901 unwind label %4084

2901:                                             ; preds = %2900
  br label %4074

2902:                                             ; preds = %2880
  %2903 = landingpad { ptr, i32 }
          cleanup
  %2904 = extractvalue { ptr, i32 } %2903, 0
  store ptr %2904, ptr %4, align 8
  %2905 = extractvalue { ptr, i32 } %2903, 1
  store i32 %2905, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %267) #8
  br label %4074

2906:                                             ; preds = %2883
  %2907 = landingpad { ptr, i32 }
          catch ptr null
  %2908 = extractvalue { ptr, i32 } %2907, 0
  store ptr %2908, ptr %4, align 8
  %2909 = extractvalue { ptr, i32 } %2907, 1
  store i32 %2909, ptr %5, align 4
  br label %2914

2910:                                             ; preds = %2890, %2888, %2885
  %2911 = landingpad { ptr, i32 }
          catch ptr null
  %2912 = extractvalue { ptr, i32 } %2911, 0
  store ptr %2912, ptr %4, align 8
  %2913 = extractvalue { ptr, i32 } %2911, 1
  store i32 %2913, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #8
  br label %2914

2914:                                             ; preds = %2910, %2906
  %2915 = load ptr, ptr %4, align 8
  %2916 = call ptr @__cxa_begin_catch(ptr %2915) #8
  %2917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2918 unwind label %2960

2918:                                             ; preds = %2914
  %2919 = load ptr, ptr %2917, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %270) #8
  %2920 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2921 unwind label %2964

2921:                                             ; preds = %2918
  %2922 = load ptr, ptr %2920, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %270, ptr noundef nonnull align 8 dereferenceable(30) %2922, i32 noundef 589)
          to label %2923 unwind label %2964

2923:                                             ; preds = %2921
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2919, ptr noundef nonnull align 8 dereferenceable(30) %270, ptr noundef @.str.99)
          to label %2924 unwind label %2964

2924:                                             ; preds = %2923
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #8
  invoke void @__cxa_end_catch()
          to label %2925 unwind label %471

2925:                                             ; preds = %2924
  br label %2926

2926:                                             ; preds = %2925, %2891
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

2928:                                             ; preds = %2927
  %2929 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %2930 = load ptr, ptr %2929, align 8, !tbaa !9
  %2931 = getelementptr inbounds ptr, ptr %2930, i64 5
  %2932 = load ptr, ptr %2931, align 8
  invoke void %2932(ptr noundef nonnull align 8 dereferenceable(96) %2929)
          to label %2933 unwind label %471

2933:                                             ; preds = %2928
  call void @llvm.lifetime.start.p0(i64 32, ptr %271) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %273) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %274) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %275) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %274, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef @.str.55)
          to label %2934 unwind label %2970

2934:                                             ; preds = %2933
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %273, ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef @.str.82)
          to label %2935 unwind label %2974

2935:                                             ; preds = %2934
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %272, ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef @.str.142)
          to label %2936 unwind label %2978

2936:                                             ; preds = %2935
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %271, ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef @.str)
          to label %2937 unwind label %2982

2937:                                             ; preds = %2936
  %2938 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %271) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %273) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %276) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %277) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %278) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %277, ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.106)
          to label %2939 unwind label %2989

2939:                                             ; preds = %2937
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %276, ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef @.str)
          to label %2940 unwind label %2993

2940:                                             ; preds = %2939
  %2941 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #8
  br label %2942

2942:                                             ; preds = %2940
  %2943 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %280) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %280, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2944 unwind label %2998

2944:                                             ; preds = %2942
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %279, ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2945 unwind label %3002

2945:                                             ; preds = %2944
  %2946 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2943, ptr noundef %279)
          to label %2947 unwind label %3006

2947:                                             ; preds = %2945
  %2948 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2946)
          to label %2949 unwind label %3006

2949:                                             ; preds = %2947
  %2950 = xor i1 %2948, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #8
  br i1 %2950, label %2951, label %3055

2951:                                             ; preds = %2949
  %2952 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2953 unwind label %3012

2953:                                             ; preds = %2951
  %2954 = load ptr, ptr %2952, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %281) #8
  %2955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2956 unwind label %3016

2956:                                             ; preds = %2953
  %2957 = load ptr, ptr %2955, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %281, ptr noundef nonnull align 8 dereferenceable(30) %2957, i32 noundef 601)
          to label %2958 unwind label %3016

2958:                                             ; preds = %2956
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2954, ptr noundef nonnull align 8 dereferenceable(30) %281, ptr noundef @.str.5)
          to label %2959 unwind label %3016

2959:                                             ; preds = %2958
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #8
  br label %3055

2960:                                             ; preds = %2914
  %2961 = landingpad { ptr, i32 }
          cleanup
  %2962 = extractvalue { ptr, i32 } %2961, 0
  store ptr %2962, ptr %4, align 8
  %2963 = extractvalue { ptr, i32 } %2961, 1
  store i32 %2963, ptr %5, align 4
  br label %2968

2964:                                             ; preds = %2923, %2921, %2918
  %2965 = landingpad { ptr, i32 }
          cleanup
  %2966 = extractvalue { ptr, i32 } %2965, 0
  store ptr %2966, ptr %4, align 8
  %2967 = extractvalue { ptr, i32 } %2965, 1
  store i32 %2967, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #8
  br label %2968

2968:                                             ; preds = %2964, %2960
  invoke void @__cxa_end_catch()
          to label %2969 unwind label %4084

2969:                                             ; preds = %2968
  br label %4074

2970:                                             ; preds = %2933
  %2971 = landingpad { ptr, i32 }
          cleanup
  %2972 = extractvalue { ptr, i32 } %2971, 0
  store ptr %2972, ptr %4, align 8
  %2973 = extractvalue { ptr, i32 } %2971, 1
  store i32 %2973, ptr %5, align 4
  br label %2988

2974:                                             ; preds = %2934
  %2975 = landingpad { ptr, i32 }
          cleanup
  %2976 = extractvalue { ptr, i32 } %2975, 0
  store ptr %2976, ptr %4, align 8
  %2977 = extractvalue { ptr, i32 } %2975, 1
  store i32 %2977, ptr %5, align 4
  br label %2987

2978:                                             ; preds = %2935
  %2979 = landingpad { ptr, i32 }
          cleanup
  %2980 = extractvalue { ptr, i32 } %2979, 0
  store ptr %2980, ptr %4, align 8
  %2981 = extractvalue { ptr, i32 } %2979, 1
  store i32 %2981, ptr %5, align 4
  br label %2986

2982:                                             ; preds = %2936
  %2983 = landingpad { ptr, i32 }
          cleanup
  %2984 = extractvalue { ptr, i32 } %2983, 0
  store ptr %2984, ptr %4, align 8
  %2985 = extractvalue { ptr, i32 } %2983, 1
  store i32 %2985, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  br label %2986

2986:                                             ; preds = %2982, %2978
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #8
  br label %2987

2987:                                             ; preds = %2986, %2974
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #8
  br label %2988

2988:                                             ; preds = %2987, %2970
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %273) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #8
  br label %4074

2989:                                             ; preds = %2937
  %2990 = landingpad { ptr, i32 }
          cleanup
  %2991 = extractvalue { ptr, i32 } %2990, 0
  store ptr %2991, ptr %4, align 8
  %2992 = extractvalue { ptr, i32 } %2990, 1
  store i32 %2992, ptr %5, align 4
  br label %2997

2993:                                             ; preds = %2939
  %2994 = landingpad { ptr, i32 }
          cleanup
  %2995 = extractvalue { ptr, i32 } %2994, 0
  store ptr %2995, ptr %4, align 8
  %2996 = extractvalue { ptr, i32 } %2994, 1
  store i32 %2996, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  br label %2997

2997:                                             ; preds = %2993, %2989
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #8
  br label %4074

2998:                                             ; preds = %2942
  %2999 = landingpad { ptr, i32 }
          catch ptr null
  %3000 = extractvalue { ptr, i32 } %2999, 0
  store ptr %3000, ptr %4, align 8
  %3001 = extractvalue { ptr, i32 } %2999, 1
  store i32 %3001, ptr %5, align 4
  br label %3011

3002:                                             ; preds = %2944
  %3003 = landingpad { ptr, i32 }
          catch ptr null
  %3004 = extractvalue { ptr, i32 } %3003, 0
  store ptr %3004, ptr %4, align 8
  %3005 = extractvalue { ptr, i32 } %3003, 1
  store i32 %3005, ptr %5, align 4
  br label %3010

3006:                                             ; preds = %2947, %2945
  %3007 = landingpad { ptr, i32 }
          catch ptr null
  %3008 = extractvalue { ptr, i32 } %3007, 0
  store ptr %3008, ptr %4, align 8
  %3009 = extractvalue { ptr, i32 } %3007, 1
  store i32 %3009, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #8
  br label %3010

3010:                                             ; preds = %3006, %3002
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #8
  br label %3011

3011:                                             ; preds = %3010, %2998
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #8
  br label %3020

3012:                                             ; preds = %2951
  %3013 = landingpad { ptr, i32 }
          catch ptr null
  %3014 = extractvalue { ptr, i32 } %3013, 0
  store ptr %3014, ptr %4, align 8
  %3015 = extractvalue { ptr, i32 } %3013, 1
  store i32 %3015, ptr %5, align 4
  br label %3020

3016:                                             ; preds = %2958, %2956, %2953
  %3017 = landingpad { ptr, i32 }
          catch ptr null
  %3018 = extractvalue { ptr, i32 } %3017, 0
  store ptr %3018, ptr %4, align 8
  %3019 = extractvalue { ptr, i32 } %3017, 1
  store i32 %3019, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #8
  br label %3020

3020:                                             ; preds = %3016, %3012, %3011
  %3021 = load ptr, ptr %4, align 8
  %3022 = call ptr @__cxa_begin_catch(ptr %3021) #8
  %3023 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3024 unwind label %3056

3024:                                             ; preds = %3020
  %3025 = load ptr, ptr %3023, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %282) #8
  %3026 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3027 unwind label %3060

3027:                                             ; preds = %3024
  %3028 = load ptr, ptr %3026, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %282, ptr noundef nonnull align 8 dereferenceable(30) %3028, i32 noundef 601)
          to label %3029 unwind label %3060

3029:                                             ; preds = %3027
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3025, ptr noundef nonnull align 8 dereferenceable(30) %282, ptr noundef @.str.6)
          to label %3030 unwind label %3060

3030:                                             ; preds = %3029
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #8
  invoke void @__cxa_end_catch()
          to label %3031 unwind label %471

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3055, %3031
  br label %3033

3033:                                             ; preds = %3032
  br label %3034

3034:                                             ; preds = %3033
  call void @llvm.lifetime.start.p0(i64 16, ptr %283) #8
  %3035 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %3036 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %3037 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %284, ptr noundef nonnull align 8 dereferenceable(88) %3037)
          to label %3038 unwind label %3066

3038:                                             ; preds = %3034
  %3039 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3040 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %3039)
          to label %3041 unwind label %3070

3041:                                             ; preds = %3038
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %283, ptr noundef nonnull align 8 dereferenceable(136) %3035, ptr noundef %3036, ptr noundef %284, ptr noundef nonnull align 8 dereferenceable(24) %3040, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3042 unwind label %3070

3042:                                             ; preds = %3041
  %3043 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %283) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %283) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %284) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %283) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %285) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %286, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %285, ptr noundef %286, i1 noundef zeroext false)
          to label %3044 unwind label %3075

3044:                                             ; preds = %3042
  %3045 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %285) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #8
  br label %3046

3046:                                             ; preds = %3044
  %3047 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3048 unwind label %3079

3048:                                             ; preds = %3046
  %3049 = load ptr, ptr %3047, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %287) #8
  %3050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3051 unwind label %3083

3051:                                             ; preds = %3048
  %3052 = load ptr, ptr %3050, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %287, ptr noundef nonnull align 8 dereferenceable(30) %3052, i32 noundef 604)
          to label %3053 unwind label %3083

3053:                                             ; preds = %3051
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3049, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(142) @.str.107, ptr noundef nonnull align 8 dereferenceable(30) %287)
          to label %3054 unwind label %3083

3054:                                             ; preds = %3053
  call void @llvm.lifetime.end.p0(i64 32, ptr %287) #8
  br label %3099

3055:                                             ; preds = %2959, %2949
  br label %3032

3056:                                             ; preds = %3020
  %3057 = landingpad { ptr, i32 }
          cleanup
  %3058 = extractvalue { ptr, i32 } %3057, 0
  store ptr %3058, ptr %4, align 8
  %3059 = extractvalue { ptr, i32 } %3057, 1
  store i32 %3059, ptr %5, align 4
  br label %3064

3060:                                             ; preds = %3029, %3027, %3024
  %3061 = landingpad { ptr, i32 }
          cleanup
  %3062 = extractvalue { ptr, i32 } %3061, 0
  store ptr %3062, ptr %4, align 8
  %3063 = extractvalue { ptr, i32 } %3061, 1
  store i32 %3063, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #8
  br label %3064

3064:                                             ; preds = %3060, %3056
  invoke void @__cxa_end_catch()
          to label %3065 unwind label %4084

3065:                                             ; preds = %3064
  br label %4074

3066:                                             ; preds = %3034
  %3067 = landingpad { ptr, i32 }
          cleanup
  %3068 = extractvalue { ptr, i32 } %3067, 0
  store ptr %3068, ptr %4, align 8
  %3069 = extractvalue { ptr, i32 } %3067, 1
  store i32 %3069, ptr %5, align 4
  br label %3074

3070:                                             ; preds = %3041, %3038
  %3071 = landingpad { ptr, i32 }
          cleanup
  %3072 = extractvalue { ptr, i32 } %3071, 0
  store ptr %3072, ptr %4, align 8
  %3073 = extractvalue { ptr, i32 } %3071, 1
  store i32 %3073, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %284) #8
  br label %3074

3074:                                             ; preds = %3070, %3066
  call void @llvm.lifetime.end.p0(i64 16, ptr %283) #8
  br label %4074

3075:                                             ; preds = %3042
  %3076 = landingpad { ptr, i32 }
          cleanup
  %3077 = extractvalue { ptr, i32 } %3076, 0
  store ptr %3077, ptr %4, align 8
  %3078 = extractvalue { ptr, i32 } %3076, 1
  store i32 %3078, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #8
  br label %4074

3079:                                             ; preds = %3046
  %3080 = landingpad { ptr, i32 }
          catch ptr null
  %3081 = extractvalue { ptr, i32 } %3080, 0
  store ptr %3081, ptr %4, align 8
  %3082 = extractvalue { ptr, i32 } %3080, 1
  store i32 %3082, ptr %5, align 4
  br label %3087

3083:                                             ; preds = %3053, %3051, %3048
  %3084 = landingpad { ptr, i32 }
          catch ptr null
  %3085 = extractvalue { ptr, i32 } %3084, 0
  store ptr %3085, ptr %4, align 8
  %3086 = extractvalue { ptr, i32 } %3084, 1
  store i32 %3086, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %287) #8
  br label %3087

3087:                                             ; preds = %3083, %3079
  %3088 = load ptr, ptr %4, align 8
  %3089 = call ptr @__cxa_begin_catch(ptr %3088) #8
  %3090 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3091 unwind label %3113

3091:                                             ; preds = %3087
  %3092 = load ptr, ptr %3090, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %288) #8
  %3093 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3094 unwind label %3117

3094:                                             ; preds = %3091
  %3095 = load ptr, ptr %3093, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %288, ptr noundef nonnull align 8 dereferenceable(30) %3095, i32 noundef 604)
          to label %3096 unwind label %3117

3096:                                             ; preds = %3094
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3092, ptr noundef nonnull align 8 dereferenceable(30) %288, ptr noundef @.str.108)
          to label %3097 unwind label %3117

3097:                                             ; preds = %3096
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #8
  invoke void @__cxa_end_catch()
          to label %3098 unwind label %471

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098, %3054
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100
  call void @llvm.lifetime.start.p0(i64 32, ptr %289) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %290, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %289, ptr noundef %290)
          to label %3102 unwind label %3123

3102:                                             ; preds = %3101
  %3103 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %289) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %290) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %289) #8
  br label %3104

3104:                                             ; preds = %3102
  %3105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3106 unwind label %3127

3106:                                             ; preds = %3104
  %3107 = load ptr, ptr %3105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #8
  %3108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3109 unwind label %3131

3109:                                             ; preds = %3106
  %3110 = load ptr, ptr %3108, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %291, ptr noundef nonnull align 8 dereferenceable(30) %3110, i32 noundef 606)
          to label %3111 unwind label %3131

3111:                                             ; preds = %3109
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3107, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(227) @.str.109, ptr noundef nonnull align 8 dereferenceable(30) %291)
          to label %3112 unwind label %3131

3112:                                             ; preds = %3111
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #8
  br label %3147

3113:                                             ; preds = %3087
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %4, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %5, align 4
  br label %3121

3117:                                             ; preds = %3096, %3094, %3091
  %3118 = landingpad { ptr, i32 }
          cleanup
  %3119 = extractvalue { ptr, i32 } %3118, 0
  store ptr %3119, ptr %4, align 8
  %3120 = extractvalue { ptr, i32 } %3118, 1
  store i32 %3120, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #8
  br label %3121

3121:                                             ; preds = %3117, %3113
  invoke void @__cxa_end_catch()
          to label %3122 unwind label %4084

3122:                                             ; preds = %3121
  br label %4074

3123:                                             ; preds = %3101
  %3124 = landingpad { ptr, i32 }
          cleanup
  %3125 = extractvalue { ptr, i32 } %3124, 0
  store ptr %3125, ptr %4, align 8
  %3126 = extractvalue { ptr, i32 } %3124, 1
  store i32 %3126, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %290) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %289) #8
  br label %4074

3127:                                             ; preds = %3104
  %3128 = landingpad { ptr, i32 }
          catch ptr null
  %3129 = extractvalue { ptr, i32 } %3128, 0
  store ptr %3129, ptr %4, align 8
  %3130 = extractvalue { ptr, i32 } %3128, 1
  store i32 %3130, ptr %5, align 4
  br label %3135

3131:                                             ; preds = %3111, %3109, %3106
  %3132 = landingpad { ptr, i32 }
          catch ptr null
  %3133 = extractvalue { ptr, i32 } %3132, 0
  store ptr %3133, ptr %4, align 8
  %3134 = extractvalue { ptr, i32 } %3132, 1
  store i32 %3134, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #8
  br label %3135

3135:                                             ; preds = %3131, %3127
  %3136 = load ptr, ptr %4, align 8
  %3137 = call ptr @__cxa_begin_catch(ptr %3136) #8
  %3138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3139 unwind label %3181

3139:                                             ; preds = %3135
  %3140 = load ptr, ptr %3138, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %292) #8
  %3141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3142 unwind label %3185

3142:                                             ; preds = %3139
  %3143 = load ptr, ptr %3141, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %292, ptr noundef nonnull align 8 dereferenceable(30) %3143, i32 noundef 606)
          to label %3144 unwind label %3185

3144:                                             ; preds = %3142
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3140, ptr noundef nonnull align 8 dereferenceable(30) %292, ptr noundef @.str.110)
          to label %3145 unwind label %3185

3145:                                             ; preds = %3144
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #8
  invoke void @__cxa_end_catch()
          to label %3146 unwind label %471

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146, %3112
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  %3150 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3151 = load ptr, ptr %3150, align 8, !tbaa !9
  %3152 = getelementptr inbounds ptr, ptr %3151, i64 5
  %3153 = load ptr, ptr %3152, align 8
  invoke void %3153(ptr noundef nonnull align 8 dereferenceable(96) %3150)
          to label %3154 unwind label %471

3154:                                             ; preds = %3149
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %294) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %295) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %296) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %297) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef @.str.111)
          to label %3155 unwind label %3191

3155:                                             ; preds = %3154
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %295, ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef @.str.82)
          to label %3156 unwind label %3195

3156:                                             ; preds = %3155
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %294, ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef @.str.142)
          to label %3157 unwind label %3199

3157:                                             ; preds = %3156
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %293, ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str)
          to label %3158 unwind label %3203

3158:                                             ; preds = %3157
  %3159 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %293) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %298) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %300) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef @.str.112)
          to label %3160 unwind label %3210

3160:                                             ; preds = %3158
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %298, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef @.str)
          to label %3161 unwind label %3214

3161:                                             ; preds = %3160
  %3162 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %298) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %298) #8
  br label %3163

3163:                                             ; preds = %3161
  %3164 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %302) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %302, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3165 unwind label %3219

3165:                                             ; preds = %3163
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %301, ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %3166 unwind label %3223

3166:                                             ; preds = %3165
  %3167 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3164, ptr noundef %301)
          to label %3168 unwind label %3227

3168:                                             ; preds = %3166
  %3169 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %3167)
          to label %3170 unwind label %3227

3170:                                             ; preds = %3168
  %3171 = xor i1 %3169, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #8
  br i1 %3171, label %3172, label %3276

3172:                                             ; preds = %3170
  %3173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3174 unwind label %3233

3174:                                             ; preds = %3172
  %3175 = load ptr, ptr %3173, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %303) #8
  %3176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3177 unwind label %3237

3177:                                             ; preds = %3174
  %3178 = load ptr, ptr %3176, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %303, ptr noundef nonnull align 8 dereferenceable(30) %3178, i32 noundef 618)
          to label %3179 unwind label %3237

3179:                                             ; preds = %3177
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3175, ptr noundef nonnull align 8 dereferenceable(30) %303, ptr noundef @.str.5)
          to label %3180 unwind label %3237

3180:                                             ; preds = %3179
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #8
  br label %3276

3181:                                             ; preds = %3135
  %3182 = landingpad { ptr, i32 }
          cleanup
  %3183 = extractvalue { ptr, i32 } %3182, 0
  store ptr %3183, ptr %4, align 8
  %3184 = extractvalue { ptr, i32 } %3182, 1
  store i32 %3184, ptr %5, align 4
  br label %3189

3185:                                             ; preds = %3144, %3142, %3139
  %3186 = landingpad { ptr, i32 }
          cleanup
  %3187 = extractvalue { ptr, i32 } %3186, 0
  store ptr %3187, ptr %4, align 8
  %3188 = extractvalue { ptr, i32 } %3186, 1
  store i32 %3188, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #8
  br label %3189

3189:                                             ; preds = %3185, %3181
  invoke void @__cxa_end_catch()
          to label %3190 unwind label %4084

3190:                                             ; preds = %3189
  br label %4074

3191:                                             ; preds = %3154
  %3192 = landingpad { ptr, i32 }
          cleanup
  %3193 = extractvalue { ptr, i32 } %3192, 0
  store ptr %3193, ptr %4, align 8
  %3194 = extractvalue { ptr, i32 } %3192, 1
  store i32 %3194, ptr %5, align 4
  br label %3209

3195:                                             ; preds = %3155
  %3196 = landingpad { ptr, i32 }
          cleanup
  %3197 = extractvalue { ptr, i32 } %3196, 0
  store ptr %3197, ptr %4, align 8
  %3198 = extractvalue { ptr, i32 } %3196, 1
  store i32 %3198, ptr %5, align 4
  br label %3208

3199:                                             ; preds = %3156
  %3200 = landingpad { ptr, i32 }
          cleanup
  %3201 = extractvalue { ptr, i32 } %3200, 0
  store ptr %3201, ptr %4, align 8
  %3202 = extractvalue { ptr, i32 } %3200, 1
  store i32 %3202, ptr %5, align 4
  br label %3207

3203:                                             ; preds = %3157
  %3204 = landingpad { ptr, i32 }
          cleanup
  %3205 = extractvalue { ptr, i32 } %3204, 0
  store ptr %3205, ptr %4, align 8
  %3206 = extractvalue { ptr, i32 } %3204, 1
  store i32 %3206, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #8
  br label %3207

3207:                                             ; preds = %3203, %3199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #8
  br label %3208

3208:                                             ; preds = %3207, %3195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  br label %3209

3209:                                             ; preds = %3208, %3191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #8
  br label %4074

3210:                                             ; preds = %3158
  %3211 = landingpad { ptr, i32 }
          cleanup
  %3212 = extractvalue { ptr, i32 } %3211, 0
  store ptr %3212, ptr %4, align 8
  %3213 = extractvalue { ptr, i32 } %3211, 1
  store i32 %3213, ptr %5, align 4
  br label %3218

3214:                                             ; preds = %3160
  %3215 = landingpad { ptr, i32 }
          cleanup
  %3216 = extractvalue { ptr, i32 } %3215, 0
  store ptr %3216, ptr %4, align 8
  %3217 = extractvalue { ptr, i32 } %3215, 1
  store i32 %3217, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  br label %3218

3218:                                             ; preds = %3214, %3210
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %298) #8
  br label %4074

3219:                                             ; preds = %3163
  %3220 = landingpad { ptr, i32 }
          catch ptr null
  %3221 = extractvalue { ptr, i32 } %3220, 0
  store ptr %3221, ptr %4, align 8
  %3222 = extractvalue { ptr, i32 } %3220, 1
  store i32 %3222, ptr %5, align 4
  br label %3232

3223:                                             ; preds = %3165
  %3224 = landingpad { ptr, i32 }
          catch ptr null
  %3225 = extractvalue { ptr, i32 } %3224, 0
  store ptr %3225, ptr %4, align 8
  %3226 = extractvalue { ptr, i32 } %3224, 1
  store i32 %3226, ptr %5, align 4
  br label %3231

3227:                                             ; preds = %3168, %3166
  %3228 = landingpad { ptr, i32 }
          catch ptr null
  %3229 = extractvalue { ptr, i32 } %3228, 0
  store ptr %3229, ptr %4, align 8
  %3230 = extractvalue { ptr, i32 } %3228, 1
  store i32 %3230, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #8
  br label %3231

3231:                                             ; preds = %3227, %3223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #8
  br label %3232

3232:                                             ; preds = %3231, %3219
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #8
  br label %3241

3233:                                             ; preds = %3172
  %3234 = landingpad { ptr, i32 }
          catch ptr null
  %3235 = extractvalue { ptr, i32 } %3234, 0
  store ptr %3235, ptr %4, align 8
  %3236 = extractvalue { ptr, i32 } %3234, 1
  store i32 %3236, ptr %5, align 4
  br label %3241

3237:                                             ; preds = %3179, %3177, %3174
  %3238 = landingpad { ptr, i32 }
          catch ptr null
  %3239 = extractvalue { ptr, i32 } %3238, 0
  store ptr %3239, ptr %4, align 8
  %3240 = extractvalue { ptr, i32 } %3238, 1
  store i32 %3240, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #8
  br label %3241

3241:                                             ; preds = %3237, %3233, %3232
  %3242 = load ptr, ptr %4, align 8
  %3243 = call ptr @__cxa_begin_catch(ptr %3242) #8
  %3244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3245 unwind label %3277

3245:                                             ; preds = %3241
  %3246 = load ptr, ptr %3244, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %304) #8
  %3247 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3248 unwind label %3281

3248:                                             ; preds = %3245
  %3249 = load ptr, ptr %3247, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %304, ptr noundef nonnull align 8 dereferenceable(30) %3249, i32 noundef 618)
          to label %3250 unwind label %3281

3250:                                             ; preds = %3248
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3246, ptr noundef nonnull align 8 dereferenceable(30) %304, ptr noundef @.str.6)
          to label %3251 unwind label %3281

3251:                                             ; preds = %3250
  call void @llvm.lifetime.end.p0(i64 32, ptr %304) #8
  invoke void @__cxa_end_catch()
          to label %3252 unwind label %471

3252:                                             ; preds = %3251
  br label %3253

3253:                                             ; preds = %3276, %3252
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254
  call void @llvm.lifetime.start.p0(i64 16, ptr %305) #8
  %3256 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %3257 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %3258 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %306, ptr noundef nonnull align 8 dereferenceable(88) %3258)
          to label %3259 unwind label %3287

3259:                                             ; preds = %3255
  %3260 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3261 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %3260)
          to label %3262 unwind label %3291

3262:                                             ; preds = %3259
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %305, ptr noundef nonnull align 8 dereferenceable(136) %3256, ptr noundef %3257, ptr noundef %306, ptr noundef nonnull align 8 dereferenceable(24) %3261, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3263 unwind label %3291

3263:                                             ; preds = %3262
  %3264 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %305) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %305) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %306) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %305) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %307) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %308, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %307, ptr noundef %308, i1 noundef zeroext false)
          to label %3265 unwind label %3296

3265:                                             ; preds = %3263
  %3266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %307) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %308) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #8
  br label %3267

3267:                                             ; preds = %3265
  %3268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3269 unwind label %3300

3269:                                             ; preds = %3267
  %3270 = load ptr, ptr %3268, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %309) #8
  %3271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3272 unwind label %3304

3272:                                             ; preds = %3269
  %3273 = load ptr, ptr %3271, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %309, ptr noundef nonnull align 8 dereferenceable(30) %3273, i32 noundef 621)
          to label %3274 unwind label %3304

3274:                                             ; preds = %3272
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3270, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(149) @.str.113, ptr noundef nonnull align 8 dereferenceable(30) %309)
          to label %3275 unwind label %3304

3275:                                             ; preds = %3274
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #8
  br label %3320

3276:                                             ; preds = %3180, %3170
  br label %3253

3277:                                             ; preds = %3241
  %3278 = landingpad { ptr, i32 }
          cleanup
  %3279 = extractvalue { ptr, i32 } %3278, 0
  store ptr %3279, ptr %4, align 8
  %3280 = extractvalue { ptr, i32 } %3278, 1
  store i32 %3280, ptr %5, align 4
  br label %3285

3281:                                             ; preds = %3250, %3248, %3245
  %3282 = landingpad { ptr, i32 }
          cleanup
  %3283 = extractvalue { ptr, i32 } %3282, 0
  store ptr %3283, ptr %4, align 8
  %3284 = extractvalue { ptr, i32 } %3282, 1
  store i32 %3284, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %304) #8
  br label %3285

3285:                                             ; preds = %3281, %3277
  invoke void @__cxa_end_catch()
          to label %3286 unwind label %4084

3286:                                             ; preds = %3285
  br label %4074

3287:                                             ; preds = %3255
  %3288 = landingpad { ptr, i32 }
          cleanup
  %3289 = extractvalue { ptr, i32 } %3288, 0
  store ptr %3289, ptr %4, align 8
  %3290 = extractvalue { ptr, i32 } %3288, 1
  store i32 %3290, ptr %5, align 4
  br label %3295

3291:                                             ; preds = %3262, %3259
  %3292 = landingpad { ptr, i32 }
          cleanup
  %3293 = extractvalue { ptr, i32 } %3292, 0
  store ptr %3293, ptr %4, align 8
  %3294 = extractvalue { ptr, i32 } %3292, 1
  store i32 %3294, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %306) #8
  br label %3295

3295:                                             ; preds = %3291, %3287
  call void @llvm.lifetime.end.p0(i64 16, ptr %305) #8
  br label %4074

3296:                                             ; preds = %3263
  %3297 = landingpad { ptr, i32 }
          cleanup
  %3298 = extractvalue { ptr, i32 } %3297, 0
  store ptr %3298, ptr %4, align 8
  %3299 = extractvalue { ptr, i32 } %3297, 1
  store i32 %3299, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %308) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #8
  br label %4074

3300:                                             ; preds = %3267
  %3301 = landingpad { ptr, i32 }
          catch ptr null
  %3302 = extractvalue { ptr, i32 } %3301, 0
  store ptr %3302, ptr %4, align 8
  %3303 = extractvalue { ptr, i32 } %3301, 1
  store i32 %3303, ptr %5, align 4
  br label %3308

3304:                                             ; preds = %3274, %3272, %3269
  %3305 = landingpad { ptr, i32 }
          catch ptr null
  %3306 = extractvalue { ptr, i32 } %3305, 0
  store ptr %3306, ptr %4, align 8
  %3307 = extractvalue { ptr, i32 } %3305, 1
  store i32 %3307, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #8
  br label %3308

3308:                                             ; preds = %3304, %3300
  %3309 = load ptr, ptr %4, align 8
  %3310 = call ptr @__cxa_begin_catch(ptr %3309) #8
  %3311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3312 unwind label %3334

3312:                                             ; preds = %3308
  %3313 = load ptr, ptr %3311, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #8
  %3314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3315 unwind label %3338

3315:                                             ; preds = %3312
  %3316 = load ptr, ptr %3314, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %310, ptr noundef nonnull align 8 dereferenceable(30) %3316, i32 noundef 621)
          to label %3317 unwind label %3338

3317:                                             ; preds = %3315
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3313, ptr noundef nonnull align 8 dereferenceable(30) %310, ptr noundef @.str.114)
          to label %3318 unwind label %3338

3318:                                             ; preds = %3317
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #8
  invoke void @__cxa_end_catch()
          to label %3319 unwind label %471

3319:                                             ; preds = %3318
  br label %3320

3320:                                             ; preds = %3319, %3275
  br label %3321

3321:                                             ; preds = %3320
  br label %3322

3322:                                             ; preds = %3321
  call void @llvm.lifetime.start.p0(i64 32, ptr %311) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %312, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %311, ptr noundef %312)
          to label %3323 unwind label %3344

3323:                                             ; preds = %3322
  %3324 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %311) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %312) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #8
  br label %3325

3325:                                             ; preds = %3323
  %3326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3327 unwind label %3348

3327:                                             ; preds = %3325
  %3328 = load ptr, ptr %3326, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %313) #8
  %3329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3330 unwind label %3352

3330:                                             ; preds = %3327
  %3331 = load ptr, ptr %3329, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %313, ptr noundef nonnull align 8 dereferenceable(30) %3331, i32 noundef 623)
          to label %3332 unwind label %3352

3332:                                             ; preds = %3330
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3328, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(252) @.str.115, ptr noundef nonnull align 8 dereferenceable(30) %313)
          to label %3333 unwind label %3352

3333:                                             ; preds = %3332
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #8
  br label %3368

3334:                                             ; preds = %3308
  %3335 = landingpad { ptr, i32 }
          cleanup
  %3336 = extractvalue { ptr, i32 } %3335, 0
  store ptr %3336, ptr %4, align 8
  %3337 = extractvalue { ptr, i32 } %3335, 1
  store i32 %3337, ptr %5, align 4
  br label %3342

3338:                                             ; preds = %3317, %3315, %3312
  %3339 = landingpad { ptr, i32 }
          cleanup
  %3340 = extractvalue { ptr, i32 } %3339, 0
  store ptr %3340, ptr %4, align 8
  %3341 = extractvalue { ptr, i32 } %3339, 1
  store i32 %3341, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #8
  br label %3342

3342:                                             ; preds = %3338, %3334
  invoke void @__cxa_end_catch()
          to label %3343 unwind label %4084

3343:                                             ; preds = %3342
  br label %4074

3344:                                             ; preds = %3322
  %3345 = landingpad { ptr, i32 }
          cleanup
  %3346 = extractvalue { ptr, i32 } %3345, 0
  store ptr %3346, ptr %4, align 8
  %3347 = extractvalue { ptr, i32 } %3345, 1
  store i32 %3347, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %312) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #8
  br label %4074

3348:                                             ; preds = %3325
  %3349 = landingpad { ptr, i32 }
          catch ptr null
  %3350 = extractvalue { ptr, i32 } %3349, 0
  store ptr %3350, ptr %4, align 8
  %3351 = extractvalue { ptr, i32 } %3349, 1
  store i32 %3351, ptr %5, align 4
  br label %3356

3352:                                             ; preds = %3332, %3330, %3327
  %3353 = landingpad { ptr, i32 }
          catch ptr null
  %3354 = extractvalue { ptr, i32 } %3353, 0
  store ptr %3354, ptr %4, align 8
  %3355 = extractvalue { ptr, i32 } %3353, 1
  store i32 %3355, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #8
  br label %3356

3356:                                             ; preds = %3352, %3348
  %3357 = load ptr, ptr %4, align 8
  %3358 = call ptr @__cxa_begin_catch(ptr %3357) #8
  %3359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3360 unwind label %3403

3360:                                             ; preds = %3356
  %3361 = load ptr, ptr %3359, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %314) #8
  %3362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3363 unwind label %3407

3363:                                             ; preds = %3360
  %3364 = load ptr, ptr %3362, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %314, ptr noundef nonnull align 8 dereferenceable(30) %3364, i32 noundef 623)
          to label %3365 unwind label %3407

3365:                                             ; preds = %3363
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3361, ptr noundef nonnull align 8 dereferenceable(30) %314, ptr noundef @.str.116)
          to label %3366 unwind label %3407

3366:                                             ; preds = %3365
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #8
  invoke void @__cxa_end_catch()
          to label %3367 unwind label %471

3367:                                             ; preds = %3366
  br label %3368

3368:                                             ; preds = %3367, %3333
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  %3371 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3372 = load ptr, ptr %3371, align 8, !tbaa !9
  %3373 = getelementptr inbounds ptr, ptr %3372, i64 5
  %3374 = load ptr, ptr %3373, align 8
  invoke void %3374(ptr noundef nonnull align 8 dereferenceable(96) %3371)
          to label %3375 unwind label %471

3375:                                             ; preds = %3370
  call void @llvm.lifetime.start.p0(i64 32, ptr %315) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %316) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %317) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %318) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %319) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %320) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %319, ptr noundef nonnull align 8 dereferenceable(32) %320, ptr noundef @.str.111)
          to label %3376 unwind label %3413

3376:                                             ; preds = %3375
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %318, ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef @.str.82)
          to label %3377 unwind label %3417

3377:                                             ; preds = %3376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %317, ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef @.str.143)
          to label %3378 unwind label %3421

3378:                                             ; preds = %3377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %316, ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef @.str.118)
          to label %3379 unwind label %3425

3379:                                             ; preds = %3378
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef @.str)
          to label %3380 unwind label %3429

3380:                                             ; preds = %3379
  %3381 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %315) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %321) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %323) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %322, ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef @.str.119)
          to label %3382 unwind label %3437

3382:                                             ; preds = %3380
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %321, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef @.str)
          to label %3383 unwind label %3441

3383:                                             ; preds = %3382
  %3384 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %321) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %321) #8
  br label %3385

3385:                                             ; preds = %3383
  %3386 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %325) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %325, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3387 unwind label %3446

3387:                                             ; preds = %3385
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %324, ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %3388 unwind label %3450

3388:                                             ; preds = %3387
  %3389 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3386, ptr noundef %324)
          to label %3390 unwind label %3454

3390:                                             ; preds = %3388
  %3391 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %3389)
          to label %3392 unwind label %3454

3392:                                             ; preds = %3390
  %3393 = xor i1 %3391, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #8
  br i1 %3393, label %3394, label %3503

3394:                                             ; preds = %3392
  %3395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3396 unwind label %3460

3396:                                             ; preds = %3394
  %3397 = load ptr, ptr %3395, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %326) #8
  %3398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3399 unwind label %3464

3399:                                             ; preds = %3396
  %3400 = load ptr, ptr %3398, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %326, ptr noundef nonnull align 8 dereferenceable(30) %3400, i32 noundef 636)
          to label %3401 unwind label %3464

3401:                                             ; preds = %3399
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3397, ptr noundef nonnull align 8 dereferenceable(30) %326, ptr noundef @.str.5)
          to label %3402 unwind label %3464

3402:                                             ; preds = %3401
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #8
  br label %3503

3403:                                             ; preds = %3356
  %3404 = landingpad { ptr, i32 }
          cleanup
  %3405 = extractvalue { ptr, i32 } %3404, 0
  store ptr %3405, ptr %4, align 8
  %3406 = extractvalue { ptr, i32 } %3404, 1
  store i32 %3406, ptr %5, align 4
  br label %3411

3407:                                             ; preds = %3365, %3363, %3360
  %3408 = landingpad { ptr, i32 }
          cleanup
  %3409 = extractvalue { ptr, i32 } %3408, 0
  store ptr %3409, ptr %4, align 8
  %3410 = extractvalue { ptr, i32 } %3408, 1
  store i32 %3410, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #8
  br label %3411

3411:                                             ; preds = %3407, %3403
  invoke void @__cxa_end_catch()
          to label %3412 unwind label %4084

3412:                                             ; preds = %3411
  br label %4074

3413:                                             ; preds = %3375
  %3414 = landingpad { ptr, i32 }
          cleanup
  %3415 = extractvalue { ptr, i32 } %3414, 0
  store ptr %3415, ptr %4, align 8
  %3416 = extractvalue { ptr, i32 } %3414, 1
  store i32 %3416, ptr %5, align 4
  br label %3436

3417:                                             ; preds = %3376
  %3418 = landingpad { ptr, i32 }
          cleanup
  %3419 = extractvalue { ptr, i32 } %3418, 0
  store ptr %3419, ptr %4, align 8
  %3420 = extractvalue { ptr, i32 } %3418, 1
  store i32 %3420, ptr %5, align 4
  br label %3435

3421:                                             ; preds = %3377
  %3422 = landingpad { ptr, i32 }
          cleanup
  %3423 = extractvalue { ptr, i32 } %3422, 0
  store ptr %3423, ptr %4, align 8
  %3424 = extractvalue { ptr, i32 } %3422, 1
  store i32 %3424, ptr %5, align 4
  br label %3434

3425:                                             ; preds = %3378
  %3426 = landingpad { ptr, i32 }
          cleanup
  %3427 = extractvalue { ptr, i32 } %3426, 0
  store ptr %3427, ptr %4, align 8
  %3428 = extractvalue { ptr, i32 } %3426, 1
  store i32 %3428, ptr %5, align 4
  br label %3433

3429:                                             ; preds = %3379
  %3430 = landingpad { ptr, i32 }
          cleanup
  %3431 = extractvalue { ptr, i32 } %3430, 0
  store ptr %3431, ptr %4, align 8
  %3432 = extractvalue { ptr, i32 } %3430, 1
  store i32 %3432, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #8
  br label %3433

3433:                                             ; preds = %3429, %3425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #8
  br label %3434

3434:                                             ; preds = %3433, %3421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #8
  br label %3435

3435:                                             ; preds = %3434, %3417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #8
  br label %3436

3436:                                             ; preds = %3435, %3413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #8
  br label %4074

3437:                                             ; preds = %3380
  %3438 = landingpad { ptr, i32 }
          cleanup
  %3439 = extractvalue { ptr, i32 } %3438, 0
  store ptr %3439, ptr %4, align 8
  %3440 = extractvalue { ptr, i32 } %3438, 1
  store i32 %3440, ptr %5, align 4
  br label %3445

3441:                                             ; preds = %3382
  %3442 = landingpad { ptr, i32 }
          cleanup
  %3443 = extractvalue { ptr, i32 } %3442, 0
  store ptr %3443, ptr %4, align 8
  %3444 = extractvalue { ptr, i32 } %3442, 1
  store i32 %3444, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  br label %3445

3445:                                             ; preds = %3441, %3437
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %321) #8
  br label %4074

3446:                                             ; preds = %3385
  %3447 = landingpad { ptr, i32 }
          catch ptr null
  %3448 = extractvalue { ptr, i32 } %3447, 0
  store ptr %3448, ptr %4, align 8
  %3449 = extractvalue { ptr, i32 } %3447, 1
  store i32 %3449, ptr %5, align 4
  br label %3459

3450:                                             ; preds = %3387
  %3451 = landingpad { ptr, i32 }
          catch ptr null
  %3452 = extractvalue { ptr, i32 } %3451, 0
  store ptr %3452, ptr %4, align 8
  %3453 = extractvalue { ptr, i32 } %3451, 1
  store i32 %3453, ptr %5, align 4
  br label %3458

3454:                                             ; preds = %3390, %3388
  %3455 = landingpad { ptr, i32 }
          catch ptr null
  %3456 = extractvalue { ptr, i32 } %3455, 0
  store ptr %3456, ptr %4, align 8
  %3457 = extractvalue { ptr, i32 } %3455, 1
  store i32 %3457, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #8
  br label %3458

3458:                                             ; preds = %3454, %3450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #8
  br label %3459

3459:                                             ; preds = %3458, %3446
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #8
  br label %3468

3460:                                             ; preds = %3394
  %3461 = landingpad { ptr, i32 }
          catch ptr null
  %3462 = extractvalue { ptr, i32 } %3461, 0
  store ptr %3462, ptr %4, align 8
  %3463 = extractvalue { ptr, i32 } %3461, 1
  store i32 %3463, ptr %5, align 4
  br label %3468

3464:                                             ; preds = %3401, %3399, %3396
  %3465 = landingpad { ptr, i32 }
          catch ptr null
  %3466 = extractvalue { ptr, i32 } %3465, 0
  store ptr %3466, ptr %4, align 8
  %3467 = extractvalue { ptr, i32 } %3465, 1
  store i32 %3467, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #8
  br label %3468

3468:                                             ; preds = %3464, %3460, %3459
  %3469 = load ptr, ptr %4, align 8
  %3470 = call ptr @__cxa_begin_catch(ptr %3469) #8
  %3471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3472 unwind label %3504

3472:                                             ; preds = %3468
  %3473 = load ptr, ptr %3471, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %327) #8
  %3474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3475 unwind label %3508

3475:                                             ; preds = %3472
  %3476 = load ptr, ptr %3474, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %327, ptr noundef nonnull align 8 dereferenceable(30) %3476, i32 noundef 636)
          to label %3477 unwind label %3508

3477:                                             ; preds = %3475
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3473, ptr noundef nonnull align 8 dereferenceable(30) %327, ptr noundef @.str.6)
          to label %3478 unwind label %3508

3478:                                             ; preds = %3477
  call void @llvm.lifetime.end.p0(i64 32, ptr %327) #8
  invoke void @__cxa_end_catch()
          to label %3479 unwind label %471

3479:                                             ; preds = %3478
  br label %3480

3480:                                             ; preds = %3503, %3479
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  call void @llvm.lifetime.start.p0(i64 16, ptr %328) #8
  %3483 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %3484 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %3485 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %329, ptr noundef nonnull align 8 dereferenceable(88) %3485)
          to label %3486 unwind label %3514

3486:                                             ; preds = %3482
  %3487 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3488 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %3487)
          to label %3489 unwind label %3518

3489:                                             ; preds = %3486
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %328, ptr noundef nonnull align 8 dereferenceable(136) %3483, ptr noundef %3484, ptr noundef %329, ptr noundef nonnull align 8 dereferenceable(24) %3488, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3490 unwind label %3518

3490:                                             ; preds = %3489
  %3491 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %328) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %328) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %329) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %328) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %330) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %331, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %330, ptr noundef %331, i1 noundef zeroext false)
          to label %3492 unwind label %3523

3492:                                             ; preds = %3490
  %3493 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %330) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %331) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %330) #8
  br label %3494

3494:                                             ; preds = %3492
  %3495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3496 unwind label %3527

3496:                                             ; preds = %3494
  %3497 = load ptr, ptr %3495, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %332) #8
  %3498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3499 unwind label %3531

3499:                                             ; preds = %3496
  %3500 = load ptr, ptr %3498, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %332, ptr noundef nonnull align 8 dereferenceable(30) %3500, i32 noundef 639)
          to label %3501 unwind label %3531

3501:                                             ; preds = %3499
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3497, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(218) @.str.120, ptr noundef nonnull align 8 dereferenceable(30) %332)
          to label %3502 unwind label %3531

3502:                                             ; preds = %3501
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #8
  br label %3547

3503:                                             ; preds = %3402, %3392
  br label %3480

3504:                                             ; preds = %3468
  %3505 = landingpad { ptr, i32 }
          cleanup
  %3506 = extractvalue { ptr, i32 } %3505, 0
  store ptr %3506, ptr %4, align 8
  %3507 = extractvalue { ptr, i32 } %3505, 1
  store i32 %3507, ptr %5, align 4
  br label %3512

3508:                                             ; preds = %3477, %3475, %3472
  %3509 = landingpad { ptr, i32 }
          cleanup
  %3510 = extractvalue { ptr, i32 } %3509, 0
  store ptr %3510, ptr %4, align 8
  %3511 = extractvalue { ptr, i32 } %3509, 1
  store i32 %3511, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %327) #8
  br label %3512

3512:                                             ; preds = %3508, %3504
  invoke void @__cxa_end_catch()
          to label %3513 unwind label %4084

3513:                                             ; preds = %3512
  br label %4074

3514:                                             ; preds = %3482
  %3515 = landingpad { ptr, i32 }
          cleanup
  %3516 = extractvalue { ptr, i32 } %3515, 0
  store ptr %3516, ptr %4, align 8
  %3517 = extractvalue { ptr, i32 } %3515, 1
  store i32 %3517, ptr %5, align 4
  br label %3522

3518:                                             ; preds = %3489, %3486
  %3519 = landingpad { ptr, i32 }
          cleanup
  %3520 = extractvalue { ptr, i32 } %3519, 0
  store ptr %3520, ptr %4, align 8
  %3521 = extractvalue { ptr, i32 } %3519, 1
  store i32 %3521, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %329) #8
  br label %3522

3522:                                             ; preds = %3518, %3514
  call void @llvm.lifetime.end.p0(i64 16, ptr %328) #8
  br label %4074

3523:                                             ; preds = %3490
  %3524 = landingpad { ptr, i32 }
          cleanup
  %3525 = extractvalue { ptr, i32 } %3524, 0
  store ptr %3525, ptr %4, align 8
  %3526 = extractvalue { ptr, i32 } %3524, 1
  store i32 %3526, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %331) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %330) #8
  br label %4074

3527:                                             ; preds = %3494
  %3528 = landingpad { ptr, i32 }
          catch ptr null
  %3529 = extractvalue { ptr, i32 } %3528, 0
  store ptr %3529, ptr %4, align 8
  %3530 = extractvalue { ptr, i32 } %3528, 1
  store i32 %3530, ptr %5, align 4
  br label %3535

3531:                                             ; preds = %3501, %3499, %3496
  %3532 = landingpad { ptr, i32 }
          catch ptr null
  %3533 = extractvalue { ptr, i32 } %3532, 0
  store ptr %3533, ptr %4, align 8
  %3534 = extractvalue { ptr, i32 } %3532, 1
  store i32 %3534, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #8
  br label %3535

3535:                                             ; preds = %3531, %3527
  %3536 = load ptr, ptr %4, align 8
  %3537 = call ptr @__cxa_begin_catch(ptr %3536) #8
  %3538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3539 unwind label %3561

3539:                                             ; preds = %3535
  %3540 = load ptr, ptr %3538, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %333) #8
  %3541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3542 unwind label %3565

3542:                                             ; preds = %3539
  %3543 = load ptr, ptr %3541, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %333, ptr noundef nonnull align 8 dereferenceable(30) %3543, i32 noundef 639)
          to label %3544 unwind label %3565

3544:                                             ; preds = %3542
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3540, ptr noundef nonnull align 8 dereferenceable(30) %333, ptr noundef @.str.121)
          to label %3545 unwind label %3565

3545:                                             ; preds = %3544
  call void @llvm.lifetime.end.p0(i64 32, ptr %333) #8
  invoke void @__cxa_end_catch()
          to label %3546 unwind label %471

3546:                                             ; preds = %3545
  br label %3547

3547:                                             ; preds = %3546, %3502
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548
  call void @llvm.lifetime.start.p0(i64 32, ptr %334) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %335, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %334, ptr noundef %335)
          to label %3550 unwind label %3571

3550:                                             ; preds = %3549
  %3551 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %334) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #8
  br label %3552

3552:                                             ; preds = %3550
  %3553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3554 unwind label %3575

3554:                                             ; preds = %3552
  %3555 = load ptr, ptr %3553, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %336) #8
  %3556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3557 unwind label %3579

3557:                                             ; preds = %3554
  %3558 = load ptr, ptr %3556, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %336, ptr noundef nonnull align 8 dereferenceable(30) %3558, i32 noundef 641)
          to label %3559 unwind label %3579

3559:                                             ; preds = %3557
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3555, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(420) @.str.122, ptr noundef nonnull align 8 dereferenceable(30) %336)
          to label %3560 unwind label %3579

3560:                                             ; preds = %3559
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #8
  br label %3595

3561:                                             ; preds = %3535
  %3562 = landingpad { ptr, i32 }
          cleanup
  %3563 = extractvalue { ptr, i32 } %3562, 0
  store ptr %3563, ptr %4, align 8
  %3564 = extractvalue { ptr, i32 } %3562, 1
  store i32 %3564, ptr %5, align 4
  br label %3569

3565:                                             ; preds = %3544, %3542, %3539
  %3566 = landingpad { ptr, i32 }
          cleanup
  %3567 = extractvalue { ptr, i32 } %3566, 0
  store ptr %3567, ptr %4, align 8
  %3568 = extractvalue { ptr, i32 } %3566, 1
  store i32 %3568, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %333) #8
  br label %3569

3569:                                             ; preds = %3565, %3561
  invoke void @__cxa_end_catch()
          to label %3570 unwind label %4084

3570:                                             ; preds = %3569
  br label %4074

3571:                                             ; preds = %3549
  %3572 = landingpad { ptr, i32 }
          cleanup
  %3573 = extractvalue { ptr, i32 } %3572, 0
  store ptr %3573, ptr %4, align 8
  %3574 = extractvalue { ptr, i32 } %3572, 1
  store i32 %3574, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #8
  br label %4074

3575:                                             ; preds = %3552
  %3576 = landingpad { ptr, i32 }
          catch ptr null
  %3577 = extractvalue { ptr, i32 } %3576, 0
  store ptr %3577, ptr %4, align 8
  %3578 = extractvalue { ptr, i32 } %3576, 1
  store i32 %3578, ptr %5, align 4
  br label %3583

3579:                                             ; preds = %3559, %3557, %3554
  %3580 = landingpad { ptr, i32 }
          catch ptr null
  %3581 = extractvalue { ptr, i32 } %3580, 0
  store ptr %3581, ptr %4, align 8
  %3582 = extractvalue { ptr, i32 } %3580, 1
  store i32 %3582, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #8
  br label %3583

3583:                                             ; preds = %3579, %3575
  %3584 = load ptr, ptr %4, align 8
  %3585 = call ptr @__cxa_begin_catch(ptr %3584) #8
  %3586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3587 unwind label %3630

3587:                                             ; preds = %3583
  %3588 = load ptr, ptr %3586, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %337) #8
  %3589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3590 unwind label %3634

3590:                                             ; preds = %3587
  %3591 = load ptr, ptr %3589, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %337, ptr noundef nonnull align 8 dereferenceable(30) %3591, i32 noundef 641)
          to label %3592 unwind label %3634

3592:                                             ; preds = %3590
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3588, ptr noundef nonnull align 8 dereferenceable(30) %337, ptr noundef @.str.123)
          to label %3593 unwind label %3634

3593:                                             ; preds = %3592
  call void @llvm.lifetime.end.p0(i64 32, ptr %337) #8
  invoke void @__cxa_end_catch()
          to label %3594 unwind label %471

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594, %3560
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  %3598 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3599 = load ptr, ptr %3598, align 8, !tbaa !9
  %3600 = getelementptr inbounds ptr, ptr %3599, i64 5
  %3601 = load ptr, ptr %3600, align 8
  invoke void %3601(ptr noundef nonnull align 8 dereferenceable(96) %3598)
          to label %3602 unwind label %471

3602:                                             ; preds = %3597
  call void @llvm.lifetime.start.p0(i64 32, ptr %338) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %339) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %340) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %341) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %343) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %342, ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef @.str.124)
          to label %3603 unwind label %3640

3603:                                             ; preds = %3602
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %341, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.144)
          to label %3604 unwind label %3644

3604:                                             ; preds = %3603
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %340, ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef @.str.145)
          to label %3605 unwind label %3648

3605:                                             ; preds = %3604
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %339, ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef @.str.126)
          to label %3606 unwind label %3652

3606:                                             ; preds = %3605
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %338, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef @.str)
          to label %3607 unwind label %3656

3607:                                             ; preds = %3606
  %3608 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %338) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %341) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %344) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %345) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %346) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %345, ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef @.str.44)
          to label %3609 unwind label %3664

3609:                                             ; preds = %3607
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %344, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef @.str)
          to label %3610 unwind label %3668

3610:                                             ; preds = %3609
  %3611 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %344) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %346) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #8
  br label %3612

3612:                                             ; preds = %3610
  %3613 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %348) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %348, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3614 unwind label %3673

3614:                                             ; preds = %3612
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %347, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %3615 unwind label %3677

3615:                                             ; preds = %3614
  %3616 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3613, ptr noundef %347)
          to label %3617 unwind label %3681

3617:                                             ; preds = %3615
  %3618 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %3616)
          to label %3619 unwind label %3681

3619:                                             ; preds = %3617
  %3620 = xor i1 %3618, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #8
  br i1 %3620, label %3621, label %3730

3621:                                             ; preds = %3619
  %3622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3623 unwind label %3687

3623:                                             ; preds = %3621
  %3624 = load ptr, ptr %3622, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %349) #8
  %3625 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3626 unwind label %3691

3626:                                             ; preds = %3623
  %3627 = load ptr, ptr %3625, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %349, ptr noundef nonnull align 8 dereferenceable(30) %3627, i32 noundef 654)
          to label %3628 unwind label %3691

3628:                                             ; preds = %3626
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3624, ptr noundef nonnull align 8 dereferenceable(30) %349, ptr noundef @.str.5)
          to label %3629 unwind label %3691

3629:                                             ; preds = %3628
  call void @llvm.lifetime.end.p0(i64 32, ptr %349) #8
  br label %3730

3630:                                             ; preds = %3583
  %3631 = landingpad { ptr, i32 }
          cleanup
  %3632 = extractvalue { ptr, i32 } %3631, 0
  store ptr %3632, ptr %4, align 8
  %3633 = extractvalue { ptr, i32 } %3631, 1
  store i32 %3633, ptr %5, align 4
  br label %3638

3634:                                             ; preds = %3592, %3590, %3587
  %3635 = landingpad { ptr, i32 }
          cleanup
  %3636 = extractvalue { ptr, i32 } %3635, 0
  store ptr %3636, ptr %4, align 8
  %3637 = extractvalue { ptr, i32 } %3635, 1
  store i32 %3637, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %337) #8
  br label %3638

3638:                                             ; preds = %3634, %3630
  invoke void @__cxa_end_catch()
          to label %3639 unwind label %4084

3639:                                             ; preds = %3638
  br label %4074

3640:                                             ; preds = %3602
  %3641 = landingpad { ptr, i32 }
          cleanup
  %3642 = extractvalue { ptr, i32 } %3641, 0
  store ptr %3642, ptr %4, align 8
  %3643 = extractvalue { ptr, i32 } %3641, 1
  store i32 %3643, ptr %5, align 4
  br label %3663

3644:                                             ; preds = %3603
  %3645 = landingpad { ptr, i32 }
          cleanup
  %3646 = extractvalue { ptr, i32 } %3645, 0
  store ptr %3646, ptr %4, align 8
  %3647 = extractvalue { ptr, i32 } %3645, 1
  store i32 %3647, ptr %5, align 4
  br label %3662

3648:                                             ; preds = %3604
  %3649 = landingpad { ptr, i32 }
          cleanup
  %3650 = extractvalue { ptr, i32 } %3649, 0
  store ptr %3650, ptr %4, align 8
  %3651 = extractvalue { ptr, i32 } %3649, 1
  store i32 %3651, ptr %5, align 4
  br label %3661

3652:                                             ; preds = %3605
  %3653 = landingpad { ptr, i32 }
          cleanup
  %3654 = extractvalue { ptr, i32 } %3653, 0
  store ptr %3654, ptr %4, align 8
  %3655 = extractvalue { ptr, i32 } %3653, 1
  store i32 %3655, ptr %5, align 4
  br label %3660

3656:                                             ; preds = %3606
  %3657 = landingpad { ptr, i32 }
          cleanup
  %3658 = extractvalue { ptr, i32 } %3657, 0
  store ptr %3658, ptr %4, align 8
  %3659 = extractvalue { ptr, i32 } %3657, 1
  store i32 %3659, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #8
  br label %3660

3660:                                             ; preds = %3656, %3652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #8
  br label %3661

3661:                                             ; preds = %3660, %3648
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #8
  br label %3662

3662:                                             ; preds = %3661, %3644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  br label %3663

3663:                                             ; preds = %3662, %3640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %341) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #8
  br label %4074

3664:                                             ; preds = %3607
  %3665 = landingpad { ptr, i32 }
          cleanup
  %3666 = extractvalue { ptr, i32 } %3665, 0
  store ptr %3666, ptr %4, align 8
  %3667 = extractvalue { ptr, i32 } %3665, 1
  store i32 %3667, ptr %5, align 4
  br label %3672

3668:                                             ; preds = %3609
  %3669 = landingpad { ptr, i32 }
          cleanup
  %3670 = extractvalue { ptr, i32 } %3669, 0
  store ptr %3670, ptr %4, align 8
  %3671 = extractvalue { ptr, i32 } %3669, 1
  store i32 %3671, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #8
  br label %3672

3672:                                             ; preds = %3668, %3664
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %346) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #8
  br label %4074

3673:                                             ; preds = %3612
  %3674 = landingpad { ptr, i32 }
          catch ptr null
  %3675 = extractvalue { ptr, i32 } %3674, 0
  store ptr %3675, ptr %4, align 8
  %3676 = extractvalue { ptr, i32 } %3674, 1
  store i32 %3676, ptr %5, align 4
  br label %3686

3677:                                             ; preds = %3614
  %3678 = landingpad { ptr, i32 }
          catch ptr null
  %3679 = extractvalue { ptr, i32 } %3678, 0
  store ptr %3679, ptr %4, align 8
  %3680 = extractvalue { ptr, i32 } %3678, 1
  store i32 %3680, ptr %5, align 4
  br label %3685

3681:                                             ; preds = %3617, %3615
  %3682 = landingpad { ptr, i32 }
          catch ptr null
  %3683 = extractvalue { ptr, i32 } %3682, 0
  store ptr %3683, ptr %4, align 8
  %3684 = extractvalue { ptr, i32 } %3682, 1
  store i32 %3684, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #8
  br label %3685

3685:                                             ; preds = %3681, %3677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #8
  br label %3686

3686:                                             ; preds = %3685, %3673
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #8
  br label %3695

3687:                                             ; preds = %3621
  %3688 = landingpad { ptr, i32 }
          catch ptr null
  %3689 = extractvalue { ptr, i32 } %3688, 0
  store ptr %3689, ptr %4, align 8
  %3690 = extractvalue { ptr, i32 } %3688, 1
  store i32 %3690, ptr %5, align 4
  br label %3695

3691:                                             ; preds = %3628, %3626, %3623
  %3692 = landingpad { ptr, i32 }
          catch ptr null
  %3693 = extractvalue { ptr, i32 } %3692, 0
  store ptr %3693, ptr %4, align 8
  %3694 = extractvalue { ptr, i32 } %3692, 1
  store i32 %3694, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %349) #8
  br label %3695

3695:                                             ; preds = %3691, %3687, %3686
  %3696 = load ptr, ptr %4, align 8
  %3697 = call ptr @__cxa_begin_catch(ptr %3696) #8
  %3698 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3699 unwind label %3731

3699:                                             ; preds = %3695
  %3700 = load ptr, ptr %3698, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %350) #8
  %3701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3702 unwind label %3735

3702:                                             ; preds = %3699
  %3703 = load ptr, ptr %3701, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %350, ptr noundef nonnull align 8 dereferenceable(30) %3703, i32 noundef 654)
          to label %3704 unwind label %3735

3704:                                             ; preds = %3702
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3700, ptr noundef nonnull align 8 dereferenceable(30) %350, ptr noundef @.str.6)
          to label %3705 unwind label %3735

3705:                                             ; preds = %3704
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #8
  invoke void @__cxa_end_catch()
          to label %3706 unwind label %471

3706:                                             ; preds = %3705
  br label %3707

3707:                                             ; preds = %3730, %3706
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  call void @llvm.lifetime.start.p0(i64 16, ptr %351) #8
  %3710 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %3711 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %3712 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %352, ptr noundef nonnull align 8 dereferenceable(88) %3712)
          to label %3713 unwind label %3741

3713:                                             ; preds = %3709
  %3714 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3715 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %3714)
          to label %3716 unwind label %3745

3716:                                             ; preds = %3713
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %351, ptr noundef nonnull align 8 dereferenceable(136) %3710, ptr noundef %3711, ptr noundef %352, ptr noundef nonnull align 8 dereferenceable(24) %3715, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3717 unwind label %3745

3717:                                             ; preds = %3716
  %3718 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %351) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %353) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %354, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %353, ptr noundef %354, i1 noundef zeroext false)
          to label %3719 unwind label %3750

3719:                                             ; preds = %3717
  %3720 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %353) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %354) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %353) #8
  br label %3721

3721:                                             ; preds = %3719
  %3722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3723 unwind label %3754

3723:                                             ; preds = %3721
  %3724 = load ptr, ptr %3722, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %355) #8
  %3725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3726 unwind label %3758

3726:                                             ; preds = %3723
  %3727 = load ptr, ptr %3725, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %355, ptr noundef nonnull align 8 dereferenceable(30) %3727, i32 noundef 657)
          to label %3728 unwind label %3758

3728:                                             ; preds = %3726
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3724, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(36) @.str.146, ptr noundef nonnull align 8 dereferenceable(30) %355)
          to label %3729 unwind label %3758

3729:                                             ; preds = %3728
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #8
  br label %3774

3730:                                             ; preds = %3629, %3619
  br label %3707

3731:                                             ; preds = %3695
  %3732 = landingpad { ptr, i32 }
          cleanup
  %3733 = extractvalue { ptr, i32 } %3732, 0
  store ptr %3733, ptr %4, align 8
  %3734 = extractvalue { ptr, i32 } %3732, 1
  store i32 %3734, ptr %5, align 4
  br label %3739

3735:                                             ; preds = %3704, %3702, %3699
  %3736 = landingpad { ptr, i32 }
          cleanup
  %3737 = extractvalue { ptr, i32 } %3736, 0
  store ptr %3737, ptr %4, align 8
  %3738 = extractvalue { ptr, i32 } %3736, 1
  store i32 %3738, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #8
  br label %3739

3739:                                             ; preds = %3735, %3731
  invoke void @__cxa_end_catch()
          to label %3740 unwind label %4084

3740:                                             ; preds = %3739
  br label %4074

3741:                                             ; preds = %3709
  %3742 = landingpad { ptr, i32 }
          cleanup
  %3743 = extractvalue { ptr, i32 } %3742, 0
  store ptr %3743, ptr %4, align 8
  %3744 = extractvalue { ptr, i32 } %3742, 1
  store i32 %3744, ptr %5, align 4
  br label %3749

3745:                                             ; preds = %3716, %3713
  %3746 = landingpad { ptr, i32 }
          cleanup
  %3747 = extractvalue { ptr, i32 } %3746, 0
  store ptr %3747, ptr %4, align 8
  %3748 = extractvalue { ptr, i32 } %3746, 1
  store i32 %3748, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #8
  br label %3749

3749:                                             ; preds = %3745, %3741
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #8
  br label %4074

3750:                                             ; preds = %3717
  %3751 = landingpad { ptr, i32 }
          cleanup
  %3752 = extractvalue { ptr, i32 } %3751, 0
  store ptr %3752, ptr %4, align 8
  %3753 = extractvalue { ptr, i32 } %3751, 1
  store i32 %3753, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %354) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %353) #8
  br label %4074

3754:                                             ; preds = %3721
  %3755 = landingpad { ptr, i32 }
          catch ptr null
  %3756 = extractvalue { ptr, i32 } %3755, 0
  store ptr %3756, ptr %4, align 8
  %3757 = extractvalue { ptr, i32 } %3755, 1
  store i32 %3757, ptr %5, align 4
  br label %3762

3758:                                             ; preds = %3728, %3726, %3723
  %3759 = landingpad { ptr, i32 }
          catch ptr null
  %3760 = extractvalue { ptr, i32 } %3759, 0
  store ptr %3760, ptr %4, align 8
  %3761 = extractvalue { ptr, i32 } %3759, 1
  store i32 %3761, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #8
  br label %3762

3762:                                             ; preds = %3758, %3754
  %3763 = load ptr, ptr %4, align 8
  %3764 = call ptr @__cxa_begin_catch(ptr %3763) #8
  %3765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3766 unwind label %3788

3766:                                             ; preds = %3762
  %3767 = load ptr, ptr %3765, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %356) #8
  %3768 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3769 unwind label %3792

3769:                                             ; preds = %3766
  %3770 = load ptr, ptr %3768, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %356, ptr noundef nonnull align 8 dereferenceable(30) %3770, i32 noundef 657)
          to label %3771 unwind label %3792

3771:                                             ; preds = %3769
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3767, ptr noundef nonnull align 8 dereferenceable(30) %356, ptr noundef @.str.147)
          to label %3772 unwind label %3792

3772:                                             ; preds = %3771
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #8
  invoke void @__cxa_end_catch()
          to label %3773 unwind label %471

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773, %3729
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  call void @llvm.lifetime.start.p0(i64 32, ptr %357) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %358, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %357, ptr noundef %358)
          to label %3777 unwind label %3798

3777:                                             ; preds = %3776
  %3778 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %357) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %358) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #8
  br label %3779

3779:                                             ; preds = %3777
  %3780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3781 unwind label %3802

3781:                                             ; preds = %3779
  %3782 = load ptr, ptr %3780, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %359) #8
  %3783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3784 unwind label %3806

3784:                                             ; preds = %3781
  %3785 = load ptr, ptr %3783, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %359, ptr noundef nonnull align 8 dereferenceable(30) %3785, i32 noundef 659)
          to label %3786 unwind label %3806

3786:                                             ; preds = %3784
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA145_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3782, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(145) @.str.148, ptr noundef nonnull align 8 dereferenceable(30) %359)
          to label %3787 unwind label %3806

3787:                                             ; preds = %3786
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #8
  br label %3822

3788:                                             ; preds = %3762
  %3789 = landingpad { ptr, i32 }
          cleanup
  %3790 = extractvalue { ptr, i32 } %3789, 0
  store ptr %3790, ptr %4, align 8
  %3791 = extractvalue { ptr, i32 } %3789, 1
  store i32 %3791, ptr %5, align 4
  br label %3796

3792:                                             ; preds = %3771, %3769, %3766
  %3793 = landingpad { ptr, i32 }
          cleanup
  %3794 = extractvalue { ptr, i32 } %3793, 0
  store ptr %3794, ptr %4, align 8
  %3795 = extractvalue { ptr, i32 } %3793, 1
  store i32 %3795, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #8
  br label %3796

3796:                                             ; preds = %3792, %3788
  invoke void @__cxa_end_catch()
          to label %3797 unwind label %4084

3797:                                             ; preds = %3796
  br label %4074

3798:                                             ; preds = %3776
  %3799 = landingpad { ptr, i32 }
          cleanup
  %3800 = extractvalue { ptr, i32 } %3799, 0
  store ptr %3800, ptr %4, align 8
  %3801 = extractvalue { ptr, i32 } %3799, 1
  store i32 %3801, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %358) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #8
  br label %4074

3802:                                             ; preds = %3779
  %3803 = landingpad { ptr, i32 }
          catch ptr null
  %3804 = extractvalue { ptr, i32 } %3803, 0
  store ptr %3804, ptr %4, align 8
  %3805 = extractvalue { ptr, i32 } %3803, 1
  store i32 %3805, ptr %5, align 4
  br label %3810

3806:                                             ; preds = %3786, %3784, %3781
  %3807 = landingpad { ptr, i32 }
          catch ptr null
  %3808 = extractvalue { ptr, i32 } %3807, 0
  store ptr %3808, ptr %4, align 8
  %3809 = extractvalue { ptr, i32 } %3807, 1
  store i32 %3809, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #8
  br label %3810

3810:                                             ; preds = %3806, %3802
  %3811 = load ptr, ptr %4, align 8
  %3812 = call ptr @__cxa_begin_catch(ptr %3811) #8
  %3813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3814 unwind label %3859

3814:                                             ; preds = %3810
  %3815 = load ptr, ptr %3813, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #8
  %3816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3817 unwind label %3863

3817:                                             ; preds = %3814
  %3818 = load ptr, ptr %3816, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %360, ptr noundef nonnull align 8 dereferenceable(30) %3818, i32 noundef 659)
          to label %3819 unwind label %3863

3819:                                             ; preds = %3817
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3815, ptr noundef nonnull align 8 dereferenceable(30) %360, ptr noundef @.str.149)
          to label %3820 unwind label %3863

3820:                                             ; preds = %3819
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #8
  invoke void @__cxa_end_catch()
          to label %3821 unwind label %471

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821, %3787
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  %3825 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3826 = load ptr, ptr %3825, align 8, !tbaa !9
  %3827 = getelementptr inbounds ptr, ptr %3826, i64 5
  %3828 = load ptr, ptr %3827, align 8
  invoke void %3828(ptr noundef nonnull align 8 dereferenceable(96) %3825)
          to label %3829 unwind label %471

3829:                                             ; preds = %3824
  call void @llvm.lifetime.start.p0(i64 32, ptr %361) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %362) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %363) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %364) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %365) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %367) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %368) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %367, ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef @.str.111)
          to label %3830 unwind label %3869

3830:                                             ; preds = %3829
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %366, ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef @.str.135)
          to label %3831 unwind label %3873

3831:                                             ; preds = %3830
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %365, ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str.82)
          to label %3832 unwind label %3877

3832:                                             ; preds = %3831
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %364, ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef @.str.143)
          to label %3833 unwind label %3881

3833:                                             ; preds = %3832
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %363, ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef @.str.136)
          to label %3834 unwind label %3885

3834:                                             ; preds = %3833
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %362, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef @.str.137)
          to label %3835 unwind label %3889

3835:                                             ; preds = %3834
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str)
          to label %3836 unwind label %3893

3836:                                             ; preds = %3835
  %3837 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %361) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %367) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %369) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %370) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %371) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %370, ptr noundef nonnull align 8 dereferenceable(32) %371, ptr noundef @.str.119)
          to label %3838 unwind label %3903

3838:                                             ; preds = %3836
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %369, ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef @.str)
          to label %3839 unwind label %3907

3839:                                             ; preds = %3838
  %3840 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %370) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #8
  br label %3841

3841:                                             ; preds = %3839
  %3842 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %373) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %373, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3843 unwind label %3912

3843:                                             ; preds = %3841
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %372, ptr noundef nonnull align 8 dereferenceable(32) %373, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %3844 unwind label %3916

3844:                                             ; preds = %3843
  %3845 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3842, ptr noundef %372)
          to label %3846 unwind label %3920

3846:                                             ; preds = %3844
  %3847 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %3845)
          to label %3848 unwind label %3920

3848:                                             ; preds = %3846
  %3849 = xor i1 %3847, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #8
  br i1 %3849, label %3850, label %3969

3850:                                             ; preds = %3848
  %3851 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3852 unwind label %3926

3852:                                             ; preds = %3850
  %3853 = load ptr, ptr %3851, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %374) #8
  %3854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3855 unwind label %3930

3855:                                             ; preds = %3852
  %3856 = load ptr, ptr %3854, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %374, ptr noundef nonnull align 8 dereferenceable(30) %3856, i32 noundef 674)
          to label %3857 unwind label %3930

3857:                                             ; preds = %3855
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3853, ptr noundef nonnull align 8 dereferenceable(30) %374, ptr noundef @.str.5)
          to label %3858 unwind label %3930

3858:                                             ; preds = %3857
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #8
  br label %3969

3859:                                             ; preds = %3810
  %3860 = landingpad { ptr, i32 }
          cleanup
  %3861 = extractvalue { ptr, i32 } %3860, 0
  store ptr %3861, ptr %4, align 8
  %3862 = extractvalue { ptr, i32 } %3860, 1
  store i32 %3862, ptr %5, align 4
  br label %3867

3863:                                             ; preds = %3819, %3817, %3814
  %3864 = landingpad { ptr, i32 }
          cleanup
  %3865 = extractvalue { ptr, i32 } %3864, 0
  store ptr %3865, ptr %4, align 8
  %3866 = extractvalue { ptr, i32 } %3864, 1
  store i32 %3866, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #8
  br label %3867

3867:                                             ; preds = %3863, %3859
  invoke void @__cxa_end_catch()
          to label %3868 unwind label %4084

3868:                                             ; preds = %3867
  br label %4074

3869:                                             ; preds = %3829
  %3870 = landingpad { ptr, i32 }
          cleanup
  %3871 = extractvalue { ptr, i32 } %3870, 0
  store ptr %3871, ptr %4, align 8
  %3872 = extractvalue { ptr, i32 } %3870, 1
  store i32 %3872, ptr %5, align 4
  br label %3902

3873:                                             ; preds = %3830
  %3874 = landingpad { ptr, i32 }
          cleanup
  %3875 = extractvalue { ptr, i32 } %3874, 0
  store ptr %3875, ptr %4, align 8
  %3876 = extractvalue { ptr, i32 } %3874, 1
  store i32 %3876, ptr %5, align 4
  br label %3901

3877:                                             ; preds = %3831
  %3878 = landingpad { ptr, i32 }
          cleanup
  %3879 = extractvalue { ptr, i32 } %3878, 0
  store ptr %3879, ptr %4, align 8
  %3880 = extractvalue { ptr, i32 } %3878, 1
  store i32 %3880, ptr %5, align 4
  br label %3900

3881:                                             ; preds = %3832
  %3882 = landingpad { ptr, i32 }
          cleanup
  %3883 = extractvalue { ptr, i32 } %3882, 0
  store ptr %3883, ptr %4, align 8
  %3884 = extractvalue { ptr, i32 } %3882, 1
  store i32 %3884, ptr %5, align 4
  br label %3899

3885:                                             ; preds = %3833
  %3886 = landingpad { ptr, i32 }
          cleanup
  %3887 = extractvalue { ptr, i32 } %3886, 0
  store ptr %3887, ptr %4, align 8
  %3888 = extractvalue { ptr, i32 } %3886, 1
  store i32 %3888, ptr %5, align 4
  br label %3898

3889:                                             ; preds = %3834
  %3890 = landingpad { ptr, i32 }
          cleanup
  %3891 = extractvalue { ptr, i32 } %3890, 0
  store ptr %3891, ptr %4, align 8
  %3892 = extractvalue { ptr, i32 } %3890, 1
  store i32 %3892, ptr %5, align 4
  br label %3897

3893:                                             ; preds = %3835
  %3894 = landingpad { ptr, i32 }
          cleanup
  %3895 = extractvalue { ptr, i32 } %3894, 0
  store ptr %3895, ptr %4, align 8
  %3896 = extractvalue { ptr, i32 } %3894, 1
  store i32 %3896, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  br label %3897

3897:                                             ; preds = %3893, %3889
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #8
  br label %3898

3898:                                             ; preds = %3897, %3885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  br label %3899

3899:                                             ; preds = %3898, %3881
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #8
  br label %3900

3900:                                             ; preds = %3899, %3877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  br label %3901

3901:                                             ; preds = %3900, %3873
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #8
  br label %3902

3902:                                             ; preds = %3901, %3869
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %367) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #8
  br label %4074

3903:                                             ; preds = %3836
  %3904 = landingpad { ptr, i32 }
          cleanup
  %3905 = extractvalue { ptr, i32 } %3904, 0
  store ptr %3905, ptr %4, align 8
  %3906 = extractvalue { ptr, i32 } %3904, 1
  store i32 %3906, ptr %5, align 4
  br label %3911

3907:                                             ; preds = %3838
  %3908 = landingpad { ptr, i32 }
          cleanup
  %3909 = extractvalue { ptr, i32 } %3908, 0
  store ptr %3909, ptr %4, align 8
  %3910 = extractvalue { ptr, i32 } %3908, 1
  store i32 %3910, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #8
  br label %3911

3911:                                             ; preds = %3907, %3903
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %370) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #8
  br label %4074

3912:                                             ; preds = %3841
  %3913 = landingpad { ptr, i32 }
          catch ptr null
  %3914 = extractvalue { ptr, i32 } %3913, 0
  store ptr %3914, ptr %4, align 8
  %3915 = extractvalue { ptr, i32 } %3913, 1
  store i32 %3915, ptr %5, align 4
  br label %3925

3916:                                             ; preds = %3843
  %3917 = landingpad { ptr, i32 }
          catch ptr null
  %3918 = extractvalue { ptr, i32 } %3917, 0
  store ptr %3918, ptr %4, align 8
  %3919 = extractvalue { ptr, i32 } %3917, 1
  store i32 %3919, ptr %5, align 4
  br label %3924

3920:                                             ; preds = %3846, %3844
  %3921 = landingpad { ptr, i32 }
          catch ptr null
  %3922 = extractvalue { ptr, i32 } %3921, 0
  store ptr %3922, ptr %4, align 8
  %3923 = extractvalue { ptr, i32 } %3921, 1
  store i32 %3923, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #8
  br label %3924

3924:                                             ; preds = %3920, %3916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #8
  br label %3925

3925:                                             ; preds = %3924, %3912
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #8
  br label %3934

3926:                                             ; preds = %3850
  %3927 = landingpad { ptr, i32 }
          catch ptr null
  %3928 = extractvalue { ptr, i32 } %3927, 0
  store ptr %3928, ptr %4, align 8
  %3929 = extractvalue { ptr, i32 } %3927, 1
  store i32 %3929, ptr %5, align 4
  br label %3934

3930:                                             ; preds = %3857, %3855, %3852
  %3931 = landingpad { ptr, i32 }
          catch ptr null
  %3932 = extractvalue { ptr, i32 } %3931, 0
  store ptr %3932, ptr %4, align 8
  %3933 = extractvalue { ptr, i32 } %3931, 1
  store i32 %3933, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #8
  br label %3934

3934:                                             ; preds = %3930, %3926, %3925
  %3935 = load ptr, ptr %4, align 8
  %3936 = call ptr @__cxa_begin_catch(ptr %3935) #8
  %3937 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3938 unwind label %3970

3938:                                             ; preds = %3934
  %3939 = load ptr, ptr %3937, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %375) #8
  %3940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3941 unwind label %3974

3941:                                             ; preds = %3938
  %3942 = load ptr, ptr %3940, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %375, ptr noundef nonnull align 8 dereferenceable(30) %3942, i32 noundef 674)
          to label %3943 unwind label %3974

3943:                                             ; preds = %3941
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %3939, ptr noundef nonnull align 8 dereferenceable(30) %375, ptr noundef @.str.6)
          to label %3944 unwind label %3974

3944:                                             ; preds = %3943
  call void @llvm.lifetime.end.p0(i64 32, ptr %375) #8
  invoke void @__cxa_end_catch()
          to label %3945 unwind label %471

3945:                                             ; preds = %3944
  br label %3946

3946:                                             ; preds = %3969, %3945
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 16, ptr %376) #8
  %3949 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %3950 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %3951 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.29") align 8 %377, ptr noundef nonnull align 8 dereferenceable(88) %3951)
          to label %3952 unwind label %3980

3952:                                             ; preds = %3948
  %3953 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %3954 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %3953)
          to label %3955 unwind label %3984

3955:                                             ; preds = %3952
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %376, ptr noundef nonnull align 8 dereferenceable(136) %3949, ptr noundef %3950, ptr noundef %377, ptr noundef nonnull align 8 dereferenceable(24) %3954, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3956 unwind label %3984

3956:                                             ; preds = %3955
  %3957 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %376) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %376) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %377) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %376) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %378) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %378, ptr noundef %379, i1 noundef zeroext false)
          to label %3958 unwind label %3989

3958:                                             ; preds = %3956
  %3959 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %378) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #8
  br label %3960

3960:                                             ; preds = %3958
  %3961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %3962 unwind label %3993

3962:                                             ; preds = %3960
  %3963 = load ptr, ptr %3961, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %380) #8
  %3964 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %3965 unwind label %3997

3965:                                             ; preds = %3962
  %3966 = load ptr, ptr %3964, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %380, ptr noundef nonnull align 8 dereferenceable(30) %3966, i32 noundef 677)
          to label %3967 unwind label %3997

3967:                                             ; preds = %3965
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %3963, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(111) @.str.138, ptr noundef nonnull align 8 dereferenceable(30) %380)
          to label %3968 unwind label %3997

3968:                                             ; preds = %3967
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #8
  br label %4013

3969:                                             ; preds = %3858, %3848
  br label %3946

3970:                                             ; preds = %3934
  %3971 = landingpad { ptr, i32 }
          cleanup
  %3972 = extractvalue { ptr, i32 } %3971, 0
  store ptr %3972, ptr %4, align 8
  %3973 = extractvalue { ptr, i32 } %3971, 1
  store i32 %3973, ptr %5, align 4
  br label %3978

3974:                                             ; preds = %3943, %3941, %3938
  %3975 = landingpad { ptr, i32 }
          cleanup
  %3976 = extractvalue { ptr, i32 } %3975, 0
  store ptr %3976, ptr %4, align 8
  %3977 = extractvalue { ptr, i32 } %3975, 1
  store i32 %3977, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %375) #8
  br label %3978

3978:                                             ; preds = %3974, %3970
  invoke void @__cxa_end_catch()
          to label %3979 unwind label %4084

3979:                                             ; preds = %3978
  br label %4074

3980:                                             ; preds = %3948
  %3981 = landingpad { ptr, i32 }
          cleanup
  %3982 = extractvalue { ptr, i32 } %3981, 0
  store ptr %3982, ptr %4, align 8
  %3983 = extractvalue { ptr, i32 } %3981, 1
  store i32 %3983, ptr %5, align 4
  br label %3988

3984:                                             ; preds = %3955, %3952
  %3985 = landingpad { ptr, i32 }
          cleanup
  %3986 = extractvalue { ptr, i32 } %3985, 0
  store ptr %3986, ptr %4, align 8
  %3987 = extractvalue { ptr, i32 } %3985, 1
  store i32 %3987, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %377) #8
  br label %3988

3988:                                             ; preds = %3984, %3980
  call void @llvm.lifetime.end.p0(i64 16, ptr %376) #8
  br label %4074

3989:                                             ; preds = %3956
  %3990 = landingpad { ptr, i32 }
          cleanup
  %3991 = extractvalue { ptr, i32 } %3990, 0
  store ptr %3991, ptr %4, align 8
  %3992 = extractvalue { ptr, i32 } %3990, 1
  store i32 %3992, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #8
  br label %4074

3993:                                             ; preds = %3960
  %3994 = landingpad { ptr, i32 }
          catch ptr null
  %3995 = extractvalue { ptr, i32 } %3994, 0
  store ptr %3995, ptr %4, align 8
  %3996 = extractvalue { ptr, i32 } %3994, 1
  store i32 %3996, ptr %5, align 4
  br label %4001

3997:                                             ; preds = %3967, %3965, %3962
  %3998 = landingpad { ptr, i32 }
          catch ptr null
  %3999 = extractvalue { ptr, i32 } %3998, 0
  store ptr %3999, ptr %4, align 8
  %4000 = extractvalue { ptr, i32 } %3998, 1
  store i32 %4000, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #8
  br label %4001

4001:                                             ; preds = %3997, %3993
  %4002 = load ptr, ptr %4, align 8
  %4003 = call ptr @__cxa_begin_catch(ptr %4002) #8
  %4004 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %4005 unwind label %4027

4005:                                             ; preds = %4001
  %4006 = load ptr, ptr %4004, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %381) #8
  %4007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %4008 unwind label %4031

4008:                                             ; preds = %4005
  %4009 = load ptr, ptr %4007, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %381, ptr noundef nonnull align 8 dereferenceable(30) %4009, i32 noundef 677)
          to label %4010 unwind label %4031

4010:                                             ; preds = %4008
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %4006, ptr noundef nonnull align 8 dereferenceable(30) %381, ptr noundef @.str.139)
          to label %4011 unwind label %4031

4011:                                             ; preds = %4010
  call void @llvm.lifetime.end.p0(i64 32, ptr %381) #8
  invoke void @__cxa_end_catch()
          to label %4012 unwind label %471

4012:                                             ; preds = %4011
  br label %4013

4013:                                             ; preds = %4012, %3968
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

4015:                                             ; preds = %4014
  call void @llvm.lifetime.start.p0(i64 32, ptr %382) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %383, ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %382, ptr noundef %383)
          to label %4016 unwind label %4037

4016:                                             ; preds = %4015
  %4017 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %382) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #8
  br label %4018

4018:                                             ; preds = %4016
  %4019 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %4020 unwind label %4041

4020:                                             ; preds = %4018
  %4021 = load ptr, ptr %4019, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %384) #8
  %4022 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %4023 unwind label %4045

4023:                                             ; preds = %4020
  %4024 = load ptr, ptr %4022, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %384, ptr noundef nonnull align 8 dereferenceable(30) %4024, i32 noundef 679)
          to label %4025 unwind label %4045

4025:                                             ; preds = %4023
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %4021, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(243) @.str.140, ptr noundef nonnull align 8 dereferenceable(30) %384)
          to label %4026 unwind label %4045

4026:                                             ; preds = %4025
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #8
  br label %4061

4027:                                             ; preds = %4001
  %4028 = landingpad { ptr, i32 }
          cleanup
  %4029 = extractvalue { ptr, i32 } %4028, 0
  store ptr %4029, ptr %4, align 8
  %4030 = extractvalue { ptr, i32 } %4028, 1
  store i32 %4030, ptr %5, align 4
  br label %4035

4031:                                             ; preds = %4010, %4008, %4005
  %4032 = landingpad { ptr, i32 }
          cleanup
  %4033 = extractvalue { ptr, i32 } %4032, 0
  store ptr %4033, ptr %4, align 8
  %4034 = extractvalue { ptr, i32 } %4032, 1
  store i32 %4034, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %381) #8
  br label %4035

4035:                                             ; preds = %4031, %4027
  invoke void @__cxa_end_catch()
          to label %4036 unwind label %4084

4036:                                             ; preds = %4035
  br label %4074

4037:                                             ; preds = %4015
  %4038 = landingpad { ptr, i32 }
          cleanup
  %4039 = extractvalue { ptr, i32 } %4038, 0
  store ptr %4039, ptr %4, align 8
  %4040 = extractvalue { ptr, i32 } %4038, 1
  store i32 %4040, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #8
  br label %4074

4041:                                             ; preds = %4018
  %4042 = landingpad { ptr, i32 }
          catch ptr null
  %4043 = extractvalue { ptr, i32 } %4042, 0
  store ptr %4043, ptr %4, align 8
  %4044 = extractvalue { ptr, i32 } %4042, 1
  store i32 %4044, ptr %5, align 4
  br label %4049

4045:                                             ; preds = %4025, %4023, %4020
  %4046 = landingpad { ptr, i32 }
          catch ptr null
  %4047 = extractvalue { ptr, i32 } %4046, 0
  store ptr %4047, ptr %4, align 8
  %4048 = extractvalue { ptr, i32 } %4046, 1
  store i32 %4048, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #8
  br label %4049

4049:                                             ; preds = %4045, %4041
  %4050 = load ptr, ptr %4, align 8
  %4051 = call ptr @__cxa_begin_catch(ptr %4050) #8
  %4052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %4053 unwind label %4064

4053:                                             ; preds = %4049
  %4054 = load ptr, ptr %4052, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %385) #8
  %4055 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %4056 unwind label %4068

4056:                                             ; preds = %4053
  %4057 = load ptr, ptr %4055, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %385, ptr noundef nonnull align 8 dereferenceable(30) %4057, i32 noundef 679)
          to label %4058 unwind label %4068

4058:                                             ; preds = %4056
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %4054, ptr noundef nonnull align 8 dereferenceable(30) %385, ptr noundef @.str.141)
          to label %4059 unwind label %4068

4059:                                             ; preds = %4058
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  invoke void @__cxa_end_catch()
          to label %4060 unwind label %471

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060, %4026
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #8
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #8
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #8
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #8
  ret void

4064:                                             ; preds = %4049
  %4065 = landingpad { ptr, i32 }
          cleanup
  %4066 = extractvalue { ptr, i32 } %4065, 0
  store ptr %4066, ptr %4, align 8
  %4067 = extractvalue { ptr, i32 } %4065, 1
  store i32 %4067, ptr %5, align 4
  br label %4072

4068:                                             ; preds = %4058, %4056, %4053
  %4069 = landingpad { ptr, i32 }
          cleanup
  %4070 = extractvalue { ptr, i32 } %4069, 0
  store ptr %4070, ptr %4, align 8
  %4071 = extractvalue { ptr, i32 } %4069, 1
  store i32 %4071, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  br label %4072

4072:                                             ; preds = %4068, %4064
  invoke void @__cxa_end_catch()
          to label %4073 unwind label %4084

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073, %4037, %4036, %3989, %3988, %3979, %3911, %3902, %3868, %3798, %3797, %3750, %3749, %3740, %3672, %3663, %3639, %3571, %3570, %3523, %3522, %3513, %3445, %3436, %3412, %3344, %3343, %3296, %3295, %3286, %3218, %3209, %3190, %3123, %3122, %3075, %3074, %3065, %2997, %2988, %2969, %2902, %2901, %2854, %2853, %2844, %2776, %2767, %2748, %2681, %2680, %2633, %2632, %2623, %2555, %2546, %2512, %2442, %2441, %2394, %2393, %2384, %2316, %2307, %2273, %2203, %2202, %2155, %2154, %2145, %2077, %2068, %2044, %1976, %1975, %1928, %1927, %1918, %1850, %1841, %1817, %1749, %1748, %1701, %1700, %1691, %1623, %1614, %1595, %1528, %1527, %1480, %1479, %1470, %1402, %1393, %1374, %1307, %1306, %1259, %1258, %1249, %1181, %1172, %1148, %1080, %1079, %1032, %1031, %1022, %954, %945, %926, %859, %858, %811, %810, %801, %733, %724, %705, %638, %637, %590, %589, %580, %512, %503, %471, %467
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #8
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  br label %4075

4075:                                             ; preds = %4074, %463, %459
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #8
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  br label %4076

4076:                                             ; preds = %4075, %455, %451
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  br label %4077

4077:                                             ; preds = %4076, %447, %443
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #8
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  br label %4078

4078:                                             ; preds = %4077, %439
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #8
  br label %4079

4079:                                             ; preds = %4078
  %4080 = load ptr, ptr %4, align 8
  %4081 = load i32, ptr %5, align 4
  %4082 = insertvalue { ptr, i32 } poison, ptr %4080, 0
  %4083 = insertvalue { ptr, i32 } %4082, i32 %4081, 1
  resume { ptr, i32 } %4083

4084:                                             ; preds = %4072, %4035, %3978, %3867, %3796, %3739, %3638, %3569, %3512, %3411, %3342, %3285, %3189, %3121, %3064, %2968, %2900, %2843, %2747, %2679, %2622, %2511, %2440, %2383, %2272, %2201, %2144, %2043, %1974, %1917, %1816, %1747, %1690, %1594, %1526, %1469, %1373, %1305, %1248, %1147, %1078, %1021, %925, %857, %800, %704, %636, %579
  %4085 = landingpad { ptr, i32 }
          catch ptr null
  %4086 = extractvalue { ptr, i32 } %4085, 0
  call void @__clang_call_terminate(ptr %4086) #11
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA98_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(98), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(142), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA115_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(79), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA94_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(94), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(252), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(227), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(149), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(218), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA82_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(82), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA338_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(338), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(111), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(243), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA145_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(145), ptr noundef nonnull align 8 dereferenceable(30)) #4

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

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

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

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


; 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.76" = type { %"class.std::__shared_ptr.77" }
%"class.std::__shared_ptr.77" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.29" = type { %"class.std::__shared_ptr.30" }
%"class.std::__shared_ptr.30" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.50" = type { %"class.std::__shared_ptr.51" }
%"class.std::__shared_ptr.51" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.65" = type { %"class.std::__shared_ptr.66" }
%"class.std::__shared_ptr.66" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.82" = type { %"class.std::__shared_ptr.83" }
%"class.std::__shared_ptr.83" = type { ptr, %"class.std::__shared_count" }
%"class.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [192 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [210 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [252 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [227 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [277 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [198 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [252 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [218 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [267 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [420 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [470 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [338 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [388 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [243 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [293 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [195 x i8], align 1

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

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

declare void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088)) unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #3

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

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

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

declare void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136)) unnamed_addr #2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 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 #6

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext) local_unnamed_addr #5

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv() local_unnamed_addr #2

declare void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(30), ptr noundef) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv() local_unnamed_addr #2

declare void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30), ptr noundef nonnull align 8 dereferenceable(30), i32 noundef) unnamed_addr #2

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #7

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

declare void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.29") align 8, ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #5 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 #5 align 2

declare void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) local_unnamed_addr #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 #5 align 2

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

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

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

declare void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(420), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests20TestPlannerSetOfTest7RunImplEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(49) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::shared_ptr", align 8
  %3 = alloca %"class.std::shared_ptr.29", align 8
  %4 = alloca %"class.std::shared_ptr.50", align 8
  %5 = alloca %"class.std::shared_ptr.65", align 8
  %6 = alloca %"class.std::shared_ptr.76", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::shared_ptr.82", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__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::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.UnitTest::TestDetails", align 8
  %28 = alloca %"class.UnitTest::TestDetails", align 8
  %29 = alloca %"class.std::shared_ptr.76", align 8
  %30 = alloca %"class.std::shared_ptr.29", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::shared_ptr.76", align 8
  %33 = alloca %"class.UnitTest::TestDetails", align 8
  %34 = alloca %"class.UnitTest::TestDetails", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::shared_ptr.76", align 8
  %37 = alloca %"class.UnitTest::TestDetails", align 8
  %38 = alloca %"class.UnitTest::TestDetails", 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::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.UnitTest::TestDetails", align 8
  %50 = alloca %"class.UnitTest::TestDetails", align 8
  %51 = alloca %"class.std::shared_ptr.76", align 8
  %52 = alloca %"class.std::shared_ptr.29", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::shared_ptr.76", align 8
  %55 = alloca %"class.UnitTest::TestDetails", align 8
  %56 = alloca %"class.UnitTest::TestDetails", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::shared_ptr.76", align 8
  %59 = alloca %"class.UnitTest::TestDetails", align 8
  %60 = alloca %"class.UnitTest::TestDetails", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.UnitTest::TestDetails", align 8
  %72 = alloca %"class.UnitTest::TestDetails", align 8
  %73 = alloca %"class.std::shared_ptr.76", align 8
  %74 = alloca %"class.std::shared_ptr.29", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::shared_ptr.76", align 8
  %77 = alloca %"class.UnitTest::TestDetails", align 8
  %78 = alloca %"class.UnitTest::TestDetails", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::shared_ptr.76", align 8
  %81 = alloca %"class.UnitTest::TestDetails", align 8
  %82 = alloca %"class.UnitTest::TestDetails", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.UnitTest::TestDetails", align 8
  %95 = alloca %"class.UnitTest::TestDetails", align 8
  %96 = alloca %"class.std::shared_ptr.76", align 8
  %97 = alloca %"class.std::shared_ptr.29", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::shared_ptr.76", align 8
  %100 = alloca %"class.UnitTest::TestDetails", align 8
  %101 = alloca %"class.UnitTest::TestDetails", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::shared_ptr.76", align 8
  %104 = alloca %"class.UnitTest::TestDetails", align 8
  %105 = alloca %"class.UnitTest::TestDetails", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.UnitTest::TestDetails", align 8
  %117 = alloca %"class.UnitTest::TestDetails", align 8
  %118 = alloca %"class.std::shared_ptr.76", align 8
  %119 = alloca %"class.std::shared_ptr.29", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::shared_ptr.76", align 8
  %122 = alloca %"class.UnitTest::TestDetails", align 8
  %123 = alloca %"class.UnitTest::TestDetails", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::shared_ptr.76", align 8
  %126 = alloca %"class.UnitTest::TestDetails", align 8
  %127 = alloca %"class.UnitTest::TestDetails", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.UnitTest::TestDetails", align 8
  %139 = alloca %"class.UnitTest::TestDetails", align 8
  %140 = alloca %"class.std::shared_ptr.76", align 8
  %141 = alloca %"class.std::shared_ptr.29", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::shared_ptr.76", align 8
  %144 = alloca %"class.UnitTest::TestDetails", align 8
  %145 = alloca %"class.UnitTest::TestDetails", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::shared_ptr.76", align 8
  %148 = alloca %"class.UnitTest::TestDetails", align 8
  %149 = alloca %"class.UnitTest::TestDetails", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.UnitTest::TestDetails", align 8
  %162 = alloca %"class.UnitTest::TestDetails", align 8
  %163 = alloca %"class.std::shared_ptr.76", align 8
  %164 = alloca %"class.std::shared_ptr.29", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::shared_ptr.76", align 8
  %167 = alloca %"class.UnitTest::TestDetails", align 8
  %168 = alloca %"class.UnitTest::TestDetails", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::shared_ptr.76", align 8
  %171 = alloca %"class.UnitTest::TestDetails", align 8
  %172 = alloca %"class.UnitTest::TestDetails", align 8
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.UnitTest::TestDetails", align 8
  %185 = alloca %"class.UnitTest::TestDetails", align 8
  %186 = alloca %"class.std::shared_ptr.76", align 8
  %187 = alloca %"class.std::shared_ptr.29", align 8
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::shared_ptr.76", align 8
  %190 = alloca %"class.UnitTest::TestDetails", align 8
  %191 = alloca %"class.UnitTest::TestDetails", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::shared_ptr.76", align 8
  %194 = alloca %"class.UnitTest::TestDetails", align 8
  %195 = alloca %"class.UnitTest::TestDetails", align 8
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.UnitTest::TestDetails", align 8
  %210 = alloca %"class.UnitTest::TestDetails", align 8
  %211 = alloca %"class.std::shared_ptr.76", align 8
  %212 = alloca %"class.std::shared_ptr.29", align 8
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::shared_ptr.76", align 8
  %215 = alloca %"class.UnitTest::TestDetails", align 8
  %216 = alloca %"class.UnitTest::TestDetails", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::shared_ptr.76", align 8
  %219 = alloca %"class.UnitTest::TestDetails", align 8
  %220 = alloca %"class.UnitTest::TestDetails", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.UnitTest::TestDetails", align 8
  %235 = alloca %"class.UnitTest::TestDetails", align 8
  %236 = alloca %"class.std::shared_ptr.76", align 8
  %237 = alloca %"class.std::shared_ptr.29", align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::shared_ptr.76", align 8
  %240 = alloca %"class.UnitTest::TestDetails", align 8
  %241 = alloca %"class.UnitTest::TestDetails", align 8
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::shared_ptr.76", align 8
  %244 = alloca %"class.UnitTest::TestDetails", align 8
  %245 = alloca %"class.UnitTest::TestDetails", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.UnitTest::TestDetails", align 8
  %257 = alloca %"class.UnitTest::TestDetails", align 8
  %258 = alloca %"class.std::shared_ptr.76", align 8
  %259 = alloca %"class.std::shared_ptr.29", align 8
  %260 = alloca %"class.std::__cxx11::basic_string", align 8
  %261 = alloca %"class.std::shared_ptr.76", align 8
  %262 = alloca %"class.UnitTest::TestDetails", align 8
  %263 = alloca %"class.UnitTest::TestDetails", align 8
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.std::shared_ptr.76", align 8
  %266 = alloca %"class.UnitTest::TestDetails", align 8
  %267 = alloca %"class.UnitTest::TestDetails", align 8
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.UnitTest::TestDetails", align 8
  %279 = alloca %"class.UnitTest::TestDetails", align 8
  %280 = alloca %"class.std::shared_ptr.76", align 8
  %281 = alloca %"class.std::shared_ptr.29", align 8
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::shared_ptr.76", align 8
  %284 = alloca %"class.UnitTest::TestDetails", align 8
  %285 = alloca %"class.UnitTest::TestDetails", align 8
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::shared_ptr.76", align 8
  %288 = alloca %"class.UnitTest::TestDetails", align 8
  %289 = alloca %"class.UnitTest::TestDetails", align 8
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.UnitTest::TestDetails", align 8
  %301 = alloca %"class.UnitTest::TestDetails", align 8
  %302 = alloca %"class.std::shared_ptr.76", align 8
  %303 = alloca %"class.std::shared_ptr.29", align 8
  %304 = alloca %"class.std::__cxx11::basic_string", align 8
  %305 = alloca %"class.std::shared_ptr.76", align 8
  %306 = alloca %"class.UnitTest::TestDetails", align 8
  %307 = alloca %"class.UnitTest::TestDetails", align 8
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::shared_ptr.76", align 8
  %310 = alloca %"class.UnitTest::TestDetails", align 8
  %311 = alloca %"class.UnitTest::TestDetails", align 8
  %312 = alloca %"class.std::__cxx11::basic_string", align 8
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::__cxx11::basic_string", align 8
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::__cxx11::basic_string", align 8
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.UnitTest::TestDetails", align 8
  %324 = alloca %"class.UnitTest::TestDetails", align 8
  %325 = alloca %"class.std::shared_ptr.76", align 8
  %326 = alloca %"class.std::shared_ptr.29", align 8
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.std::shared_ptr.76", align 8
  %329 = alloca %"class.UnitTest::TestDetails", align 8
  %330 = alloca %"class.UnitTest::TestDetails", align 8
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::shared_ptr.76", align 8
  %333 = alloca %"class.UnitTest::TestDetails", align 8
  %334 = alloca %"class.UnitTest::TestDetails", align 8
  %335 = alloca %"class.std::__cxx11::basic_string", align 8
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca %"class.std::__cxx11::basic_string", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::__cxx11::basic_string", align 8
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.UnitTest::TestDetails", align 8
  %347 = alloca %"class.UnitTest::TestDetails", align 8
  %348 = alloca %"class.std::shared_ptr.76", align 8
  %349 = alloca %"class.std::shared_ptr.29", align 8
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::shared_ptr.76", align 8
  %352 = alloca %"class.UnitTest::TestDetails", align 8
  %353 = alloca %"class.UnitTest::TestDetails", align 8
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::shared_ptr.76", align 8
  %356 = alloca %"class.UnitTest::TestDetails", align 8
  %357 = alloca %"class.UnitTest::TestDetails", align 8
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::__cxx11::basic_string", align 8
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::__cxx11::basic_string", align 8
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"class.std::__cxx11::basic_string", align 8
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.UnitTest::TestDetails", align 8
  %372 = alloca %"class.UnitTest::TestDetails", align 8
  %373 = alloca %"class.std::shared_ptr.76", align 8
  %374 = alloca %"class.std::shared_ptr.29", align 8
  %375 = alloca %"class.std::__cxx11::basic_string", align 8
  %376 = alloca %"class.std::shared_ptr.76", align 8
  %377 = alloca %"class.UnitTest::TestDetails", align 8
  %378 = alloca %"class.UnitTest::TestDetails", align 8
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::shared_ptr.76", align 8
  %381 = alloca %"class.UnitTest::TestDetails", align 8
  %382 = alloca %"class.UnitTest::TestDetails", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  %383 = tail call noalias noundef nonnull dereferenceable(33088) ptr @_Znwm(i64 noundef 33088) #9
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %383)
          to label %384 unwind label %432

384:                                              ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull %383)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  %385 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #9
          to label %386 unwind label %434

386:                                              ; preds = %384
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %385)
          to label %387 unwind label %436

387:                                              ; preds = %386
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull %385)
          to label %388 unwind label %434

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %389 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #9
          to label %390 unwind label %438

390:                                              ; preds = %388
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %389)
          to label %391 unwind label %440

391:                                              ; preds = %390
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull %389)
          to label %392 unwind label %438

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %393 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #9
          to label %394 unwind label %442

394:                                              ; preds = %392
  %395 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %396 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %397 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %393, ptr noundef %395, ptr noundef %396, ptr noundef %397)
          to label %398 unwind label %444

398:                                              ; preds = %394
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %393)
          to label %399 unwind label %442

399:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #8
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str)
          to label %400 unwind label %446

400:                                              ; preds = %399
  %401 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  %402 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %403 = load ptr, ptr %402, align 8, !tbaa !5
  %404 = getelementptr inbounds i8, ptr %403, i64 40
  %405 = load ptr, ptr %404, align 8
  invoke void %405(ptr noundef nonnull align 8 dereferenceable(96) %402)
          to label %406 unwind label %448

406:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  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.55)
          to label %407 unwind label %450

407:                                              ; preds = %406
  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.82)
          to label %408 unwind label %452

408:                                              ; preds = %407
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.83)
          to label %409 unwind label %454

409:                                              ; preds = %408
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.84)
          to label %410 unwind label %456

410:                                              ; preds = %409
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.85)
          to label %411 unwind label %458

411:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str)
          to label %412 unwind label %460

412:                                              ; preds = %411
  %413 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.44)
          to label %414 unwind label %467

414:                                              ; preds = %412
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str)
          to label %415 unwind label %469

415:                                              ; preds = %414
  %416 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  %417 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %418 unwind label %472

418:                                              ; preds = %415
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %419 unwind label %474

419:                                              ; preds = %418
  %420 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef nonnull %25)
          to label %421 unwind label %476

421:                                              ; preds = %419
  %422 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %420)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  br i1 %422, label %494, label %423

423:                                              ; preds = %421
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %425 unwind label %480

425:                                              ; preds = %423
  %426 = load ptr, ptr %424, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  %427 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %428 unwind label %482

428:                                              ; preds = %425
  %429 = load ptr, ptr %427, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %27, ptr noundef nonnull align 8 dereferenceable(30) %429, i32 noundef 402)
          to label %430 unwind label %482

430:                                              ; preds = %428
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %426, ptr noundef nonnull align 8 dereferenceable(30) %27, ptr noundef nonnull @.str.5)
          to label %431 unwind label %482

431:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %494

432:                                              ; preds = %1
  %433 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %383, i64 noundef 33088) #10
  br label %2808

434:                                              ; preds = %387, %384
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %2807

436:                                              ; preds = %386
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %385, i64 noundef 144) #10
  br label %2807

438:                                              ; preds = %391, %388
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %2806

440:                                              ; preds = %390
  %441 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %389, i64 noundef 136) #10
  br label %2806

442:                                              ; preds = %398, %392
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %2805

444:                                              ; preds = %394
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %393, i64 noundef 96) #10
  br label %2805

446:                                              ; preds = %399
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %2804

448:                                              ; preds = %2797, %2765, %2724, %2641, %2640, %2608, %2567, %2492, %2491, %2459, %2418, %2343, %2342, %2310, %2269, %2198, %2197, %2165, %2124, %2053, %2052, %2020, %1979, %1908, %1907, %1875, %1834, %1751, %1750, %1718, %1677, %1594, %1593, %1561, %1520, %1445, %1444, %1412, %1371, %1296, %1295, %1263, %1222, %1151, %1150, %1118, %1077, %1006, %1005, %973, %932, %857, %856, %824, %783, %712, %711, %679, %638, %567, %566, %534, %493, %400
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %2804

450:                                              ; preds = %406
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %466

452:                                              ; preds = %407
  %453 = landingpad { ptr, i32 }
          cleanup
  br label %465

454:                                              ; preds = %408
  %455 = landingpad { ptr, i32 }
          cleanup
  br label %464

456:                                              ; preds = %409
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %463

458:                                              ; preds = %410
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %462

460:                                              ; preds = %411
  %461 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %462

462:                                              ; preds = %460, %458
  %.pn = phi { ptr, i32 } [ %461, %460 ], [ %459, %458 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %463

463:                                              ; preds = %462, %456
  %.pn.pn = phi { ptr, i32 } [ %.pn, %462 ], [ %457, %456 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %464

464:                                              ; preds = %463, %454
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %463 ], [ %455, %454 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %465

465:                                              ; preds = %464, %452
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %464 ], [ %453, %452 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %466

466:                                              ; preds = %465, %450
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %465 ], [ %451, %450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br label %2804

467:                                              ; preds = %412
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %471

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

471:                                              ; preds = %469, %467
  %.pn189 = phi { ptr, i32 } [ %470, %469 ], [ %468, %467 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  br label %2804

472:                                              ; preds = %415
  %473 = landingpad { ptr, i32 }
          catch ptr null
  br label %479

474:                                              ; preds = %418
  %475 = landingpad { ptr, i32 }
          catch ptr null
  br label %478

476:                                              ; preds = %419
  %477 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %478

478:                                              ; preds = %476, %474
  %.pn191 = phi { ptr, i32 } [ %477, %476 ], [ %475, %474 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %479

479:                                              ; preds = %478, %472
  %.pn191.pn = phi { ptr, i32 } [ %.pn191, %478 ], [ %473, %472 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  br label %484

480:                                              ; preds = %423
  %481 = landingpad { ptr, i32 }
          catch ptr null
  br label %484

482:                                              ; preds = %430, %428, %425
  %483 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %484

484:                                              ; preds = %482, %480, %479
  %.pn192 = phi { ptr, i32 } [ %483, %482 ], [ %481, %480 ], [ %.pn191.pn, %479 ]
  %.858 = extractvalue { ptr, i32 } %.pn192, 0
  %485 = call ptr @__cxa_begin_catch(ptr %.858) #8
  %486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %487 unwind label %512

487:                                              ; preds = %484
  %488 = load ptr, ptr %486, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %490 unwind label %514

490:                                              ; preds = %487
  %491 = load ptr, ptr %489, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef nonnull align 8 dereferenceable(30) %491, i32 noundef 402)
          to label %492 unwind label %514

492:                                              ; preds = %490
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %488, ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef nonnull @.str.6)
          to label %493 unwind label %514

493:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  invoke void @__cxa_end_catch()
          to label %494 unwind label %448

494:                                              ; preds = %421, %431, %493
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  %495 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %496 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %497 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %30, ptr noundef nonnull align 8 dereferenceable(88) %497)
  %498 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %499 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %498)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %29, ptr noundef nonnull align 8 dereferenceable(136) %495, ptr noundef %496, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(24) %499, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %500 unwind label %517

500:                                              ; preds = %494
  %501 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %29) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(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 %502 unwind label %519

502:                                              ; preds = %500
  %503 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %505 unwind label %521

505:                                              ; preds = %502
  %506 = load ptr, ptr %504, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %508 unwind label %523

508:                                              ; preds = %505
  %509 = load ptr, ptr %507, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %33, ptr noundef nonnull align 8 dereferenceable(30) %509, i32 noundef 405)
          to label %510 unwind label %523

510:                                              ; preds = %508
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA98_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %506, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(98) @.str.86, ptr noundef nonnull align 8 dereferenceable(30) %33)
          to label %511 unwind label %523

511:                                              ; preds = %510
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %535

512:                                              ; preds = %484
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %516

514:                                              ; preds = %492, %490, %487
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  br label %516

516:                                              ; preds = %514, %512
  %.pn193 = phi { ptr, i32 } [ %515, %514 ], [ %513, %512 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

517:                                              ; preds = %494
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  br label %2804

519:                                              ; preds = %500
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  br label %2804

521:                                              ; preds = %502
  %522 = landingpad { ptr, i32 }
          catch ptr null
  br label %525

523:                                              ; preds = %510, %508, %505
  %524 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %525

525:                                              ; preds = %523, %521
  %.pn195 = phi { ptr, i32 } [ %524, %523 ], [ %522, %521 ]
  %.1060 = extractvalue { ptr, i32 } %.pn195, 0
  %526 = call ptr @__cxa_begin_catch(ptr %.1060) #8
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %528 unwind label %546

528:                                              ; preds = %525
  %529 = load ptr, ptr %527, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %531 unwind label %548

531:                                              ; preds = %528
  %532 = load ptr, ptr %530, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull align 8 dereferenceable(30) %532, i32 noundef 405)
          to label %533 unwind label %548

533:                                              ; preds = %531
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %529, ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull @.str.87)
          to label %534 unwind label %548

534:                                              ; preds = %533
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  invoke void @__cxa_end_catch()
          to label %535 unwind label %448

535:                                              ; preds = %534, %511
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull %36)
          to label %536 unwind label %551

536:                                              ; preds = %535
  %537 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %539 unwind label %553

539:                                              ; preds = %536
  %540 = load ptr, ptr %538, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %542 unwind label %555

542:                                              ; preds = %539
  %543 = load ptr, ptr %541, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %543, i32 noundef 407)
          to label %544 unwind label %555

544:                                              ; preds = %542
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %540, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(142) @.str.88, ptr noundef nonnull align 8 dereferenceable(30) %37)
          to label %545 unwind label %555

545:                                              ; preds = %544
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %567

546:                                              ; preds = %525
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %550

548:                                              ; preds = %533, %531, %528
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %550

550:                                              ; preds = %548, %546
  %.pn196 = phi { ptr, i32 } [ %549, %548 ], [ %547, %546 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

551:                                              ; preds = %535
  %552 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  br label %2804

553:                                              ; preds = %536
  %554 = landingpad { ptr, i32 }
          catch ptr null
  br label %557

555:                                              ; preds = %544, %542, %539
  %556 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %557

557:                                              ; preds = %555, %553
  %.pn198 = phi { ptr, i32 } [ %556, %555 ], [ %554, %553 ]
  %.1262 = extractvalue { ptr, i32 } %.pn198, 0
  %558 = call ptr @__cxa_begin_catch(ptr %.1262) #8
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %560 unwind label %596

560:                                              ; preds = %557
  %561 = load ptr, ptr %559, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %563 unwind label %598

563:                                              ; preds = %560
  %564 = load ptr, ptr %562, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %38, ptr noundef nonnull align 8 dereferenceable(30) %564, i32 noundef 407)
          to label %565 unwind label %598

565:                                              ; preds = %563
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %561, ptr noundef nonnull align 8 dereferenceable(30) %38, ptr noundef nonnull @.str.89)
          to label %566 unwind label %598

566:                                              ; preds = %565
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  invoke void @__cxa_end_catch()
          to label %567 unwind label %448

567:                                              ; preds = %566, %545
  %568 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %569 = load ptr, ptr %568, align 8, !tbaa !5
  %570 = getelementptr inbounds i8, ptr %569, i64 40
  %571 = load ptr, ptr %570, align 8
  invoke void %571(ptr noundef nonnull align 8 dereferenceable(96) %568)
          to label %572 unwind label %448

572:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.55)
          to label %573 unwind label %601

573:                                              ; preds = %572
  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.82)
          to label %574 unwind label %603

574:                                              ; preds = %573
  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.90)
          to label %575 unwind label %605

575:                                              ; preds = %574
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str)
          to label %576 unwind label %607

576:                                              ; preds = %575
  %577 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.44)
          to label %578 unwind label %612

578:                                              ; preds = %576
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str)
          to label %579 unwind label %614

579:                                              ; preds = %578
  %580 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  %581 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %582 unwind label %617

582:                                              ; preds = %579
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %583 unwind label %619

583:                                              ; preds = %582
  %584 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull %47)
          to label %585 unwind label %621

585:                                              ; preds = %583
  %586 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %584)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br i1 %586, label %639, label %587

587:                                              ; preds = %585
  %588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %589 unwind label %625

589:                                              ; preds = %587
  %590 = load ptr, ptr %588, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %592 unwind label %627

592:                                              ; preds = %589
  %593 = load ptr, ptr %591, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %49, ptr noundef nonnull align 8 dereferenceable(30) %593, i32 noundef 419)
          to label %594 unwind label %627

594:                                              ; preds = %592
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %590, ptr noundef nonnull align 8 dereferenceable(30) %49, ptr noundef nonnull @.str.5)
          to label %595 unwind label %627

595:                                              ; preds = %594
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  br label %639

596:                                              ; preds = %557
  %597 = landingpad { ptr, i32 }
          cleanup
  br label %600

598:                                              ; preds = %565, %563, %560
  %599 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %600

600:                                              ; preds = %598, %596
  %.pn199 = phi { ptr, i32 } [ %599, %598 ], [ %597, %596 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

601:                                              ; preds = %572
  %602 = landingpad { ptr, i32 }
          cleanup
  br label %611

603:                                              ; preds = %573
  %604 = landingpad { ptr, i32 }
          cleanup
  br label %610

605:                                              ; preds = %574
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %609

607:                                              ; preds = %575
  %608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %609

609:                                              ; preds = %607, %605
  %.pn201 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %610

610:                                              ; preds = %609, %603
  %.pn201.pn = phi { ptr, i32 } [ %.pn201, %609 ], [ %604, %603 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %611

611:                                              ; preds = %610, %601
  %.pn201.pn.pn = phi { ptr, i32 } [ %.pn201.pn, %610 ], [ %602, %601 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  br label %2804

612:                                              ; preds = %576
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %616

614:                                              ; preds = %578
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %616

616:                                              ; preds = %614, %612
  %.pn205 = phi { ptr, i32 } [ %615, %614 ], [ %613, %612 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %2804

617:                                              ; preds = %579
  %618 = landingpad { ptr, i32 }
          catch ptr null
  br label %624

619:                                              ; preds = %582
  %620 = landingpad { ptr, i32 }
          catch ptr null
  br label %623

621:                                              ; preds = %583
  %622 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %623

623:                                              ; preds = %621, %619
  %.pn207 = phi { ptr, i32 } [ %622, %621 ], [ %620, %619 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %624

624:                                              ; preds = %623, %617
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %623 ], [ %618, %617 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br label %629

625:                                              ; preds = %587
  %626 = landingpad { ptr, i32 }
          catch ptr null
  br label %629

627:                                              ; preds = %594, %592, %589
  %628 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  br label %629

629:                                              ; preds = %627, %625, %624
  %.pn208 = phi { ptr, i32 } [ %628, %627 ], [ %626, %625 ], [ %.pn207.pn, %624 ]
  %.2070 = extractvalue { ptr, i32 } %.pn208, 0
  %630 = call ptr @__cxa_begin_catch(ptr %.2070) #8
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %632 unwind label %657

632:                                              ; preds = %629
  %633 = load ptr, ptr %631, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  %634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %635 unwind label %659

635:                                              ; preds = %632
  %636 = load ptr, ptr %634, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef nonnull align 8 dereferenceable(30) %636, i32 noundef 419)
          to label %637 unwind label %659

637:                                              ; preds = %635
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %633, ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef nonnull @.str.6)
          to label %638 unwind label %659

638:                                              ; preds = %637
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  invoke void @__cxa_end_catch()
          to label %639 unwind label %448

639:                                              ; preds = %585, %595, %638
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #8
  %640 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %641 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %642 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %52, ptr noundef nonnull align 8 dereferenceable(88) %642)
  %643 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %644 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %643)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %51, ptr noundef nonnull align 8 dereferenceable(136) %640, ptr noundef %641, ptr noundef nonnull %52, ptr noundef nonnull align 8 dereferenceable(24) %644, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %645 unwind label %662

645:                                              ; preds = %639
  %646 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %51) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull %54, i1 noundef zeroext false)
          to label %647 unwind label %664

647:                                              ; preds = %645
  %648 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %650 unwind label %666

650:                                              ; preds = %647
  %651 = load ptr, ptr %649, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %653 unwind label %668

653:                                              ; preds = %650
  %654 = load ptr, ptr %652, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef nonnull align 8 dereferenceable(30) %654, i32 noundef 422)
          to label %655 unwind label %668

655:                                              ; preds = %653
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %651, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(36) @.str.91, ptr noundef nonnull align 8 dereferenceable(30) %55)
          to label %656 unwind label %668

656:                                              ; preds = %655
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  br label %680

657:                                              ; preds = %629
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %661

659:                                              ; preds = %637, %635, %632
  %660 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  br label %661

661:                                              ; preds = %659, %657
  %.pn209 = phi { ptr, i32 } [ %660, %659 ], [ %658, %657 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

662:                                              ; preds = %639
  %663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #8
  br label %2804

664:                                              ; preds = %645
  %665 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  br label %2804

666:                                              ; preds = %647
  %667 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

668:                                              ; preds = %655, %653, %650
  %669 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  br label %670

670:                                              ; preds = %668, %666
  %.pn211 = phi { ptr, i32 } [ %669, %668 ], [ %667, %666 ]
  %.2272 = extractvalue { ptr, i32 } %.pn211, 0
  %671 = call ptr @__cxa_begin_catch(ptr %.2272) #8
  %672 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %673 unwind label %691

673:                                              ; preds = %670
  %674 = load ptr, ptr %672, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #8
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %676 unwind label %693

676:                                              ; preds = %673
  %677 = load ptr, ptr %675, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull align 8 dereferenceable(30) %677, i32 noundef 422)
          to label %678 unwind label %693

678:                                              ; preds = %676
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %674, ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull @.str.92)
          to label %679 unwind label %693

679:                                              ; preds = %678
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  invoke void @__cxa_end_catch()
          to label %680 unwind label %448

680:                                              ; preds = %679, %656
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull %58)
          to label %681 unwind label %696

681:                                              ; preds = %680
  %682 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %684 unwind label %698

684:                                              ; preds = %681
  %685 = load ptr, ptr %683, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #8
  %686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %687 unwind label %700

687:                                              ; preds = %684
  %688 = load ptr, ptr %686, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %688, i32 noundef 424)
          to label %689 unwind label %700

689:                                              ; preds = %687
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA115_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %685, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(115) @.str.93, ptr noundef nonnull align 8 dereferenceable(30) %59)
          to label %690 unwind label %700

690:                                              ; preds = %689
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  br label %712

691:                                              ; preds = %670
  %692 = landingpad { ptr, i32 }
          cleanup
  br label %695

693:                                              ; preds = %678, %676, %673
  %694 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  br label %695

695:                                              ; preds = %693, %691
  %.pn212 = phi { ptr, i32 } [ %694, %693 ], [ %692, %691 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

696:                                              ; preds = %680
  %697 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  br label %2804

698:                                              ; preds = %681
  %699 = landingpad { ptr, i32 }
          catch ptr null
  br label %702

700:                                              ; preds = %689, %687, %684
  %701 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  br label %702

702:                                              ; preds = %700, %698
  %.pn214 = phi { ptr, i32 } [ %701, %700 ], [ %699, %698 ]
  %.2474 = extractvalue { ptr, i32 } %.pn214, 0
  %703 = call ptr @__cxa_begin_catch(ptr %.2474) #8
  %704 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %705 unwind label %741

705:                                              ; preds = %702
  %706 = load ptr, ptr %704, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  %707 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %708 unwind label %743

708:                                              ; preds = %705
  %709 = load ptr, ptr %707, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull align 8 dereferenceable(30) %709, i32 noundef 424)
          to label %710 unwind label %743

710:                                              ; preds = %708
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %706, ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull @.str.94)
          to label %711 unwind label %743

711:                                              ; preds = %710
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  invoke void @__cxa_end_catch()
          to label %712 unwind label %448

712:                                              ; preds = %711, %690
  %713 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %714 = load ptr, ptr %713, align 8, !tbaa !5
  %715 = getelementptr inbounds i8, ptr %714, i64 40
  %716 = load ptr, ptr %715, align 8
  invoke void %716(ptr noundef nonnull align 8 dereferenceable(96) %713)
          to label %717 unwind label %448

717:                                              ; preds = %712
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.55)
          to label %718 unwind label %746

718:                                              ; preds = %717
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.82)
          to label %719 unwind label %748

719:                                              ; preds = %718
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.95)
          to label %720 unwind label %750

720:                                              ; preds = %719
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str)
          to label %721 unwind label %752

721:                                              ; preds = %720
  %722 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.44)
          to label %723 unwind label %757

723:                                              ; preds = %721
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str)
          to label %724 unwind label %759

724:                                              ; preds = %723
  %725 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  %726 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %727 unwind label %762

727:                                              ; preds = %724
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %728 unwind label %764

728:                                              ; preds = %727
  %729 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %726, ptr noundef nonnull %69)
          to label %730 unwind label %766

730:                                              ; preds = %728
  %731 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %729)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  br i1 %731, label %784, label %732

732:                                              ; preds = %730
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %734 unwind label %770

734:                                              ; preds = %732
  %735 = load ptr, ptr %733, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #8
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %737 unwind label %772

737:                                              ; preds = %734
  %738 = load ptr, ptr %736, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %71, ptr noundef nonnull align 8 dereferenceable(30) %738, i32 noundef 436)
          to label %739 unwind label %772

739:                                              ; preds = %737
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %735, ptr noundef nonnull align 8 dereferenceable(30) %71, ptr noundef nonnull @.str.5)
          to label %740 unwind label %772

740:                                              ; preds = %739
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  br label %784

741:                                              ; preds = %702
  %742 = landingpad { ptr, i32 }
          cleanup
  br label %745

743:                                              ; preds = %710, %708, %705
  %744 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  br label %745

745:                                              ; preds = %743, %741
  %.pn215 = phi { ptr, i32 } [ %744, %743 ], [ %742, %741 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

746:                                              ; preds = %717
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %756

748:                                              ; preds = %718
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %755

750:                                              ; preds = %719
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %754

752:                                              ; preds = %720
  %753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %754

754:                                              ; preds = %752, %750
  %.pn217 = phi { ptr, i32 } [ %753, %752 ], [ %751, %750 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %755

755:                                              ; preds = %754, %748
  %.pn217.pn = phi { ptr, i32 } [ %.pn217, %754 ], [ %749, %748 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %756

756:                                              ; preds = %755, %746
  %.pn217.pn.pn = phi { ptr, i32 } [ %.pn217.pn, %755 ], [ %747, %746 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  br label %2804

757:                                              ; preds = %721
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %761

759:                                              ; preds = %723
  %760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %761

761:                                              ; preds = %759, %757
  %.pn221 = phi { ptr, i32 } [ %760, %759 ], [ %758, %757 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %2804

762:                                              ; preds = %724
  %763 = landingpad { ptr, i32 }
          catch ptr null
  br label %769

764:                                              ; preds = %727
  %765 = landingpad { ptr, i32 }
          catch ptr null
  br label %768

766:                                              ; preds = %728
  %767 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %768

768:                                              ; preds = %766, %764
  %.pn223 = phi { ptr, i32 } [ %767, %766 ], [ %765, %764 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %769

769:                                              ; preds = %768, %762
  %.pn223.pn = phi { ptr, i32 } [ %.pn223, %768 ], [ %763, %762 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  br label %774

770:                                              ; preds = %732
  %771 = landingpad { ptr, i32 }
          catch ptr null
  br label %774

772:                                              ; preds = %739, %737, %734
  %773 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  br label %774

774:                                              ; preds = %772, %770, %769
  %.pn224 = phi { ptr, i32 } [ %773, %772 ], [ %771, %770 ], [ %.pn223.pn, %769 ]
  %.3282 = extractvalue { ptr, i32 } %.pn224, 0
  %775 = call ptr @__cxa_begin_catch(ptr %.3282) #8
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %777 unwind label %802

777:                                              ; preds = %774
  %778 = load ptr, ptr %776, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #8
  %779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %780 unwind label %804

780:                                              ; preds = %777
  %781 = load ptr, ptr %779, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %72, ptr noundef nonnull align 8 dereferenceable(30) %781, i32 noundef 436)
          to label %782 unwind label %804

782:                                              ; preds = %780
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %778, ptr noundef nonnull align 8 dereferenceable(30) %72, ptr noundef nonnull @.str.6)
          to label %783 unwind label %804

783:                                              ; preds = %782
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  invoke void @__cxa_end_catch()
          to label %784 unwind label %448

784:                                              ; preds = %730, %740, %783
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #8
  %785 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %786 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %787 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %74, ptr noundef nonnull align 8 dereferenceable(88) %787)
  %788 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %789 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %788)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %73, ptr noundef nonnull align 8 dereferenceable(136) %785, ptr noundef %786, ptr noundef nonnull %74, ptr noundef nonnull align 8 dereferenceable(24) %789, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %790 unwind label %807

790:                                              ; preds = %784
  %791 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull %76, i1 noundef zeroext false)
          to label %792 unwind label %809

792:                                              ; preds = %790
  %793 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  %794 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %795 unwind label %811

795:                                              ; preds = %792
  %796 = load ptr, ptr %794, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #8
  %797 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %798 unwind label %813

798:                                              ; preds = %795
  %799 = load ptr, ptr %797, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %77, ptr noundef nonnull align 8 dereferenceable(30) %799, i32 noundef 439)
          to label %800 unwind label %813

800:                                              ; preds = %798
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %796, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(79) @.str.96, ptr noundef nonnull align 8 dereferenceable(30) %77)
          to label %801 unwind label %813

801:                                              ; preds = %800
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  br label %825

802:                                              ; preds = %774
  %803 = landingpad { ptr, i32 }
          cleanup
  br label %806

804:                                              ; preds = %782, %780, %777
  %805 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  br label %806

806:                                              ; preds = %804, %802
  %.pn225 = phi { ptr, i32 } [ %805, %804 ], [ %803, %802 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

807:                                              ; preds = %784
  %808 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  br label %2804

809:                                              ; preds = %790
  %810 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %2804

811:                                              ; preds = %792
  %812 = landingpad { ptr, i32 }
          catch ptr null
  br label %815

813:                                              ; preds = %800, %798, %795
  %814 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  br label %815

815:                                              ; preds = %813, %811
  %.pn227 = phi { ptr, i32 } [ %814, %813 ], [ %812, %811 ]
  %.3484 = extractvalue { ptr, i32 } %.pn227, 0
  %816 = call ptr @__cxa_begin_catch(ptr %.3484) #8
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %818 unwind label %836

818:                                              ; preds = %815
  %819 = load ptr, ptr %817, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #8
  %820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %821 unwind label %838

821:                                              ; preds = %818
  %822 = load ptr, ptr %820, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef nonnull align 8 dereferenceable(30) %822, i32 noundef 439)
          to label %823 unwind label %838

823:                                              ; preds = %821
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %819, ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef nonnull @.str.97)
          to label %824 unwind label %838

824:                                              ; preds = %823
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  invoke void @__cxa_end_catch()
          to label %825 unwind label %448

825:                                              ; preds = %824, %801
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull %80)
          to label %826 unwind label %841

826:                                              ; preds = %825
  %827 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  %828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %829 unwind label %843

829:                                              ; preds = %826
  %830 = load ptr, ptr %828, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #8
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %832 unwind label %845

832:                                              ; preds = %829
  %833 = load ptr, ptr %831, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull align 8 dereferenceable(30) %833, i32 noundef 441)
          to label %834 unwind label %845

834:                                              ; preds = %832
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %830, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(160) @.str.98, ptr noundef nonnull align 8 dereferenceable(30) %81)
          to label %835 unwind label %845

835:                                              ; preds = %834
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  br label %857

836:                                              ; preds = %815
  %837 = landingpad { ptr, i32 }
          cleanup
  br label %840

838:                                              ; preds = %823, %821, %818
  %839 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  br label %840

840:                                              ; preds = %838, %836
  %.pn228 = phi { ptr, i32 } [ %839, %838 ], [ %837, %836 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

841:                                              ; preds = %825
  %842 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  br label %2804

843:                                              ; preds = %826
  %844 = landingpad { ptr, i32 }
          catch ptr null
  br label %847

845:                                              ; preds = %834, %832, %829
  %846 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  br label %847

847:                                              ; preds = %845, %843
  %.pn230 = phi { ptr, i32 } [ %846, %845 ], [ %844, %843 ]
  %.3686 = extractvalue { ptr, i32 } %.pn230, 0
  %848 = call ptr @__cxa_begin_catch(ptr %.3686) #8
  %849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %850 unwind label %887

850:                                              ; preds = %847
  %851 = load ptr, ptr %849, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #8
  %852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %853 unwind label %889

853:                                              ; preds = %850
  %854 = load ptr, ptr %852, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %82, ptr noundef nonnull align 8 dereferenceable(30) %854, i32 noundef 441)
          to label %855 unwind label %889

855:                                              ; preds = %853
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %851, ptr noundef nonnull align 8 dereferenceable(30) %82, ptr noundef nonnull @.str.99)
          to label %856 unwind label %889

856:                                              ; preds = %855
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  invoke void @__cxa_end_catch()
          to label %857 unwind label %448

857:                                              ; preds = %856, %835
  %858 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %859 = load ptr, ptr %858, align 8, !tbaa !5
  %860 = getelementptr inbounds i8, ptr %859, i64 40
  %861 = load ptr, ptr %860, align 8
  invoke void %861(ptr noundef nonnull align 8 dereferenceable(96) %858)
          to label %862 unwind label %448

862:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull @.str.55)
          to label %863 unwind label %892

863:                                              ; preds = %862
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.82)
          to label %864 unwind label %894

864:                                              ; preds = %863
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.100)
          to label %865 unwind label %896

865:                                              ; preds = %864
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.101)
          to label %866 unwind label %898

866:                                              ; preds = %865
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str)
          to label %867 unwind label %900

867:                                              ; preds = %866
  %868 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.44)
          to label %869 unwind label %906

869:                                              ; preds = %867
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str)
          to label %870 unwind label %908

870:                                              ; preds = %869
  %871 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  %872 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %873 unwind label %911

873:                                              ; preds = %870
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %874 unwind label %913

874:                                              ; preds = %873
  %875 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull %92)
          to label %876 unwind label %915

876:                                              ; preds = %874
  %877 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %875)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br i1 %877, label %933, label %878

878:                                              ; preds = %876
  %879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %880 unwind label %919

880:                                              ; preds = %878
  %881 = load ptr, ptr %879, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #8
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %883 unwind label %921

883:                                              ; preds = %880
  %884 = load ptr, ptr %882, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %94, ptr noundef nonnull align 8 dereferenceable(30) %884, i32 noundef 455)
          to label %885 unwind label %921

885:                                              ; preds = %883
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %881, ptr noundef nonnull align 8 dereferenceable(30) %94, ptr noundef nonnull @.str.5)
          to label %886 unwind label %921

886:                                              ; preds = %885
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  br label %933

887:                                              ; preds = %847
  %888 = landingpad { ptr, i32 }
          cleanup
  br label %891

889:                                              ; preds = %855, %853, %850
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #8
  br label %891

891:                                              ; preds = %889, %887
  %.pn231 = phi { ptr, i32 } [ %890, %889 ], [ %888, %887 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

892:                                              ; preds = %862
  %893 = landingpad { ptr, i32 }
          cleanup
  br label %905

894:                                              ; preds = %863
  %895 = landingpad { ptr, i32 }
          cleanup
  br label %904

896:                                              ; preds = %864
  %897 = landingpad { ptr, i32 }
          cleanup
  br label %903

898:                                              ; preds = %865
  %899 = landingpad { ptr, i32 }
          cleanup
  br label %902

900:                                              ; preds = %866
  %901 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %902

902:                                              ; preds = %900, %898
  %.pn233 = phi { ptr, i32 } [ %901, %900 ], [ %899, %898 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %903

903:                                              ; preds = %902, %896
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %902 ], [ %897, %896 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %904

904:                                              ; preds = %903, %894
  %.pn233.pn.pn = phi { ptr, i32 } [ %.pn233.pn, %903 ], [ %895, %894 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %905

905:                                              ; preds = %904, %892
  %.pn233.pn.pn.pn = phi { ptr, i32 } [ %.pn233.pn.pn, %904 ], [ %893, %892 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  br label %2804

906:                                              ; preds = %867
  %907 = landingpad { ptr, i32 }
          cleanup
  br label %910

908:                                              ; preds = %869
  %909 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %910

910:                                              ; preds = %908, %906
  %.pn238 = phi { ptr, i32 } [ %909, %908 ], [ %907, %906 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  br label %2804

911:                                              ; preds = %870
  %912 = landingpad { ptr, i32 }
          catch ptr null
  br label %918

913:                                              ; preds = %873
  %914 = landingpad { ptr, i32 }
          catch ptr null
  br label %917

915:                                              ; preds = %874
  %916 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %917

917:                                              ; preds = %915, %913
  %.pn240 = phi { ptr, i32 } [ %916, %915 ], [ %914, %913 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %918

918:                                              ; preds = %917, %911
  %.pn240.pn = phi { ptr, i32 } [ %.pn240, %917 ], [ %912, %911 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br label %923

919:                                              ; preds = %878
  %920 = landingpad { ptr, i32 }
          catch ptr null
  br label %923

921:                                              ; preds = %885, %883, %880
  %922 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  br label %923

923:                                              ; preds = %921, %919, %918
  %.pn241 = phi { ptr, i32 } [ %922, %921 ], [ %920, %919 ], [ %.pn240.pn, %918 ]
  %.4595 = extractvalue { ptr, i32 } %.pn241, 0
  %924 = call ptr @__cxa_begin_catch(ptr %.4595) #8
  %925 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %926 unwind label %951

926:                                              ; preds = %923
  %927 = load ptr, ptr %925, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #8
  %928 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %929 unwind label %953

929:                                              ; preds = %926
  %930 = load ptr, ptr %928, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %95, ptr noundef nonnull align 8 dereferenceable(30) %930, i32 noundef 455)
          to label %931 unwind label %953

931:                                              ; preds = %929
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %927, ptr noundef nonnull align 8 dereferenceable(30) %95, ptr noundef nonnull @.str.6)
          to label %932 unwind label %953

932:                                              ; preds = %931
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  invoke void @__cxa_end_catch()
          to label %933 unwind label %448

933:                                              ; preds = %876, %886, %932
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %96) #8
  %934 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %935 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %936 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %97, ptr noundef nonnull align 8 dereferenceable(88) %936)
  %937 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %938 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %937)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %96, ptr noundef nonnull align 8 dereferenceable(136) %934, ptr noundef %935, ptr noundef nonnull %97, ptr noundef nonnull align 8 dereferenceable(24) %938, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %939 unwind label %956

939:                                              ; preds = %933
  %940 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %96) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull %99, i1 noundef zeroext false)
          to label %941 unwind label %958

941:                                              ; preds = %939
  %942 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %944 unwind label %960

944:                                              ; preds = %941
  %945 = load ptr, ptr %943, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #8
  %946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %947 unwind label %962

947:                                              ; preds = %944
  %948 = load ptr, ptr %946, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %100, ptr noundef nonnull align 8 dereferenceable(30) %948, i32 noundef 458)
          to label %949 unwind label %962

949:                                              ; preds = %947
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA94_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %945, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(94) @.str.102, ptr noundef nonnull align 8 dereferenceable(30) %100)
          to label %950 unwind label %962

950:                                              ; preds = %949
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #8
  br label %974

951:                                              ; preds = %923
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %955

953:                                              ; preds = %931, %929, %926
  %954 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  br label %955

955:                                              ; preds = %953, %951
  %.pn242 = phi { ptr, i32 } [ %954, %953 ], [ %952, %951 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

956:                                              ; preds = %933
  %957 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  br label %2804

958:                                              ; preds = %939
  %959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  br label %2804

960:                                              ; preds = %941
  %961 = landingpad { ptr, i32 }
          catch ptr null
  br label %964

962:                                              ; preds = %949, %947, %944
  %963 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #8
  br label %964

964:                                              ; preds = %962, %960
  %.pn244 = phi { ptr, i32 } [ %963, %962 ], [ %961, %960 ]
  %.4797 = extractvalue { ptr, i32 } %.pn244, 0
  %965 = call ptr @__cxa_begin_catch(ptr %.4797) #8
  %966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %967 unwind label %985

967:                                              ; preds = %964
  %968 = load ptr, ptr %966, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #8
  %969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %970 unwind label %987

970:                                              ; preds = %967
  %971 = load ptr, ptr %969, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef nonnull align 8 dereferenceable(30) %971, i32 noundef 458)
          to label %972 unwind label %987

972:                                              ; preds = %970
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %968, ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef nonnull @.str.103)
          to label %973 unwind label %987

973:                                              ; preds = %972
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #8
  invoke void @__cxa_end_catch()
          to label %974 unwind label %448

974:                                              ; preds = %973, %950
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull %103)
          to label %975 unwind label %990

975:                                              ; preds = %974
  %976 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  %977 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %978 unwind label %992

978:                                              ; preds = %975
  %979 = load ptr, ptr %977, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #8
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %981 unwind label %994

981:                                              ; preds = %978
  %982 = load ptr, ptr %980, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef nonnull align 8 dereferenceable(30) %982, i32 noundef 460)
          to label %983 unwind label %994

983:                                              ; preds = %981
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %979, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(252) @.str.104, ptr noundef nonnull align 8 dereferenceable(30) %104)
          to label %984 unwind label %994

984:                                              ; preds = %983
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  br label %1006

985:                                              ; preds = %964
  %986 = landingpad { ptr, i32 }
          cleanup
  br label %989

987:                                              ; preds = %972, %970, %967
  %988 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #8
  br label %989

989:                                              ; preds = %987, %985
  %.pn245 = phi { ptr, i32 } [ %988, %987 ], [ %986, %985 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

990:                                              ; preds = %974
  %991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #8
  br label %2804

992:                                              ; preds = %975
  %993 = landingpad { ptr, i32 }
          catch ptr null
  br label %996

994:                                              ; preds = %983, %981, %978
  %995 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  br label %996

996:                                              ; preds = %994, %992
  %.pn247 = phi { ptr, i32 } [ %995, %994 ], [ %993, %992 ]
  %.4999 = extractvalue { ptr, i32 } %.pn247, 0
  %997 = call ptr @__cxa_begin_catch(ptr %.4999) #8
  %998 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %999 unwind label %1035

999:                                              ; preds = %996
  %1000 = load ptr, ptr %998, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #8
  %1001 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1002 unwind label %1037

1002:                                             ; preds = %999
  %1003 = load ptr, ptr %1001, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull align 8 dereferenceable(30) %1003, i32 noundef 460)
          to label %1004 unwind label %1037

1004:                                             ; preds = %1002
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1000, ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull @.str.105)
          to label %1005 unwind label %1037

1005:                                             ; preds = %1004
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  invoke void @__cxa_end_catch()
          to label %1006 unwind label %448

1006:                                             ; preds = %1005, %984
  %1007 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1008 = load ptr, ptr %1007, align 8, !tbaa !5
  %1009 = getelementptr inbounds i8, ptr %1008, i64 40
  %1010 = load ptr, ptr %1009, align 8
  invoke void %1010(ptr noundef nonnull align 8 dereferenceable(96) %1007)
          to label %1011 unwind label %448

1011:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.55)
          to label %1012 unwind label %1040

1012:                                             ; preds = %1011
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.82)
          to label %1013 unwind label %1042

1013:                                             ; preds = %1012
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @.str.95)
          to label %1014 unwind label %1044

1014:                                             ; preds = %1013
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str)
          to label %1015 unwind label %1046

1015:                                             ; preds = %1014
  %1016 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull @.str.106)
          to label %1017 unwind label %1051

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

1018:                                             ; preds = %1017
  %1019 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #8
  %1020 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1021 unwind label %1056

1021:                                             ; preds = %1018
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1022 unwind label %1058

1022:                                             ; preds = %1021
  %1023 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1020, ptr noundef nonnull %114)
          to label %1024 unwind label %1060

1024:                                             ; preds = %1022
  %1025 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1023)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #8
  br i1 %1025, label %1078, label %1026

1026:                                             ; preds = %1024
  %1027 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1028 unwind label %1064

1028:                                             ; preds = %1026
  %1029 = load ptr, ptr %1027, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #8
  %1030 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1031 unwind label %1066

1031:                                             ; preds = %1028
  %1032 = load ptr, ptr %1030, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %116, ptr noundef nonnull align 8 dereferenceable(30) %1032, i32 noundef 472)
          to label %1033 unwind label %1066

1033:                                             ; preds = %1031
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1029, ptr noundef nonnull align 8 dereferenceable(30) %116, ptr noundef nonnull @.str.5)
          to label %1034 unwind label %1066

1034:                                             ; preds = %1033
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #8
  br label %1078

1035:                                             ; preds = %996
  %1036 = landingpad { ptr, i32 }
          cleanup
  br label %1039

1037:                                             ; preds = %1004, %1002, %999
  %1038 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  br label %1039

1039:                                             ; preds = %1037, %1035
  %.pn248 = phi { ptr, i32 } [ %1038, %1037 ], [ %1036, %1035 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1040:                                             ; preds = %1011
  %1041 = landingpad { ptr, i32 }
          cleanup
  br label %1050

1042:                                             ; preds = %1012
  %1043 = landingpad { ptr, i32 }
          cleanup
  br label %1049

1044:                                             ; preds = %1013
  %1045 = landingpad { ptr, i32 }
          cleanup
  br label %1048

1046:                                             ; preds = %1014
  %1047 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %1048

1048:                                             ; preds = %1046, %1044
  %.pn250 = phi { ptr, i32 } [ %1047, %1046 ], [ %1045, %1044 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %1049

1049:                                             ; preds = %1048, %1042
  %.pn250.pn = phi { ptr, i32 } [ %.pn250, %1048 ], [ %1043, %1042 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  br label %1050

1050:                                             ; preds = %1049, %1040
  %.pn250.pn.pn = phi { ptr, i32 } [ %.pn250.pn, %1049 ], [ %1041, %1040 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  br label %2804

1051:                                             ; preds = %1015
  %1052 = landingpad { ptr, i32 }
          cleanup
  br label %1055

1053:                                             ; preds = %1017
  %1054 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %1055

1055:                                             ; preds = %1053, %1051
  %.pn254 = phi { ptr, i32 } [ %1054, %1053 ], [ %1052, %1051 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #8
  br label %2804

1056:                                             ; preds = %1018
  %1057 = landingpad { ptr, i32 }
          catch ptr null
  br label %1063

1058:                                             ; preds = %1021
  %1059 = landingpad { ptr, i32 }
          catch ptr null
  br label %1062

1060:                                             ; preds = %1022
  %1061 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %1062

1062:                                             ; preds = %1060, %1058
  %.pn256 = phi { ptr, i32 } [ %1061, %1060 ], [ %1059, %1058 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %1063

1063:                                             ; preds = %1062, %1056
  %.pn256.pn = phi { ptr, i32 } [ %.pn256, %1062 ], [ %1057, %1056 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #8
  br label %1068

1064:                                             ; preds = %1026
  %1065 = landingpad { ptr, i32 }
          catch ptr null
  br label %1068

1066:                                             ; preds = %1033, %1031, %1028
  %1067 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #8
  br label %1068

1068:                                             ; preds = %1066, %1064, %1063
  %.pn257 = phi { ptr, i32 } [ %1067, %1066 ], [ %1065, %1064 ], [ %.pn256.pn, %1063 ]
  %.57107 = extractvalue { ptr, i32 } %.pn257, 0
  %1069 = call ptr @__cxa_begin_catch(ptr %.57107) #8
  %1070 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1071 unwind label %1096

1071:                                             ; preds = %1068
  %1072 = load ptr, ptr %1070, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #8
  %1073 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1074 unwind label %1098

1074:                                             ; preds = %1071
  %1075 = load ptr, ptr %1073, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %117, ptr noundef nonnull align 8 dereferenceable(30) %1075, i32 noundef 472)
          to label %1076 unwind label %1098

1076:                                             ; preds = %1074
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1072, ptr noundef nonnull align 8 dereferenceable(30) %117, ptr noundef nonnull @.str.6)
          to label %1077 unwind label %1098

1077:                                             ; preds = %1076
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #8
  invoke void @__cxa_end_catch()
          to label %1078 unwind label %448

1078:                                             ; preds = %1024, %1034, %1077
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %118) #8
  %1079 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1080 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1081 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %119, ptr noundef nonnull align 8 dereferenceable(88) %1081)
  %1082 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1083 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1082)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %118, ptr noundef nonnull align 8 dereferenceable(136) %1079, ptr noundef %1080, ptr noundef nonnull %119, ptr noundef nonnull align 8 dereferenceable(24) %1083, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1084 unwind label %1101

1084:                                             ; preds = %1078
  %1085 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %118) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %121, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %120, ptr noundef nonnull %121, i1 noundef zeroext false)
          to label %1086 unwind label %1103

1086:                                             ; preds = %1084
  %1087 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  %1088 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1089 unwind label %1105

1089:                                             ; preds = %1086
  %1090 = load ptr, ptr %1088, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #8
  %1091 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1092 unwind label %1107

1092:                                             ; preds = %1089
  %1093 = load ptr, ptr %1091, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %122, ptr noundef nonnull align 8 dereferenceable(30) %1093, i32 noundef 475)
          to label %1094 unwind label %1107

1094:                                             ; preds = %1092
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1090, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(142) @.str.107, ptr noundef nonnull align 8 dereferenceable(30) %122)
          to label %1095 unwind label %1107

1095:                                             ; preds = %1094
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #8
  br label %1119

1096:                                             ; preds = %1068
  %1097 = landingpad { ptr, i32 }
          cleanup
  br label %1100

1098:                                             ; preds = %1076, %1074, %1071
  %1099 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #8
  br label %1100

1100:                                             ; preds = %1098, %1096
  %.pn258 = phi { ptr, i32 } [ %1099, %1098 ], [ %1097, %1096 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1101:                                             ; preds = %1078
  %1102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #8
  br label %2804

1103:                                             ; preds = %1084
  %1104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  br label %2804

1105:                                             ; preds = %1086
  %1106 = landingpad { ptr, i32 }
          catch ptr null
  br label %1109

1107:                                             ; preds = %1094, %1092, %1089
  %1108 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #8
  br label %1109

1109:                                             ; preds = %1107, %1105
  %.pn260 = phi { ptr, i32 } [ %1108, %1107 ], [ %1106, %1105 ]
  %.59109 = extractvalue { ptr, i32 } %.pn260, 0
  %1110 = call ptr @__cxa_begin_catch(ptr %.59109) #8
  %1111 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1112 unwind label %1130

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %1111, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #8
  %1114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1115 unwind label %1132

1115:                                             ; preds = %1112
  %1116 = load ptr, ptr %1114, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %123, ptr noundef nonnull align 8 dereferenceable(30) %1116, i32 noundef 475)
          to label %1117 unwind label %1132

1117:                                             ; preds = %1115
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1113, ptr noundef nonnull align 8 dereferenceable(30) %123, ptr noundef nonnull @.str.108)
          to label %1118 unwind label %1132

1118:                                             ; preds = %1117
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #8
  invoke void @__cxa_end_catch()
          to label %1119 unwind label %448

1119:                                             ; preds = %1118, %1095
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull %125)
          to label %1120 unwind label %1135

1120:                                             ; preds = %1119
  %1121 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #8
  %1122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1123 unwind label %1137

1123:                                             ; preds = %1120
  %1124 = load ptr, ptr %1122, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #8
  %1125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1126 unwind label %1139

1126:                                             ; preds = %1123
  %1127 = load ptr, ptr %1125, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %126, ptr noundef nonnull align 8 dereferenceable(30) %1127, i32 noundef 477)
          to label %1128 unwind label %1139

1128:                                             ; preds = %1126
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1124, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(227) @.str.109, ptr noundef nonnull align 8 dereferenceable(30) %126)
          to label %1129 unwind label %1139

1129:                                             ; preds = %1128
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  br label %1151

1130:                                             ; preds = %1109
  %1131 = landingpad { ptr, i32 }
          cleanup
  br label %1134

1132:                                             ; preds = %1117, %1115, %1112
  %1133 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #8
  br label %1134

1134:                                             ; preds = %1132, %1130
  %.pn261 = phi { ptr, i32 } [ %1133, %1132 ], [ %1131, %1130 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1135:                                             ; preds = %1119
  %1136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #8
  br label %2804

1137:                                             ; preds = %1120
  %1138 = landingpad { ptr, i32 }
          catch ptr null
  br label %1141

1139:                                             ; preds = %1128, %1126, %1123
  %1140 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  br label %1141

1141:                                             ; preds = %1139, %1137
  %.pn263 = phi { ptr, i32 } [ %1140, %1139 ], [ %1138, %1137 ]
  %.61111 = extractvalue { ptr, i32 } %.pn263, 0
  %1142 = call ptr @__cxa_begin_catch(ptr %.61111) #8
  %1143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1144 unwind label %1180

1144:                                             ; preds = %1141
  %1145 = load ptr, ptr %1143, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #8
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1147 unwind label %1182

1147:                                             ; preds = %1144
  %1148 = load ptr, ptr %1146, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %127, ptr noundef nonnull align 8 dereferenceable(30) %1148, i32 noundef 477)
          to label %1149 unwind label %1182

1149:                                             ; preds = %1147
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1145, ptr noundef nonnull align 8 dereferenceable(30) %127, ptr noundef nonnull @.str.110)
          to label %1150 unwind label %1182

1150:                                             ; preds = %1149
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #8
  invoke void @__cxa_end_catch()
          to label %1151 unwind label %448

1151:                                             ; preds = %1150, %1129
  %1152 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1153 = load ptr, ptr %1152, align 8, !tbaa !5
  %1154 = getelementptr inbounds i8, ptr %1153, i64 40
  %1155 = load ptr, ptr %1154, align 8
  invoke void %1155(ptr noundef nonnull align 8 dereferenceable(96) %1152)
          to label %1156 unwind label %448

1156:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull @.str.111)
          to label %1157 unwind label %1185

1157:                                             ; preds = %1156
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.82)
          to label %1158 unwind label %1187

1158:                                             ; preds = %1157
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.95)
          to label %1159 unwind label %1189

1159:                                             ; preds = %1158
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull @.str)
          to label %1160 unwind label %1191

1160:                                             ; preds = %1159
  %1161 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.112)
          to label %1162 unwind label %1196

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

1163:                                             ; preds = %1162
  %1164 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  %1165 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1166 unwind label %1201

1166:                                             ; preds = %1163
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1167 unwind label %1203

1167:                                             ; preds = %1166
  %1168 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1165, ptr noundef nonnull %136)
          to label %1169 unwind label %1205

1169:                                             ; preds = %1167
  %1170 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1168)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #8
  br i1 %1170, label %1223, label %1171

1171:                                             ; preds = %1169
  %1172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1173 unwind label %1209

1173:                                             ; preds = %1171
  %1174 = load ptr, ptr %1172, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #8
  %1175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1176 unwind label %1211

1176:                                             ; preds = %1173
  %1177 = load ptr, ptr %1175, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull align 8 dereferenceable(30) %1177, i32 noundef 489)
          to label %1178 unwind label %1211

1178:                                             ; preds = %1176
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1174, ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull @.str.5)
          to label %1179 unwind label %1211

1179:                                             ; preds = %1178
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #8
  br label %1223

1180:                                             ; preds = %1141
  %1181 = landingpad { ptr, i32 }
          cleanup
  br label %1184

1182:                                             ; preds = %1149, %1147, %1144
  %1183 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #8
  br label %1184

1184:                                             ; preds = %1182, %1180
  %.pn264 = phi { ptr, i32 } [ %1183, %1182 ], [ %1181, %1180 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1185:                                             ; preds = %1156
  %1186 = landingpad { ptr, i32 }
          cleanup
  br label %1195

1187:                                             ; preds = %1157
  %1188 = landingpad { ptr, i32 }
          cleanup
  br label %1194

1189:                                             ; preds = %1158
  %1190 = landingpad { ptr, i32 }
          cleanup
  br label %1193

1191:                                             ; preds = %1159
  %1192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  br label %1193

1193:                                             ; preds = %1191, %1189
  %.pn266 = phi { ptr, i32 } [ %1192, %1191 ], [ %1190, %1189 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  br label %1194

1194:                                             ; preds = %1193, %1187
  %.pn266.pn = phi { ptr, i32 } [ %.pn266, %1193 ], [ %1188, %1187 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  br label %1195

1195:                                             ; preds = %1194, %1185
  %.pn266.pn.pn = phi { ptr, i32 } [ %.pn266.pn, %1194 ], [ %1186, %1185 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #8
  br label %2804

1196:                                             ; preds = %1160
  %1197 = landingpad { ptr, i32 }
          cleanup
  br label %1200

1198:                                             ; preds = %1162
  %1199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %1200

1200:                                             ; preds = %1198, %1196
  %.pn270 = phi { ptr, i32 } [ %1199, %1198 ], [ %1197, %1196 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  br label %2804

1201:                                             ; preds = %1163
  %1202 = landingpad { ptr, i32 }
          catch ptr null
  br label %1208

1203:                                             ; preds = %1166
  %1204 = landingpad { ptr, i32 }
          catch ptr null
  br label %1207

1205:                                             ; preds = %1167
  %1206 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  br label %1207

1207:                                             ; preds = %1205, %1203
  %.pn272 = phi { ptr, i32 } [ %1206, %1205 ], [ %1204, %1203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1208

1208:                                             ; preds = %1207, %1201
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %1207 ], [ %1202, %1201 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #8
  br label %1213

1209:                                             ; preds = %1171
  %1210 = landingpad { ptr, i32 }
          catch ptr null
  br label %1213

1211:                                             ; preds = %1178, %1176, %1173
  %1212 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #8
  br label %1213

1213:                                             ; preds = %1211, %1209, %1208
  %.pn273 = phi { ptr, i32 } [ %1212, %1211 ], [ %1210, %1209 ], [ %.pn272.pn, %1208 ]
  %.69119 = extractvalue { ptr, i32 } %.pn273, 0
  %1214 = call ptr @__cxa_begin_catch(ptr %.69119) #8
  %1215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1216 unwind label %1241

1216:                                             ; preds = %1213
  %1217 = load ptr, ptr %1215, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #8
  %1218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1219 unwind label %1243

1219:                                             ; preds = %1216
  %1220 = load ptr, ptr %1218, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull align 8 dereferenceable(30) %1220, i32 noundef 489)
          to label %1221 unwind label %1243

1221:                                             ; preds = %1219
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1217, ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull @.str.6)
          to label %1222 unwind label %1243

1222:                                             ; preds = %1221
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #8
  invoke void @__cxa_end_catch()
          to label %1223 unwind label %448

1223:                                             ; preds = %1169, %1179, %1222
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %140) #8
  %1224 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1225 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1226 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %141, ptr noundef nonnull align 8 dereferenceable(88) %1226)
  %1227 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1228 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1227)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %140, ptr noundef nonnull align 8 dereferenceable(136) %1224, ptr noundef %1225, ptr noundef nonnull %141, ptr noundef nonnull align 8 dereferenceable(24) %1228, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1229 unwind label %1246

1229:                                             ; preds = %1223
  %1230 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %140) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %140) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %140) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr noundef nonnull %143, i1 noundef zeroext false)
          to label %1231 unwind label %1248

1231:                                             ; preds = %1229
  %1232 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  %1233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1234 unwind label %1250

1234:                                             ; preds = %1231
  %1235 = load ptr, ptr %1233, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #8
  %1236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1237 unwind label %1252

1237:                                             ; preds = %1234
  %1238 = load ptr, ptr %1236, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %144, ptr noundef nonnull align 8 dereferenceable(30) %1238, i32 noundef 492)
          to label %1239 unwind label %1252

1239:                                             ; preds = %1237
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1235, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(149) @.str.113, ptr noundef nonnull align 8 dereferenceable(30) %144)
          to label %1240 unwind label %1252

1240:                                             ; preds = %1239
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #8
  br label %1264

1241:                                             ; preds = %1213
  %1242 = landingpad { ptr, i32 }
          cleanup
  br label %1245

1243:                                             ; preds = %1221, %1219, %1216
  %1244 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #8
  br label %1245

1245:                                             ; preds = %1243, %1241
  %.pn274 = phi { ptr, i32 } [ %1244, %1243 ], [ %1242, %1241 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1246:                                             ; preds = %1223
  %1247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %140) #8
  br label %2804

1248:                                             ; preds = %1229
  %1249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  br label %2804

1250:                                             ; preds = %1231
  %1251 = landingpad { ptr, i32 }
          catch ptr null
  br label %1254

1252:                                             ; preds = %1239, %1237, %1234
  %1253 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #8
  br label %1254

1254:                                             ; preds = %1252, %1250
  %.pn276 = phi { ptr, i32 } [ %1253, %1252 ], [ %1251, %1250 ]
  %.71121 = extractvalue { ptr, i32 } %.pn276, 0
  %1255 = call ptr @__cxa_begin_catch(ptr %.71121) #8
  %1256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1257 unwind label %1275

1257:                                             ; preds = %1254
  %1258 = load ptr, ptr %1256, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %145) #8
  %1259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1260 unwind label %1277

1260:                                             ; preds = %1257
  %1261 = load ptr, ptr %1259, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %145, ptr noundef nonnull align 8 dereferenceable(30) %1261, i32 noundef 492)
          to label %1262 unwind label %1277

1262:                                             ; preds = %1260
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1258, ptr noundef nonnull align 8 dereferenceable(30) %145, ptr noundef nonnull @.str.114)
          to label %1263 unwind label %1277

1263:                                             ; preds = %1262
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #8
  invoke void @__cxa_end_catch()
          to label %1264 unwind label %448

1264:                                             ; preds = %1263, %1240
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr noundef nonnull %147)
          to label %1265 unwind label %1280

1265:                                             ; preds = %1264
  %1266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #8
  %1267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1268 unwind label %1282

1268:                                             ; preds = %1265
  %1269 = load ptr, ptr %1267, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #8
  %1270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1271 unwind label %1284

1271:                                             ; preds = %1268
  %1272 = load ptr, ptr %1270, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %148, ptr noundef nonnull align 8 dereferenceable(30) %1272, i32 noundef 494)
          to label %1273 unwind label %1284

1273:                                             ; preds = %1271
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1269, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(252) @.str.115, ptr noundef nonnull align 8 dereferenceable(30) %148)
          to label %1274 unwind label %1284

1274:                                             ; preds = %1273
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #8
  br label %1296

1275:                                             ; preds = %1254
  %1276 = landingpad { ptr, i32 }
          cleanup
  br label %1279

1277:                                             ; preds = %1262, %1260, %1257
  %1278 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #8
  br label %1279

1279:                                             ; preds = %1277, %1275
  %.pn277 = phi { ptr, i32 } [ %1278, %1277 ], [ %1276, %1275 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1280:                                             ; preds = %1264
  %1281 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #8
  br label %2804

1282:                                             ; preds = %1265
  %1283 = landingpad { ptr, i32 }
          catch ptr null
  br label %1286

1284:                                             ; preds = %1273, %1271, %1268
  %1285 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #8
  br label %1286

1286:                                             ; preds = %1284, %1282
  %.pn279 = phi { ptr, i32 } [ %1285, %1284 ], [ %1283, %1282 ]
  %.73123 = extractvalue { ptr, i32 } %.pn279, 0
  %1287 = call ptr @__cxa_begin_catch(ptr %.73123) #8
  %1288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1289 unwind label %1326

1289:                                             ; preds = %1286
  %1290 = load ptr, ptr %1288, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #8
  %1291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1292 unwind label %1328

1292:                                             ; preds = %1289
  %1293 = load ptr, ptr %1291, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %149, ptr noundef nonnull align 8 dereferenceable(30) %1293, i32 noundef 494)
          to label %1294 unwind label %1328

1294:                                             ; preds = %1292
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1290, ptr noundef nonnull align 8 dereferenceable(30) %149, ptr noundef nonnull @.str.116)
          to label %1295 unwind label %1328

1295:                                             ; preds = %1294
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #8
  invoke void @__cxa_end_catch()
          to label %1296 unwind label %448

1296:                                             ; preds = %1295, %1274
  %1297 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1298 = load ptr, ptr %1297, align 8, !tbaa !5
  %1299 = getelementptr inbounds i8, ptr %1298, i64 40
  %1300 = load ptr, ptr %1299, align 8
  invoke void %1300(ptr noundef nonnull align 8 dereferenceable(96) %1297)
          to label %1301 unwind label %448

1301:                                             ; preds = %1296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %153) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.111)
          to label %1302 unwind label %1331

1302:                                             ; preds = %1301
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.82)
          to label %1303 unwind label %1333

1303:                                             ; preds = %1302
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %152, ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull @.str.117)
          to label %1304 unwind label %1335

1304:                                             ; preds = %1303
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @.str.118)
          to label %1305 unwind label %1337

1305:                                             ; preds = %1304
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str)
          to label %1306 unwind label %1339

1306:                                             ; preds = %1305
  %1307 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %157) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.119)
          to label %1308 unwind label %1345

1308:                                             ; preds = %1306
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull @.str)
          to label %1309 unwind label %1347

1309:                                             ; preds = %1308
  %1310 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #8
  %1311 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %160, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1312 unwind label %1350

1312:                                             ; preds = %1309
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1313 unwind label %1352

1313:                                             ; preds = %1312
  %1314 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1311, ptr noundef nonnull %159)
          to label %1315 unwind label %1354

1315:                                             ; preds = %1313
  %1316 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1314)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #8
  br i1 %1316, label %1372, label %1317

1317:                                             ; preds = %1315
  %1318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1319 unwind label %1358

1319:                                             ; preds = %1317
  %1320 = load ptr, ptr %1318, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #8
  %1321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1322 unwind label %1360

1322:                                             ; preds = %1319
  %1323 = load ptr, ptr %1321, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef nonnull align 8 dereferenceable(30) %1323, i32 noundef 507)
          to label %1324 unwind label %1360

1324:                                             ; preds = %1322
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1320, ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef nonnull @.str.5)
          to label %1325 unwind label %1360

1325:                                             ; preds = %1324
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #8
  br label %1372

1326:                                             ; preds = %1286
  %1327 = landingpad { ptr, i32 }
          cleanup
  br label %1330

1328:                                             ; preds = %1294, %1292, %1289
  %1329 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #8
  br label %1330

1330:                                             ; preds = %1328, %1326
  %.pn280 = phi { ptr, i32 } [ %1329, %1328 ], [ %1327, %1326 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1331:                                             ; preds = %1301
  %1332 = landingpad { ptr, i32 }
          cleanup
  br label %1344

1333:                                             ; preds = %1302
  %1334 = landingpad { ptr, i32 }
          cleanup
  br label %1343

1335:                                             ; preds = %1303
  %1336 = landingpad { ptr, i32 }
          cleanup
  br label %1342

1337:                                             ; preds = %1304
  %1338 = landingpad { ptr, i32 }
          cleanup
  br label %1341

1339:                                             ; preds = %1305
  %1340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  br label %1341

1341:                                             ; preds = %1339, %1337
  %.pn282 = phi { ptr, i32 } [ %1340, %1339 ], [ %1338, %1337 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  br label %1342

1342:                                             ; preds = %1341, %1335
  %.pn282.pn = phi { ptr, i32 } [ %.pn282, %1341 ], [ %1336, %1335 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  br label %1343

1343:                                             ; preds = %1342, %1333
  %.pn282.pn.pn = phi { ptr, i32 } [ %.pn282.pn, %1342 ], [ %1334, %1333 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  br label %1344

1344:                                             ; preds = %1343, %1331
  %.pn282.pn.pn.pn = phi { ptr, i32 } [ %.pn282.pn.pn, %1343 ], [ %1332, %1331 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #8
  br label %2804

1345:                                             ; preds = %1306
  %1346 = landingpad { ptr, i32 }
          cleanup
  br label %1349

1347:                                             ; preds = %1308
  %1348 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  br label %1349

1349:                                             ; preds = %1347, %1345
  %.pn287 = phi { ptr, i32 } [ %1348, %1347 ], [ %1346, %1345 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #8
  br label %2804

1350:                                             ; preds = %1309
  %1351 = landingpad { ptr, i32 }
          catch ptr null
  br label %1357

1352:                                             ; preds = %1312
  %1353 = landingpad { ptr, i32 }
          catch ptr null
  br label %1356

1354:                                             ; preds = %1313
  %1355 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  br label %1356

1356:                                             ; preds = %1354, %1352
  %.pn289 = phi { ptr, i32 } [ %1355, %1354 ], [ %1353, %1352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  br label %1357

1357:                                             ; preds = %1356, %1350
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %1356 ], [ %1351, %1350 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #8
  br label %1362

1358:                                             ; preds = %1317
  %1359 = landingpad { ptr, i32 }
          catch ptr null
  br label %1362

1360:                                             ; preds = %1324, %1322, %1319
  %1361 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #8
  br label %1362

1362:                                             ; preds = %1360, %1358, %1357
  %.pn290 = phi { ptr, i32 } [ %1361, %1360 ], [ %1359, %1358 ], [ %.pn289.pn, %1357 ]
  %.82132 = extractvalue { ptr, i32 } %.pn290, 0
  %1363 = call ptr @__cxa_begin_catch(ptr %.82132) #8
  %1364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1365 unwind label %1390

1365:                                             ; preds = %1362
  %1366 = load ptr, ptr %1364, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #8
  %1367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1368 unwind label %1392

1368:                                             ; preds = %1365
  %1369 = load ptr, ptr %1367, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %162, ptr noundef nonnull align 8 dereferenceable(30) %1369, i32 noundef 507)
          to label %1370 unwind label %1392

1370:                                             ; preds = %1368
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1366, ptr noundef nonnull align 8 dereferenceable(30) %162, ptr noundef nonnull @.str.6)
          to label %1371 unwind label %1392

1371:                                             ; preds = %1370
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #8
  invoke void @__cxa_end_catch()
          to label %1372 unwind label %448

1372:                                             ; preds = %1315, %1325, %1371
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %163) #8
  %1373 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1374 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1375 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %164, ptr noundef nonnull align 8 dereferenceable(88) %1375)
  %1376 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1377 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1376)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %163, ptr noundef nonnull align 8 dereferenceable(136) %1373, ptr noundef %1374, ptr noundef nonnull %164, ptr noundef nonnull align 8 dereferenceable(24) %1377, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1378 unwind label %1395

1378:                                             ; preds = %1372
  %1379 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %163) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %166, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull %166, i1 noundef zeroext false)
          to label %1380 unwind label %1397

1380:                                             ; preds = %1378
  %1381 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  %1382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1383 unwind label %1399

1383:                                             ; preds = %1380
  %1384 = load ptr, ptr %1382, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #8
  %1385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1386 unwind label %1401

1386:                                             ; preds = %1383
  %1387 = load ptr, ptr %1385, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %167, ptr noundef nonnull align 8 dereferenceable(30) %1387, i32 noundef 510)
          to label %1388 unwind label %1401

1388:                                             ; preds = %1386
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1384, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(218) @.str.120, ptr noundef nonnull align 8 dereferenceable(30) %167)
          to label %1389 unwind label %1401

1389:                                             ; preds = %1388
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #8
  br label %1413

1390:                                             ; preds = %1362
  %1391 = landingpad { ptr, i32 }
          cleanup
  br label %1394

1392:                                             ; preds = %1370, %1368, %1365
  %1393 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #8
  br label %1394

1394:                                             ; preds = %1392, %1390
  %.pn291 = phi { ptr, i32 } [ %1393, %1392 ], [ %1391, %1390 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1395:                                             ; preds = %1372
  %1396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #8
  br label %2804

1397:                                             ; preds = %1378
  %1398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  br label %2804

1399:                                             ; preds = %1380
  %1400 = landingpad { ptr, i32 }
          catch ptr null
  br label %1403

1401:                                             ; preds = %1388, %1386, %1383
  %1402 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #8
  br label %1403

1403:                                             ; preds = %1401, %1399
  %.pn293 = phi { ptr, i32 } [ %1402, %1401 ], [ %1400, %1399 ]
  %.84134 = extractvalue { ptr, i32 } %.pn293, 0
  %1404 = call ptr @__cxa_begin_catch(ptr %.84134) #8
  %1405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1406 unwind label %1424

1406:                                             ; preds = %1403
  %1407 = load ptr, ptr %1405, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %168) #8
  %1408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1409 unwind label %1426

1409:                                             ; preds = %1406
  %1410 = load ptr, ptr %1408, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %168, ptr noundef nonnull align 8 dereferenceable(30) %1410, i32 noundef 510)
          to label %1411 unwind label %1426

1411:                                             ; preds = %1409
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1407, ptr noundef nonnull align 8 dereferenceable(30) %168, ptr noundef nonnull @.str.121)
          to label %1412 unwind label %1426

1412:                                             ; preds = %1411
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #8
  invoke void @__cxa_end_catch()
          to label %1413 unwind label %448

1413:                                             ; preds = %1412, %1389
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %170, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %169, ptr noundef nonnull %170)
          to label %1414 unwind label %1429

1414:                                             ; preds = %1413
  %1415 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #8
  %1416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1417 unwind label %1431

1417:                                             ; preds = %1414
  %1418 = load ptr, ptr %1416, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #8
  %1419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1420 unwind label %1433

1420:                                             ; preds = %1417
  %1421 = load ptr, ptr %1419, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %171, ptr noundef nonnull align 8 dereferenceable(30) %1421, i32 noundef 512)
          to label %1422 unwind label %1433

1422:                                             ; preds = %1420
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1418, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(420) @.str.122, ptr noundef nonnull align 8 dereferenceable(30) %171)
          to label %1423 unwind label %1433

1423:                                             ; preds = %1422
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #8
  br label %1445

1424:                                             ; preds = %1403
  %1425 = landingpad { ptr, i32 }
          cleanup
  br label %1428

1426:                                             ; preds = %1411, %1409, %1406
  %1427 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #8
  br label %1428

1428:                                             ; preds = %1426, %1424
  %.pn294 = phi { ptr, i32 } [ %1427, %1426 ], [ %1425, %1424 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1429:                                             ; preds = %1413
  %1430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #8
  br label %2804

1431:                                             ; preds = %1414
  %1432 = landingpad { ptr, i32 }
          catch ptr null
  br label %1435

1433:                                             ; preds = %1422, %1420, %1417
  %1434 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #8
  br label %1435

1435:                                             ; preds = %1433, %1431
  %.pn296 = phi { ptr, i32 } [ %1434, %1433 ], [ %1432, %1431 ]
  %.86136 = extractvalue { ptr, i32 } %.pn296, 0
  %1436 = call ptr @__cxa_begin_catch(ptr %.86136) #8
  %1437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1438 unwind label %1475

1438:                                             ; preds = %1435
  %1439 = load ptr, ptr %1437, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #8
  %1440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1441 unwind label %1477

1441:                                             ; preds = %1438
  %1442 = load ptr, ptr %1440, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %172, ptr noundef nonnull align 8 dereferenceable(30) %1442, i32 noundef 512)
          to label %1443 unwind label %1477

1443:                                             ; preds = %1441
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1439, ptr noundef nonnull align 8 dereferenceable(30) %172, ptr noundef nonnull @.str.123)
          to label %1444 unwind label %1477

1444:                                             ; preds = %1443
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #8
  invoke void @__cxa_end_catch()
          to label %1445 unwind label %448

1445:                                             ; preds = %1444, %1423
  %1446 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1447 = load ptr, ptr %1446, align 8, !tbaa !5
  %1448 = getelementptr inbounds i8, ptr %1447, i64 40
  %1449 = load ptr, ptr %1448, align 8
  invoke void %1449(ptr noundef nonnull align 8 dereferenceable(96) %1446)
          to label %1450 unwind label %448

1450:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %173) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %177) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @.str.124)
          to label %1451 unwind label %1480

1451:                                             ; preds = %1450
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %176, ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull @.str.82)
          to label %1452 unwind label %1482

1452:                                             ; preds = %1451
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %175, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @.str.125)
          to label %1453 unwind label %1484

1453:                                             ; preds = %1452
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %174, ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef nonnull @.str.126)
          to label %1454 unwind label %1486

1454:                                             ; preds = %1453
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %173, ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull @.str)
          to label %1455 unwind label %1488

1455:                                             ; preds = %1454
  %1456 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %173) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %181) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %180, ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull @.str.44)
          to label %1457 unwind label %1494

1457:                                             ; preds = %1455
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %179, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str)
          to label %1458 unwind label %1496

1458:                                             ; preds = %1457
  %1459 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #8
  %1460 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %183, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1461 unwind label %1499

1461:                                             ; preds = %1458
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1462 unwind label %1501

1462:                                             ; preds = %1461
  %1463 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1460, ptr noundef nonnull %182)
          to label %1464 unwind label %1503

1464:                                             ; preds = %1462
  %1465 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1463)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #8
  br i1 %1465, label %1521, label %1466

1466:                                             ; preds = %1464
  %1467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1468 unwind label %1507

1468:                                             ; preds = %1466
  %1469 = load ptr, ptr %1467, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #8
  %1470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1471 unwind label %1509

1471:                                             ; preds = %1468
  %1472 = load ptr, ptr %1470, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %184, ptr noundef nonnull align 8 dereferenceable(30) %1472, i32 noundef 525)
          to label %1473 unwind label %1509

1473:                                             ; preds = %1471
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1469, ptr noundef nonnull align 8 dereferenceable(30) %184, ptr noundef nonnull @.str.5)
          to label %1474 unwind label %1509

1474:                                             ; preds = %1473
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #8
  br label %1521

1475:                                             ; preds = %1435
  %1476 = landingpad { ptr, i32 }
          cleanup
  br label %1479

1477:                                             ; preds = %1443, %1441, %1438
  %1478 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #8
  br label %1479

1479:                                             ; preds = %1477, %1475
  %.pn297 = phi { ptr, i32 } [ %1478, %1477 ], [ %1476, %1475 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1480:                                             ; preds = %1450
  %1481 = landingpad { ptr, i32 }
          cleanup
  br label %1493

1482:                                             ; preds = %1451
  %1483 = landingpad { ptr, i32 }
          cleanup
  br label %1492

1484:                                             ; preds = %1452
  %1485 = landingpad { ptr, i32 }
          cleanup
  br label %1491

1486:                                             ; preds = %1453
  %1487 = landingpad { ptr, i32 }
          cleanup
  br label %1490

1488:                                             ; preds = %1454
  %1489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #8
  br label %1490

1490:                                             ; preds = %1488, %1486
  %.pn299 = phi { ptr, i32 } [ %1489, %1488 ], [ %1487, %1486 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #8
  br label %1491

1491:                                             ; preds = %1490, %1484
  %.pn299.pn = phi { ptr, i32 } [ %.pn299, %1490 ], [ %1485, %1484 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  br label %1492

1492:                                             ; preds = %1491, %1482
  %.pn299.pn.pn = phi { ptr, i32 } [ %.pn299.pn, %1491 ], [ %1483, %1482 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %1493

1493:                                             ; preds = %1492, %1480
  %.pn299.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn, %1492 ], [ %1481, %1480 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #8
  br label %2804

1494:                                             ; preds = %1455
  %1495 = landingpad { ptr, i32 }
          cleanup
  br label %1498

1496:                                             ; preds = %1457
  %1497 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  br label %1498

1498:                                             ; preds = %1496, %1494
  %.pn304 = phi { ptr, i32 } [ %1497, %1496 ], [ %1495, %1494 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #8
  br label %2804

1499:                                             ; preds = %1458
  %1500 = landingpad { ptr, i32 }
          catch ptr null
  br label %1506

1501:                                             ; preds = %1461
  %1502 = landingpad { ptr, i32 }
          catch ptr null
  br label %1505

1503:                                             ; preds = %1462
  %1504 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  br label %1505

1505:                                             ; preds = %1503, %1501
  %.pn306 = phi { ptr, i32 } [ %1504, %1503 ], [ %1502, %1501 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  br label %1506

1506:                                             ; preds = %1505, %1499
  %.pn306.pn = phi { ptr, i32 } [ %.pn306, %1505 ], [ %1500, %1499 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #8
  br label %1511

1507:                                             ; preds = %1466
  %1508 = landingpad { ptr, i32 }
          catch ptr null
  br label %1511

1509:                                             ; preds = %1473, %1471, %1468
  %1510 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #8
  br label %1511

1511:                                             ; preds = %1509, %1507, %1506
  %.pn307 = phi { ptr, i32 } [ %1510, %1509 ], [ %1508, %1507 ], [ %.pn306.pn, %1506 ]
  %.95145 = extractvalue { ptr, i32 } %.pn307, 0
  %1512 = call ptr @__cxa_begin_catch(ptr %.95145) #8
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1514 unwind label %1539

1514:                                             ; preds = %1511
  %1515 = load ptr, ptr %1513, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #8
  %1516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1517 unwind label %1541

1517:                                             ; preds = %1514
  %1518 = load ptr, ptr %1516, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %185, ptr noundef nonnull align 8 dereferenceable(30) %1518, i32 noundef 525)
          to label %1519 unwind label %1541

1519:                                             ; preds = %1517
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1515, ptr noundef nonnull align 8 dereferenceable(30) %185, ptr noundef nonnull @.str.6)
          to label %1520 unwind label %1541

1520:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #8
  invoke void @__cxa_end_catch()
          to label %1521 unwind label %448

1521:                                             ; preds = %1464, %1474, %1520
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %186) #8
  %1522 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1523 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1524 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %187, ptr noundef nonnull align 8 dereferenceable(88) %1524)
  %1525 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1526 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1525)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %186, ptr noundef nonnull align 8 dereferenceable(136) %1522, ptr noundef %1523, ptr noundef nonnull %187, ptr noundef nonnull align 8 dereferenceable(24) %1526, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1527 unwind label %1544

1527:                                             ; preds = %1521
  %1528 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %186) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %186) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %186) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %188) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull %189, i1 noundef zeroext false)
          to label %1529 unwind label %1546

1529:                                             ; preds = %1527
  %1530 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #8
  %1531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1532 unwind label %1548

1532:                                             ; preds = %1529
  %1533 = load ptr, ptr %1531, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #8
  %1534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1535 unwind label %1550

1535:                                             ; preds = %1532
  %1536 = load ptr, ptr %1534, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %190, ptr noundef nonnull align 8 dereferenceable(30) %1536, i32 noundef 528)
          to label %1537 unwind label %1550

1537:                                             ; preds = %1535
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1533, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(5) @.str.7, ptr noundef nonnull align 8 dereferenceable(30) %190)
          to label %1538 unwind label %1550

1538:                                             ; preds = %1537
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #8
  br label %1562

1539:                                             ; preds = %1511
  %1540 = landingpad { ptr, i32 }
          cleanup
  br label %1543

1541:                                             ; preds = %1519, %1517, %1514
  %1542 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #8
  br label %1543

1543:                                             ; preds = %1541, %1539
  %.pn308 = phi { ptr, i32 } [ %1542, %1541 ], [ %1540, %1539 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1544:                                             ; preds = %1521
  %1545 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %186) #8
  br label %2804

1546:                                             ; preds = %1527
  %1547 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #8
  br label %2804

1548:                                             ; preds = %1529
  %1549 = landingpad { ptr, i32 }
          catch ptr null
  br label %1552

1550:                                             ; preds = %1537, %1535, %1532
  %1551 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #8
  br label %1552

1552:                                             ; preds = %1550, %1548
  %.pn310 = phi { ptr, i32 } [ %1551, %1550 ], [ %1549, %1548 ]
  %.97147 = extractvalue { ptr, i32 } %.pn310, 0
  %1553 = call ptr @__cxa_begin_catch(ptr %.97147) #8
  %1554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1555 unwind label %1573

1555:                                             ; preds = %1552
  %1556 = load ptr, ptr %1554, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %191) #8
  %1557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1558 unwind label %1575

1558:                                             ; preds = %1555
  %1559 = load ptr, ptr %1557, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %191, ptr noundef nonnull align 8 dereferenceable(30) %1559, i32 noundef 528)
          to label %1560 unwind label %1575

1560:                                             ; preds = %1558
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1556, ptr noundef nonnull align 8 dereferenceable(30) %191, ptr noundef nonnull @.str.27)
          to label %1561 unwind label %1575

1561:                                             ; preds = %1560
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #8
  invoke void @__cxa_end_catch()
          to label %1562 unwind label %448

1562:                                             ; preds = %1561, %1538
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %192, ptr noundef nonnull %193)
          to label %1563 unwind label %1578

1563:                                             ; preds = %1562
  %1564 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #8
  %1565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1566 unwind label %1580

1566:                                             ; preds = %1563
  %1567 = load ptr, ptr %1565, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #8
  %1568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1569 unwind label %1582

1569:                                             ; preds = %1566
  %1570 = load ptr, ptr %1568, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %194, ptr noundef nonnull align 8 dereferenceable(30) %1570, i32 noundef 530)
          to label %1571 unwind label %1582

1571:                                             ; preds = %1569
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1567, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(5) @.str.7, ptr noundef nonnull align 8 dereferenceable(30) %194)
          to label %1572 unwind label %1582

1572:                                             ; preds = %1571
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #8
  br label %1594

1573:                                             ; preds = %1552
  %1574 = landingpad { ptr, i32 }
          cleanup
  br label %1577

1575:                                             ; preds = %1560, %1558, %1555
  %1576 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #8
  br label %1577

1577:                                             ; preds = %1575, %1573
  %.pn311 = phi { ptr, i32 } [ %1576, %1575 ], [ %1574, %1573 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1578:                                             ; preds = %1562
  %1579 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #8
  br label %2804

1580:                                             ; preds = %1563
  %1581 = landingpad { ptr, i32 }
          catch ptr null
  br label %1584

1582:                                             ; preds = %1571, %1569, %1566
  %1583 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #8
  br label %1584

1584:                                             ; preds = %1582, %1580
  %.pn313 = phi { ptr, i32 } [ %1583, %1582 ], [ %1581, %1580 ]
  %.99149 = extractvalue { ptr, i32 } %.pn313, 0
  %1585 = call ptr @__cxa_begin_catch(ptr %.99149) #8
  %1586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1587 unwind label %1626

1587:                                             ; preds = %1584
  %1588 = load ptr, ptr %1586, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #8
  %1589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1590 unwind label %1628

1590:                                             ; preds = %1587
  %1591 = load ptr, ptr %1589, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %195, ptr noundef nonnull align 8 dereferenceable(30) %1591, i32 noundef 530)
          to label %1592 unwind label %1628

1592:                                             ; preds = %1590
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1588, ptr noundef nonnull align 8 dereferenceable(30) %195, ptr noundef nonnull @.str.28)
          to label %1593 unwind label %1628

1593:                                             ; preds = %1592
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #8
  invoke void @__cxa_end_catch()
          to label %1594 unwind label %448

1594:                                             ; preds = %1593, %1572
  %1595 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1596 = load ptr, ptr %1595, align 8, !tbaa !5
  %1597 = getelementptr inbounds i8, ptr %1596, i64 40
  %1598 = load ptr, ptr %1597, align 8
  invoke void %1598(ptr noundef nonnull align 8 dereferenceable(96) %1595)
          to label %1599 unwind label %448

1599:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %196) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %197) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %199) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %201) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %202, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.111)
          to label %1600 unwind label %1631

1600:                                             ; preds = %1599
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull @.str.127)
          to label %1601 unwind label %1633

1601:                                             ; preds = %1600
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %200, ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull @.str.82)
          to label %1602 unwind label %1635

1602:                                             ; preds = %1601
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %199, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.128)
          to label %1603 unwind label %1637

1603:                                             ; preds = %1602
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %198, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull @.str.129)
          to label %1604 unwind label %1639

1604:                                             ; preds = %1603
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %197, ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.130)
          to label %1605 unwind label %1641

1605:                                             ; preds = %1604
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %196, ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull @.str)
          to label %1606 unwind label %1643

1606:                                             ; preds = %1605
  %1607 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %196) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %196) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %206) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %205, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull @.str.44)
          to label %1608 unwind label %1651

1608:                                             ; preds = %1606
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull @.str)
          to label %1609 unwind label %1653

1609:                                             ; preds = %1608
  %1610 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %204) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #8
  %1611 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1612 unwind label %1656

1612:                                             ; preds = %1609
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1613 unwind label %1658

1613:                                             ; preds = %1612
  %1614 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1611, ptr noundef nonnull %207)
          to label %1615 unwind label %1660

1615:                                             ; preds = %1613
  %1616 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1614)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #8
  br i1 %1616, label %1678, label %1617

1617:                                             ; preds = %1615
  %1618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1619 unwind label %1664

1619:                                             ; preds = %1617
  %1620 = load ptr, ptr %1618, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %209) #8
  %1621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1622 unwind label %1666

1622:                                             ; preds = %1619
  %1623 = load ptr, ptr %1621, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %209, ptr noundef nonnull align 8 dereferenceable(30) %1623, i32 noundef 547)
          to label %1624 unwind label %1666

1624:                                             ; preds = %1622
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1620, ptr noundef nonnull align 8 dereferenceable(30) %209, ptr noundef nonnull @.str.5)
          to label %1625 unwind label %1666

1625:                                             ; preds = %1624
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #8
  br label %1678

1626:                                             ; preds = %1584
  %1627 = landingpad { ptr, i32 }
          cleanup
  br label %1630

1628:                                             ; preds = %1592, %1590, %1587
  %1629 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #8
  br label %1630

1630:                                             ; preds = %1628, %1626
  %.pn314 = phi { ptr, i32 } [ %1629, %1628 ], [ %1627, %1626 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1631:                                             ; preds = %1599
  %1632 = landingpad { ptr, i32 }
          cleanup
  br label %1650

1633:                                             ; preds = %1600
  %1634 = landingpad { ptr, i32 }
          cleanup
  br label %1649

1635:                                             ; preds = %1601
  %1636 = landingpad { ptr, i32 }
          cleanup
  br label %1648

1637:                                             ; preds = %1602
  %1638 = landingpad { ptr, i32 }
          cleanup
  br label %1647

1639:                                             ; preds = %1603
  %1640 = landingpad { ptr, i32 }
          cleanup
  br label %1646

1641:                                             ; preds = %1604
  %1642 = landingpad { ptr, i32 }
          cleanup
  br label %1645

1643:                                             ; preds = %1605
  %1644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #8
  br label %1645

1645:                                             ; preds = %1643, %1641
  %.pn316 = phi { ptr, i32 } [ %1644, %1643 ], [ %1642, %1641 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  br label %1646

1646:                                             ; preds = %1645, %1639
  %.pn316.pn = phi { ptr, i32 } [ %.pn316, %1645 ], [ %1640, %1639 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  br label %1647

1647:                                             ; preds = %1646, %1637
  %.pn316.pn.pn = phi { ptr, i32 } [ %.pn316.pn, %1646 ], [ %1638, %1637 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #8
  br label %1648

1648:                                             ; preds = %1647, %1635
  %.pn316.pn.pn.pn = phi { ptr, i32 } [ %.pn316.pn.pn, %1647 ], [ %1636, %1635 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  br label %1649

1649:                                             ; preds = %1648, %1633
  %.pn316.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn316.pn.pn.pn, %1648 ], [ %1634, %1633 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  br label %1650

1650:                                             ; preds = %1649, %1631
  %.pn316.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn316.pn.pn.pn.pn, %1649 ], [ %1632, %1631 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %196) #8
  br label %2804

1651:                                             ; preds = %1606
  %1652 = landingpad { ptr, i32 }
          cleanup
  br label %1655

1653:                                             ; preds = %1608
  %1654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #8
  br label %1655

1655:                                             ; preds = %1653, %1651
  %.pn323 = phi { ptr, i32 } [ %1654, %1653 ], [ %1652, %1651 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #8
  br label %2804

1656:                                             ; preds = %1609
  %1657 = landingpad { ptr, i32 }
          catch ptr null
  br label %1663

1658:                                             ; preds = %1612
  %1659 = landingpad { ptr, i32 }
          catch ptr null
  br label %1662

1660:                                             ; preds = %1613
  %1661 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  br label %1662

1662:                                             ; preds = %1660, %1658
  %.pn325 = phi { ptr, i32 } [ %1661, %1660 ], [ %1659, %1658 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  br label %1663

1663:                                             ; preds = %1662, %1656
  %.pn325.pn = phi { ptr, i32 } [ %.pn325, %1662 ], [ %1657, %1656 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #8
  br label %1668

1664:                                             ; preds = %1617
  %1665 = landingpad { ptr, i32 }
          catch ptr null
  br label %1668

1666:                                             ; preds = %1624, %1622, %1619
  %1667 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #8
  br label %1668

1668:                                             ; preds = %1666, %1664, %1663
  %.pn326 = phi { ptr, i32 } [ %1667, %1666 ], [ %1665, %1664 ], [ %.pn325.pn, %1663 ]
  %.110160 = extractvalue { ptr, i32 } %.pn326, 0
  %1669 = call ptr @__cxa_begin_catch(ptr %.110160) #8
  %1670 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1671 unwind label %1696

1671:                                             ; preds = %1668
  %1672 = load ptr, ptr %1670, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #8
  %1673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1674 unwind label %1698

1674:                                             ; preds = %1671
  %1675 = load ptr, ptr %1673, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %210, ptr noundef nonnull align 8 dereferenceable(30) %1675, i32 noundef 547)
          to label %1676 unwind label %1698

1676:                                             ; preds = %1674
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1672, ptr noundef nonnull align 8 dereferenceable(30) %210, ptr noundef nonnull @.str.6)
          to label %1677 unwind label %1698

1677:                                             ; preds = %1676
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #8
  invoke void @__cxa_end_catch()
          to label %1678 unwind label %448

1678:                                             ; preds = %1615, %1625, %1677
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %211) #8
  %1679 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1680 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1681 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %212, ptr noundef nonnull align 8 dereferenceable(88) %1681)
  %1682 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1683 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1682)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %211, ptr noundef nonnull align 8 dereferenceable(136) %1679, ptr noundef %1680, ptr noundef nonnull %212, ptr noundef nonnull align 8 dereferenceable(24) %1683, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1684 unwind label %1701

1684:                                             ; preds = %1678
  %1685 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %211) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %211) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %212) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %211) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %213) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %213, ptr noundef nonnull %214, i1 noundef zeroext false)
          to label %1686 unwind label %1703

1686:                                             ; preds = %1684
  %1687 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %213) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %214) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #8
  %1688 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1689 unwind label %1705

1689:                                             ; preds = %1686
  %1690 = load ptr, ptr %1688, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %215) #8
  %1691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1692 unwind label %1707

1692:                                             ; preds = %1689
  %1693 = load ptr, ptr %1691, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %215, ptr noundef nonnull align 8 dereferenceable(30) %1693, i32 noundef 550)
          to label %1694 unwind label %1707

1694:                                             ; preds = %1692
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA82_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1690, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(82) @.str.131, ptr noundef nonnull align 8 dereferenceable(30) %215)
          to label %1695 unwind label %1707

1695:                                             ; preds = %1694
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %215) #8
  br label %1719

1696:                                             ; preds = %1668
  %1697 = landingpad { ptr, i32 }
          cleanup
  br label %1700

1698:                                             ; preds = %1676, %1674, %1671
  %1699 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #8
  br label %1700

1700:                                             ; preds = %1698, %1696
  %.pn327 = phi { ptr, i32 } [ %1699, %1698 ], [ %1697, %1696 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1701:                                             ; preds = %1678
  %1702 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %212) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %211) #8
  br label %2804

1703:                                             ; preds = %1684
  %1704 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %214) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #8
  br label %2804

1705:                                             ; preds = %1686
  %1706 = landingpad { ptr, i32 }
          catch ptr null
  br label %1709

1707:                                             ; preds = %1694, %1692, %1689
  %1708 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %215) #8
  br label %1709

1709:                                             ; preds = %1707, %1705
  %.pn329 = phi { ptr, i32 } [ %1708, %1707 ], [ %1706, %1705 ]
  %.112162 = extractvalue { ptr, i32 } %.pn329, 0
  %1710 = call ptr @__cxa_begin_catch(ptr %.112162) #8
  %1711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1712 unwind label %1730

1712:                                             ; preds = %1709
  %1713 = load ptr, ptr %1711, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #8
  %1714 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1715 unwind label %1732

1715:                                             ; preds = %1712
  %1716 = load ptr, ptr %1714, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %216, ptr noundef nonnull align 8 dereferenceable(30) %1716, i32 noundef 550)
          to label %1717 unwind label %1732

1717:                                             ; preds = %1715
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1713, ptr noundef nonnull align 8 dereferenceable(30) %216, ptr noundef nonnull @.str.132)
          to label %1718 unwind label %1732

1718:                                             ; preds = %1717
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #8
  invoke void @__cxa_end_catch()
          to label %1719 unwind label %448

1719:                                             ; preds = %1718, %1695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %217) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %217, ptr noundef nonnull %218)
          to label %1720 unwind label %1735

1720:                                             ; preds = %1719
  %1721 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %217) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #8
  %1722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1723 unwind label %1737

1723:                                             ; preds = %1720
  %1724 = load ptr, ptr %1722, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #8
  %1725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1726 unwind label %1739

1726:                                             ; preds = %1723
  %1727 = load ptr, ptr %1725, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %219, ptr noundef nonnull align 8 dereferenceable(30) %1727, i32 noundef 552)
          to label %1728 unwind label %1739

1728:                                             ; preds = %1726
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA338_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1724, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(338) @.str.133, ptr noundef nonnull align 8 dereferenceable(30) %219)
          to label %1729 unwind label %1739

1729:                                             ; preds = %1728
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #8
  br label %1751

1730:                                             ; preds = %1709
  %1731 = landingpad { ptr, i32 }
          cleanup
  br label %1734

1732:                                             ; preds = %1717, %1715, %1712
  %1733 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #8
  br label %1734

1734:                                             ; preds = %1732, %1730
  %.pn330 = phi { ptr, i32 } [ %1733, %1732 ], [ %1731, %1730 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1735:                                             ; preds = %1719
  %1736 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #8
  br label %2804

1737:                                             ; preds = %1720
  %1738 = landingpad { ptr, i32 }
          catch ptr null
  br label %1741

1739:                                             ; preds = %1728, %1726, %1723
  %1740 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #8
  br label %1741

1741:                                             ; preds = %1739, %1737
  %.pn332 = phi { ptr, i32 } [ %1740, %1739 ], [ %1738, %1737 ]
  %.114164 = extractvalue { ptr, i32 } %.pn332, 0
  %1742 = call ptr @__cxa_begin_catch(ptr %.114164) #8
  %1743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1744 unwind label %1783

1744:                                             ; preds = %1741
  %1745 = load ptr, ptr %1743, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #8
  %1746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1747 unwind label %1785

1747:                                             ; preds = %1744
  %1748 = load ptr, ptr %1746, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %220, ptr noundef nonnull align 8 dereferenceable(30) %1748, i32 noundef 552)
          to label %1749 unwind label %1785

1749:                                             ; preds = %1747
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1745, ptr noundef nonnull align 8 dereferenceable(30) %220, ptr noundef nonnull @.str.134)
          to label %1750 unwind label %1785

1750:                                             ; preds = %1749
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #8
  invoke void @__cxa_end_catch()
          to label %1751 unwind label %448

1751:                                             ; preds = %1750, %1729
  %1752 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1753 = load ptr, ptr %1752, align 8, !tbaa !5
  %1754 = getelementptr inbounds i8, ptr %1753, i64 40
  %1755 = load ptr, ptr %1754, align 8
  invoke void %1755(ptr noundef nonnull align 8 dereferenceable(96) %1752)
          to label %1756 unwind label %448

1756:                                             ; preds = %1751
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %221) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %225) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %227, ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull @.str.111)
          to label %1757 unwind label %1788

1757:                                             ; preds = %1756
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull @.str.135)
          to label %1758 unwind label %1790

1758:                                             ; preds = %1757
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %225, ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull @.str.82)
          to label %1759 unwind label %1792

1759:                                             ; preds = %1758
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull @.str.117)
          to label %1760 unwind label %1794

1760:                                             ; preds = %1759
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %223, ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull @.str.136)
          to label %1761 unwind label %1796

1761:                                             ; preds = %1760
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %222, ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef nonnull @.str.137)
          to label %1762 unwind label %1798

1762:                                             ; preds = %1761
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %221, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull @.str)
          to label %1763 unwind label %1800

1763:                                             ; preds = %1762
  %1764 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %221) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %231) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %230, ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull @.str.119)
          to label %1765 unwind label %1808

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

1766:                                             ; preds = %1765
  %1767 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #8
  %1768 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %233) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %233, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1769 unwind label %1813

1769:                                             ; preds = %1766
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %232, ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1770 unwind label %1815

1770:                                             ; preds = %1769
  %1771 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1768, ptr noundef nonnull %232)
          to label %1772 unwind label %1817

1772:                                             ; preds = %1770
  %1773 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1771)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #8
  br i1 %1773, label %1835, label %1774

1774:                                             ; preds = %1772
  %1775 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1776 unwind label %1821

1776:                                             ; preds = %1774
  %1777 = load ptr, ptr %1775, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %234) #8
  %1778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1779 unwind label %1823

1779:                                             ; preds = %1776
  %1780 = load ptr, ptr %1778, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %234, ptr noundef nonnull align 8 dereferenceable(30) %1780, i32 noundef 567)
          to label %1781 unwind label %1823

1781:                                             ; preds = %1779
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1777, ptr noundef nonnull align 8 dereferenceable(30) %234, ptr noundef nonnull @.str.5)
          to label %1782 unwind label %1823

1782:                                             ; preds = %1781
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #8
  br label %1835

1783:                                             ; preds = %1741
  %1784 = landingpad { ptr, i32 }
          cleanup
  br label %1787

1785:                                             ; preds = %1749, %1747, %1744
  %1786 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #8
  br label %1787

1787:                                             ; preds = %1785, %1783
  %.pn333 = phi { ptr, i32 } [ %1786, %1785 ], [ %1784, %1783 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1788:                                             ; preds = %1756
  %1789 = landingpad { ptr, i32 }
          cleanup
  br label %1807

1790:                                             ; preds = %1757
  %1791 = landingpad { ptr, i32 }
          cleanup
  br label %1806

1792:                                             ; preds = %1758
  %1793 = landingpad { ptr, i32 }
          cleanup
  br label %1805

1794:                                             ; preds = %1759
  %1795 = landingpad { ptr, i32 }
          cleanup
  br label %1804

1796:                                             ; preds = %1760
  %1797 = landingpad { ptr, i32 }
          cleanup
  br label %1803

1798:                                             ; preds = %1761
  %1799 = landingpad { ptr, i32 }
          cleanup
  br label %1802

1800:                                             ; preds = %1762
  %1801 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #8
  br label %1802

1802:                                             ; preds = %1800, %1798
  %.pn335 = phi { ptr, i32 } [ %1801, %1800 ], [ %1799, %1798 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #8
  br label %1803

1803:                                             ; preds = %1802, %1796
  %.pn335.pn = phi { ptr, i32 } [ %.pn335, %1802 ], [ %1797, %1796 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  br label %1804

1804:                                             ; preds = %1803, %1794
  %.pn335.pn.pn = phi { ptr, i32 } [ %.pn335.pn, %1803 ], [ %1795, %1794 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #8
  br label %1805

1805:                                             ; preds = %1804, %1792
  %.pn335.pn.pn.pn = phi { ptr, i32 } [ %.pn335.pn.pn, %1804 ], [ %1793, %1792 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #8
  br label %1806

1806:                                             ; preds = %1805, %1790
  %.pn335.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn335.pn.pn.pn, %1805 ], [ %1791, %1790 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  br label %1807

1807:                                             ; preds = %1806, %1788
  %.pn335.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn335.pn.pn.pn.pn, %1806 ], [ %1789, %1788 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #8
  br label %2804

1808:                                             ; preds = %1763
  %1809 = landingpad { ptr, i32 }
          cleanup
  br label %1812

1810:                                             ; preds = %1765
  %1811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #8
  br label %1812

1812:                                             ; preds = %1810, %1808
  %.pn342 = phi { ptr, i32 } [ %1811, %1810 ], [ %1809, %1808 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #8
  br label %2804

1813:                                             ; preds = %1766
  %1814 = landingpad { ptr, i32 }
          catch ptr null
  br label %1820

1815:                                             ; preds = %1769
  %1816 = landingpad { ptr, i32 }
          catch ptr null
  br label %1819

1817:                                             ; preds = %1770
  %1818 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #8
  br label %1819

1819:                                             ; preds = %1817, %1815
  %.pn344 = phi { ptr, i32 } [ %1818, %1817 ], [ %1816, %1815 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  br label %1820

1820:                                             ; preds = %1819, %1813
  %.pn344.pn = phi { ptr, i32 } [ %.pn344, %1819 ], [ %1814, %1813 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #8
  br label %1825

1821:                                             ; preds = %1774
  %1822 = landingpad { ptr, i32 }
          catch ptr null
  br label %1825

1823:                                             ; preds = %1781, %1779, %1776
  %1824 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #8
  br label %1825

1825:                                             ; preds = %1823, %1821, %1820
  %.pn345 = phi { ptr, i32 } [ %1824, %1823 ], [ %1822, %1821 ], [ %.pn344.pn, %1820 ]
  %.125175 = extractvalue { ptr, i32 } %.pn345, 0
  %1826 = call ptr @__cxa_begin_catch(ptr %.125175) #8
  %1827 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1828 unwind label %1853

1828:                                             ; preds = %1825
  %1829 = load ptr, ptr %1827, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #8
  %1830 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1831 unwind label %1855

1831:                                             ; preds = %1828
  %1832 = load ptr, ptr %1830, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %235, ptr noundef nonnull align 8 dereferenceable(30) %1832, i32 noundef 567)
          to label %1833 unwind label %1855

1833:                                             ; preds = %1831
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1829, ptr noundef nonnull align 8 dereferenceable(30) %235, ptr noundef nonnull @.str.6)
          to label %1834 unwind label %1855

1834:                                             ; preds = %1833
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #8
  invoke void @__cxa_end_catch()
          to label %1835 unwind label %448

1835:                                             ; preds = %1772, %1782, %1834
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %236) #8
  %1836 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1837 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1838 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %237, ptr noundef nonnull align 8 dereferenceable(88) %1838)
  %1839 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1840 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1839)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %236, ptr noundef nonnull align 8 dereferenceable(136) %1836, ptr noundef %1837, ptr noundef nonnull %237, ptr noundef nonnull align 8 dereferenceable(24) %1840, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1841 unwind label %1858

1841:                                             ; preds = %1835
  %1842 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %236) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %236) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %236) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %238) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %239, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %238, ptr noundef nonnull %239, i1 noundef zeroext false)
          to label %1843 unwind label %1860

1843:                                             ; preds = %1841
  %1844 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #8
  %1845 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1846 unwind label %1862

1846:                                             ; preds = %1843
  %1847 = load ptr, ptr %1845, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %240) #8
  %1848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1849 unwind label %1864

1849:                                             ; preds = %1846
  %1850 = load ptr, ptr %1848, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %240, ptr noundef nonnull align 8 dereferenceable(30) %1850, i32 noundef 570)
          to label %1851 unwind label %1864

1851:                                             ; preds = %1849
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1847, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(111) @.str.138, ptr noundef nonnull align 8 dereferenceable(30) %240)
          to label %1852 unwind label %1864

1852:                                             ; preds = %1851
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #8
  br label %1876

1853:                                             ; preds = %1825
  %1854 = landingpad { ptr, i32 }
          cleanup
  br label %1857

1855:                                             ; preds = %1833, %1831, %1828
  %1856 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #8
  br label %1857

1857:                                             ; preds = %1855, %1853
  %.pn346 = phi { ptr, i32 } [ %1856, %1855 ], [ %1854, %1853 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1858:                                             ; preds = %1835
  %1859 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %236) #8
  br label %2804

1860:                                             ; preds = %1841
  %1861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #8
  br label %2804

1862:                                             ; preds = %1843
  %1863 = landingpad { ptr, i32 }
          catch ptr null
  br label %1866

1864:                                             ; preds = %1851, %1849, %1846
  %1865 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #8
  br label %1866

1866:                                             ; preds = %1864, %1862
  %.pn348 = phi { ptr, i32 } [ %1865, %1864 ], [ %1863, %1862 ]
  %.127177 = extractvalue { ptr, i32 } %.pn348, 0
  %1867 = call ptr @__cxa_begin_catch(ptr %.127177) #8
  %1868 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1869 unwind label %1887

1869:                                             ; preds = %1866
  %1870 = load ptr, ptr %1868, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #8
  %1871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1872 unwind label %1889

1872:                                             ; preds = %1869
  %1873 = load ptr, ptr %1871, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %241, ptr noundef nonnull align 8 dereferenceable(30) %1873, i32 noundef 570)
          to label %1874 unwind label %1889

1874:                                             ; preds = %1872
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1870, ptr noundef nonnull align 8 dereferenceable(30) %241, ptr noundef nonnull @.str.139)
          to label %1875 unwind label %1889

1875:                                             ; preds = %1874
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #8
  invoke void @__cxa_end_catch()
          to label %1876 unwind label %448

1876:                                             ; preds = %1875, %1852
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %242) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %242, ptr noundef nonnull %243)
          to label %1877 unwind label %1892

1877:                                             ; preds = %1876
  %1878 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %242) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %243) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #8
  %1879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1880 unwind label %1894

1880:                                             ; preds = %1877
  %1881 = load ptr, ptr %1879, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %244) #8
  %1882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1883 unwind label %1896

1883:                                             ; preds = %1880
  %1884 = load ptr, ptr %1882, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %244, ptr noundef nonnull align 8 dereferenceable(30) %1884, i32 noundef 572)
          to label %1885 unwind label %1896

1885:                                             ; preds = %1883
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1881, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(243) @.str.140, ptr noundef nonnull align 8 dereferenceable(30) %244)
          to label %1886 unwind label %1896

1886:                                             ; preds = %1885
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %244) #8
  br label %1908

1887:                                             ; preds = %1866
  %1888 = landingpad { ptr, i32 }
          cleanup
  br label %1891

1889:                                             ; preds = %1874, %1872, %1869
  %1890 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #8
  br label %1891

1891:                                             ; preds = %1889, %1887
  %.pn349 = phi { ptr, i32 } [ %1890, %1889 ], [ %1888, %1887 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1892:                                             ; preds = %1876
  %1893 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %243) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #8
  br label %2804

1894:                                             ; preds = %1877
  %1895 = landingpad { ptr, i32 }
          catch ptr null
  br label %1898

1896:                                             ; preds = %1885, %1883, %1880
  %1897 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %244) #8
  br label %1898

1898:                                             ; preds = %1896, %1894
  %.pn351 = phi { ptr, i32 } [ %1897, %1896 ], [ %1895, %1894 ]
  %.129179 = extractvalue { ptr, i32 } %.pn351, 0
  %1899 = call ptr @__cxa_begin_catch(ptr %.129179) #8
  %1900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1901 unwind label %1937

1901:                                             ; preds = %1898
  %1902 = load ptr, ptr %1900, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %245) #8
  %1903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1904 unwind label %1939

1904:                                             ; preds = %1901
  %1905 = load ptr, ptr %1903, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %245, ptr noundef nonnull align 8 dereferenceable(30) %1905, i32 noundef 572)
          to label %1906 unwind label %1939

1906:                                             ; preds = %1904
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1902, ptr noundef nonnull align 8 dereferenceable(30) %245, ptr noundef nonnull @.str.141)
          to label %1907 unwind label %1939

1907:                                             ; preds = %1906
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #8
  invoke void @__cxa_end_catch()
          to label %1908 unwind label %448

1908:                                             ; preds = %1907, %1886
  %1909 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1910 = load ptr, ptr %1909, align 8, !tbaa !5
  %1911 = getelementptr inbounds i8, ptr %1910, i64 40
  %1912 = load ptr, ptr %1911, align 8
  invoke void %1912(ptr noundef nonnull align 8 dereferenceable(96) %1909)
          to label %1913 unwind label %448

1913:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %246) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %247) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %249) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %250) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %249, ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull @.str.55)
          to label %1914 unwind label %1942

1914:                                             ; preds = %1913
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %248, ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef nonnull @.str.82)
          to label %1915 unwind label %1944

1915:                                             ; preds = %1914
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %247, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull @.str.142)
          to label %1916 unwind label %1946

1916:                                             ; preds = %1915
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %246, ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull @.str)
          to label %1917 unwind label %1948

1917:                                             ; preds = %1916
  %1918 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %247) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %251) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %252) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %253) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull @.str.44)
          to label %1919 unwind label %1953

1919:                                             ; preds = %1917
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %251, ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef nonnull @.str)
          to label %1920 unwind label %1955

1920:                                             ; preds = %1919
  %1921 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %251) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #8
  %1922 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %255) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %255, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %1923 unwind label %1958

1923:                                             ; preds = %1920
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %254, ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1924 unwind label %1960

1924:                                             ; preds = %1923
  %1925 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1922, ptr noundef nonnull %254)
          to label %1926 unwind label %1962

1926:                                             ; preds = %1924
  %1927 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1925)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #8
  br i1 %1927, label %1980, label %1928

1928:                                             ; preds = %1926
  %1929 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1930 unwind label %1966

1930:                                             ; preds = %1928
  %1931 = load ptr, ptr %1929, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %256) #8
  %1932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1933 unwind label %1968

1933:                                             ; preds = %1930
  %1934 = load ptr, ptr %1932, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %256, ptr noundef nonnull align 8 dereferenceable(30) %1934, i32 noundef 584)
          to label %1935 unwind label %1968

1935:                                             ; preds = %1933
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1931, ptr noundef nonnull align 8 dereferenceable(30) %256, ptr noundef nonnull @.str.5)
          to label %1936 unwind label %1968

1936:                                             ; preds = %1935
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #8
  br label %1980

1937:                                             ; preds = %1898
  %1938 = landingpad { ptr, i32 }
          cleanup
  br label %1941

1939:                                             ; preds = %1906, %1904, %1901
  %1940 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #8
  br label %1941

1941:                                             ; preds = %1939, %1937
  %.pn352 = phi { ptr, i32 } [ %1940, %1939 ], [ %1938, %1937 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

1942:                                             ; preds = %1913
  %1943 = landingpad { ptr, i32 }
          cleanup
  br label %1952

1944:                                             ; preds = %1914
  %1945 = landingpad { ptr, i32 }
          cleanup
  br label %1951

1946:                                             ; preds = %1915
  %1947 = landingpad { ptr, i32 }
          cleanup
  br label %1950

1948:                                             ; preds = %1916
  %1949 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #8
  br label %1950

1950:                                             ; preds = %1948, %1946
  %.pn354 = phi { ptr, i32 } [ %1949, %1948 ], [ %1947, %1946 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #8
  br label %1951

1951:                                             ; preds = %1950, %1944
  %.pn354.pn = phi { ptr, i32 } [ %.pn354, %1950 ], [ %1945, %1944 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  br label %1952

1952:                                             ; preds = %1951, %1942
  %.pn354.pn.pn = phi { ptr, i32 } [ %.pn354.pn, %1951 ], [ %1943, %1942 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %250) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %247) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #8
  br label %2804

1953:                                             ; preds = %1917
  %1954 = landingpad { ptr, i32 }
          cleanup
  br label %1957

1955:                                             ; preds = %1919
  %1956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #8
  br label %1957

1957:                                             ; preds = %1955, %1953
  %.pn358 = phi { ptr, i32 } [ %1956, %1955 ], [ %1954, %1953 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #8
  br label %2804

1958:                                             ; preds = %1920
  %1959 = landingpad { ptr, i32 }
          catch ptr null
  br label %1965

1960:                                             ; preds = %1923
  %1961 = landingpad { ptr, i32 }
          catch ptr null
  br label %1964

1962:                                             ; preds = %1924
  %1963 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #8
  br label %1964

1964:                                             ; preds = %1962, %1960
  %.pn360 = phi { ptr, i32 } [ %1963, %1962 ], [ %1961, %1960 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  br label %1965

1965:                                             ; preds = %1964, %1958
  %.pn360.pn = phi { ptr, i32 } [ %.pn360, %1964 ], [ %1959, %1958 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #8
  br label %1970

1966:                                             ; preds = %1928
  %1967 = landingpad { ptr, i32 }
          catch ptr null
  br label %1970

1968:                                             ; preds = %1935, %1933, %1930
  %1969 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #8
  br label %1970

1970:                                             ; preds = %1968, %1966, %1965
  %.pn361 = phi { ptr, i32 } [ %1969, %1968 ], [ %1967, %1966 ], [ %.pn360.pn, %1965 ]
  %.137 = extractvalue { ptr, i32 } %.pn361, 0
  %1971 = call ptr @__cxa_begin_catch(ptr %.137) #8
  %1972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1973 unwind label %1998

1973:                                             ; preds = %1970
  %1974 = load ptr, ptr %1972, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %257) #8
  %1975 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1976 unwind label %2000

1976:                                             ; preds = %1973
  %1977 = load ptr, ptr %1975, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %257, ptr noundef nonnull align 8 dereferenceable(30) %1977, i32 noundef 584)
          to label %1978 unwind label %2000

1978:                                             ; preds = %1976
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1974, ptr noundef nonnull align 8 dereferenceable(30) %257, ptr noundef nonnull @.str.6)
          to label %1979 unwind label %2000

1979:                                             ; preds = %1978
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #8
  invoke void @__cxa_end_catch()
          to label %1980 unwind label %448

1980:                                             ; preds = %1926, %1936, %1979
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %258) #8
  %1981 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %1982 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %1983 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %259, ptr noundef nonnull align 8 dereferenceable(88) %1983)
  %1984 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %1985 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1984)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %258, ptr noundef nonnull align 8 dereferenceable(136) %1981, ptr noundef %1982, ptr noundef nonnull %259, ptr noundef nonnull align 8 dereferenceable(24) %1985, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1986 unwind label %2003

1986:                                             ; preds = %1980
  %1987 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %258) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %258) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %259) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %258) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %260) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %261, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %260, ptr noundef nonnull %261, i1 noundef zeroext false)
          to label %1988 unwind label %2005

1988:                                             ; preds = %1986
  %1989 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %260) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #8
  %1990 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1991 unwind label %2007

1991:                                             ; preds = %1988
  %1992 = load ptr, ptr %1990, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %262) #8
  %1993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1994 unwind label %2009

1994:                                             ; preds = %1991
  %1995 = load ptr, ptr %1993, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %262, ptr noundef nonnull align 8 dereferenceable(30) %1995, i32 noundef 587)
          to label %1996 unwind label %2009

1996:                                             ; preds = %1994
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1992, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(79) @.str.96, ptr noundef nonnull align 8 dereferenceable(30) %262)
          to label %1997 unwind label %2009

1997:                                             ; preds = %1996
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #8
  br label %2021

1998:                                             ; preds = %1970
  %1999 = landingpad { ptr, i32 }
          cleanup
  br label %2002

2000:                                             ; preds = %1978, %1976, %1973
  %2001 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #8
  br label %2002

2002:                                             ; preds = %2000, %1998
  %.pn362 = phi { ptr, i32 } [ %2001, %2000 ], [ %1999, %1998 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2003:                                             ; preds = %1980
  %2004 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %259) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %258) #8
  br label %2804

2005:                                             ; preds = %1986
  %2006 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #8
  br label %2804

2007:                                             ; preds = %1988
  %2008 = landingpad { ptr, i32 }
          catch ptr null
  br label %2011

2009:                                             ; preds = %1996, %1994, %1991
  %2010 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #8
  br label %2011

2011:                                             ; preds = %2009, %2007
  %.pn364 = phi { ptr, i32 } [ %2010, %2009 ], [ %2008, %2007 ]
  %.139 = extractvalue { ptr, i32 } %.pn364, 0
  %2012 = call ptr @__cxa_begin_catch(ptr %.139) #8
  %2013 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2014 unwind label %2032

2014:                                             ; preds = %2011
  %2015 = load ptr, ptr %2013, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %263) #8
  %2016 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2017 unwind label %2034

2017:                                             ; preds = %2014
  %2018 = load ptr, ptr %2016, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %263, ptr noundef nonnull align 8 dereferenceable(30) %2018, i32 noundef 587)
          to label %2019 unwind label %2034

2019:                                             ; preds = %2017
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2015, ptr noundef nonnull align 8 dereferenceable(30) %263, ptr noundef nonnull @.str.97)
          to label %2020 unwind label %2034

2020:                                             ; preds = %2019
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %263) #8
  invoke void @__cxa_end_catch()
          to label %2021 unwind label %448

2021:                                             ; preds = %2020, %1997
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %264) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %265, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %264, ptr noundef nonnull %265)
          to label %2022 unwind label %2037

2022:                                             ; preds = %2021
  %2023 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %264) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %265) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #8
  %2024 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2025 unwind label %2039

2025:                                             ; preds = %2022
  %2026 = load ptr, ptr %2024, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %266) #8
  %2027 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2028 unwind label %2041

2028:                                             ; preds = %2025
  %2029 = load ptr, ptr %2027, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %266, ptr noundef nonnull align 8 dereferenceable(30) %2029, i32 noundef 589)
          to label %2030 unwind label %2041

2030:                                             ; preds = %2028
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2026, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(160) @.str.98, ptr noundef nonnull align 8 dereferenceable(30) %266)
          to label %2031 unwind label %2041

2031:                                             ; preds = %2030
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %266) #8
  br label %2053

2032:                                             ; preds = %2011
  %2033 = landingpad { ptr, i32 }
          cleanup
  br label %2036

2034:                                             ; preds = %2019, %2017, %2014
  %2035 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %263) #8
  br label %2036

2036:                                             ; preds = %2034, %2032
  %.pn365 = phi { ptr, i32 } [ %2035, %2034 ], [ %2033, %2032 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2037:                                             ; preds = %2021
  %2038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %265) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #8
  br label %2804

2039:                                             ; preds = %2022
  %2040 = landingpad { ptr, i32 }
          catch ptr null
  br label %2043

2041:                                             ; preds = %2030, %2028, %2025
  %2042 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %266) #8
  br label %2043

2043:                                             ; preds = %2041, %2039
  %.pn367 = phi { ptr, i32 } [ %2042, %2041 ], [ %2040, %2039 ]
  %.141 = extractvalue { ptr, i32 } %.pn367, 0
  %2044 = call ptr @__cxa_begin_catch(ptr %.141) #8
  %2045 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2046 unwind label %2082

2046:                                             ; preds = %2043
  %2047 = load ptr, ptr %2045, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %267) #8
  %2048 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2049 unwind label %2084

2049:                                             ; preds = %2046
  %2050 = load ptr, ptr %2048, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %267, ptr noundef nonnull align 8 dereferenceable(30) %2050, i32 noundef 589)
          to label %2051 unwind label %2084

2051:                                             ; preds = %2049
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2047, ptr noundef nonnull align 8 dereferenceable(30) %267, ptr noundef nonnull @.str.99)
          to label %2052 unwind label %2084

2052:                                             ; preds = %2051
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #8
  invoke void @__cxa_end_catch()
          to label %2053 unwind label %448

2053:                                             ; preds = %2052, %2031
  %2054 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2055 = load ptr, ptr %2054, align 8, !tbaa !5
  %2056 = getelementptr inbounds i8, ptr %2055, i64 40
  %2057 = load ptr, ptr %2056, align 8
  invoke void %2057(ptr noundef nonnull align 8 dereferenceable(96) %2054)
          to label %2058 unwind label %448

2058:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %268) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %269) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %270) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %272) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %271, ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef nonnull @.str.55)
          to label %2059 unwind label %2087

2059:                                             ; preds = %2058
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %270, ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.82)
          to label %2060 unwind label %2089

2060:                                             ; preds = %2059
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %269, ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef nonnull @.str.142)
          to label %2061 unwind label %2091

2061:                                             ; preds = %2060
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %268, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull @.str)
          to label %2062 unwind label %2093

2062:                                             ; preds = %2061
  %2063 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %268) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %268) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %273) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %274) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %275) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %274, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull @.str.106)
          to label %2064 unwind label %2098

2064:                                             ; preds = %2062
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %273, ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef nonnull @.str)
          to label %2065 unwind label %2100

2065:                                             ; preds = %2064
  %2066 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %273) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %274) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #8
  %2067 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %277) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %277, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %2068 unwind label %2103

2068:                                             ; preds = %2065
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %276, ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %2069 unwind label %2105

2069:                                             ; preds = %2068
  %2070 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2067, ptr noundef nonnull %276)
          to label %2071 unwind label %2107

2071:                                             ; preds = %2069
  %2072 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2070)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #8
  br i1 %2072, label %2125, label %2073

2073:                                             ; preds = %2071
  %2074 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2075 unwind label %2111

2075:                                             ; preds = %2073
  %2076 = load ptr, ptr %2074, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %278) #8
  %2077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2078 unwind label %2113

2078:                                             ; preds = %2075
  %2079 = load ptr, ptr %2077, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %278, ptr noundef nonnull align 8 dereferenceable(30) %2079, i32 noundef 601)
          to label %2080 unwind label %2113

2080:                                             ; preds = %2078
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2076, ptr noundef nonnull align 8 dereferenceable(30) %278, ptr noundef nonnull @.str.5)
          to label %2081 unwind label %2113

2081:                                             ; preds = %2080
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %278) #8
  br label %2125

2082:                                             ; preds = %2043
  %2083 = landingpad { ptr, i32 }
          cleanup
  br label %2086

2084:                                             ; preds = %2051, %2049, %2046
  %2085 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #8
  br label %2086

2086:                                             ; preds = %2084, %2082
  %.pn368 = phi { ptr, i32 } [ %2085, %2084 ], [ %2083, %2082 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2087:                                             ; preds = %2058
  %2088 = landingpad { ptr, i32 }
          cleanup
  br label %2097

2089:                                             ; preds = %2059
  %2090 = landingpad { ptr, i32 }
          cleanup
  br label %2096

2091:                                             ; preds = %2060
  %2092 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2093:                                             ; preds = %2061
  %2094 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #8
  br label %2095

2095:                                             ; preds = %2093, %2091
  %.pn370 = phi { ptr, i32 } [ %2094, %2093 ], [ %2092, %2091 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #8
  br label %2096

2096:                                             ; preds = %2095, %2089
  %.pn370.pn = phi { ptr, i32 } [ %.pn370, %2095 ], [ %2090, %2089 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #8
  br label %2097

2097:                                             ; preds = %2096, %2087
  %.pn370.pn.pn = phi { ptr, i32 } [ %.pn370.pn, %2096 ], [ %2088, %2087 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %272) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %268) #8
  br label %2804

2098:                                             ; preds = %2062
  %2099 = landingpad { ptr, i32 }
          cleanup
  br label %2102

2100:                                             ; preds = %2064
  %2101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #8
  br label %2102

2102:                                             ; preds = %2100, %2098
  %.pn374 = phi { ptr, i32 } [ %2101, %2100 ], [ %2099, %2098 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %274) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #8
  br label %2804

2103:                                             ; preds = %2065
  %2104 = landingpad { ptr, i32 }
          catch ptr null
  br label %2110

2105:                                             ; preds = %2068
  %2106 = landingpad { ptr, i32 }
          catch ptr null
  br label %2109

2107:                                             ; preds = %2069
  %2108 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  br label %2109

2109:                                             ; preds = %2107, %2105
  %.pn376 = phi { ptr, i32 } [ %2108, %2107 ], [ %2106, %2105 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  br label %2110

2110:                                             ; preds = %2109, %2103
  %.pn376.pn = phi { ptr, i32 } [ %.pn376, %2109 ], [ %2104, %2103 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #8
  br label %2115

2111:                                             ; preds = %2073
  %2112 = landingpad { ptr, i32 }
          catch ptr null
  br label %2115

2113:                                             ; preds = %2080, %2078, %2075
  %2114 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %278) #8
  br label %2115

2115:                                             ; preds = %2113, %2111, %2110
  %.pn377 = phi { ptr, i32 } [ %2114, %2113 ], [ %2112, %2111 ], [ %.pn376.pn, %2110 ]
  %.149 = extractvalue { ptr, i32 } %.pn377, 0
  %2116 = call ptr @__cxa_begin_catch(ptr %.149) #8
  %2117 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2118 unwind label %2143

2118:                                             ; preds = %2115
  %2119 = load ptr, ptr %2117, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %279) #8
  %2120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2121 unwind label %2145

2121:                                             ; preds = %2118
  %2122 = load ptr, ptr %2120, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %279, ptr noundef nonnull align 8 dereferenceable(30) %2122, i32 noundef 601)
          to label %2123 unwind label %2145

2123:                                             ; preds = %2121
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2119, ptr noundef nonnull align 8 dereferenceable(30) %279, ptr noundef nonnull @.str.6)
          to label %2124 unwind label %2145

2124:                                             ; preds = %2123
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %279) #8
  invoke void @__cxa_end_catch()
          to label %2125 unwind label %448

2125:                                             ; preds = %2071, %2081, %2124
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %280) #8
  %2126 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %2127 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %2128 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %281, ptr noundef nonnull align 8 dereferenceable(88) %2128)
  %2129 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2130 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2129)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %280, ptr noundef nonnull align 8 dereferenceable(136) %2126, ptr noundef %2127, ptr noundef nonnull %281, ptr noundef nonnull align 8 dereferenceable(24) %2130, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2131 unwind label %2148

2131:                                             ; preds = %2125
  %2132 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %280) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %280) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %280) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %282) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %283, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %282, ptr noundef nonnull %283, i1 noundef zeroext false)
          to label %2133 unwind label %2150

2133:                                             ; preds = %2131
  %2134 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %282) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %283) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #8
  %2135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2136 unwind label %2152

2136:                                             ; preds = %2133
  %2137 = load ptr, ptr %2135, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %284) #8
  %2138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2139 unwind label %2154

2139:                                             ; preds = %2136
  %2140 = load ptr, ptr %2138, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %284, ptr noundef nonnull align 8 dereferenceable(30) %2140, i32 noundef 604)
          to label %2141 unwind label %2154

2141:                                             ; preds = %2139
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2137, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(142) @.str.107, ptr noundef nonnull align 8 dereferenceable(30) %284)
          to label %2142 unwind label %2154

2142:                                             ; preds = %2141
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #8
  br label %2166

2143:                                             ; preds = %2115
  %2144 = landingpad { ptr, i32 }
          cleanup
  br label %2147

2145:                                             ; preds = %2123, %2121, %2118
  %2146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %279) #8
  br label %2147

2147:                                             ; preds = %2145, %2143
  %.pn378 = phi { ptr, i32 } [ %2146, %2145 ], [ %2144, %2143 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2148:                                             ; preds = %2125
  %2149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %280) #8
  br label %2804

2150:                                             ; preds = %2131
  %2151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %283) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #8
  br label %2804

2152:                                             ; preds = %2133
  %2153 = landingpad { ptr, i32 }
          catch ptr null
  br label %2156

2154:                                             ; preds = %2141, %2139, %2136
  %2155 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #8
  br label %2156

2156:                                             ; preds = %2154, %2152
  %.pn380 = phi { ptr, i32 } [ %2155, %2154 ], [ %2153, %2152 ]
  %.151183 = extractvalue { ptr, i32 } %.pn380, 0
  %2157 = call ptr @__cxa_begin_catch(ptr %.151183) #8
  %2158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2159 unwind label %2177

2159:                                             ; preds = %2156
  %2160 = load ptr, ptr %2158, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %285) #8
  %2161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2162 unwind label %2179

2162:                                             ; preds = %2159
  %2163 = load ptr, ptr %2161, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %285, ptr noundef nonnull align 8 dereferenceable(30) %2163, i32 noundef 604)
          to label %2164 unwind label %2179

2164:                                             ; preds = %2162
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2160, ptr noundef nonnull align 8 dereferenceable(30) %285, ptr noundef nonnull @.str.108)
          to label %2165 unwind label %2179

2165:                                             ; preds = %2164
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %285) #8
  invoke void @__cxa_end_catch()
          to label %2166 unwind label %448

2166:                                             ; preds = %2165, %2142
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %286) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %287, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %286, ptr noundef nonnull %287)
          to label %2167 unwind label %2182

2167:                                             ; preds = %2166
  %2168 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %286) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %287) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %286) #8
  %2169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2170 unwind label %2184

2170:                                             ; preds = %2167
  %2171 = load ptr, ptr %2169, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %288) #8
  %2172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2173 unwind label %2186

2173:                                             ; preds = %2170
  %2174 = load ptr, ptr %2172, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %288, ptr noundef nonnull align 8 dereferenceable(30) %2174, i32 noundef 606)
          to label %2175 unwind label %2186

2175:                                             ; preds = %2173
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2171, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(227) @.str.109, ptr noundef nonnull align 8 dereferenceable(30) %288)
          to label %2176 unwind label %2186

2176:                                             ; preds = %2175
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %288) #8
  br label %2198

2177:                                             ; preds = %2156
  %2178 = landingpad { ptr, i32 }
          cleanup
  br label %2181

2179:                                             ; preds = %2164, %2162, %2159
  %2180 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %285) #8
  br label %2181

2181:                                             ; preds = %2179, %2177
  %.pn381 = phi { ptr, i32 } [ %2180, %2179 ], [ %2178, %2177 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2182:                                             ; preds = %2166
  %2183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %287) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %286) #8
  br label %2804

2184:                                             ; preds = %2167
  %2185 = landingpad { ptr, i32 }
          catch ptr null
  br label %2188

2186:                                             ; preds = %2175, %2173, %2170
  %2187 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %288) #8
  br label %2188

2188:                                             ; preds = %2186, %2184
  %.pn383 = phi { ptr, i32 } [ %2187, %2186 ], [ %2185, %2184 ]
  %.153 = extractvalue { ptr, i32 } %.pn383, 0
  %2189 = call ptr @__cxa_begin_catch(ptr %.153) #8
  %2190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2191 unwind label %2227

2191:                                             ; preds = %2188
  %2192 = load ptr, ptr %2190, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %289) #8
  %2193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2194 unwind label %2229

2194:                                             ; preds = %2191
  %2195 = load ptr, ptr %2193, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %289, ptr noundef nonnull align 8 dereferenceable(30) %2195, i32 noundef 606)
          to label %2196 unwind label %2229

2196:                                             ; preds = %2194
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2192, ptr noundef nonnull align 8 dereferenceable(30) %289, ptr noundef nonnull @.str.110)
          to label %2197 unwind label %2229

2197:                                             ; preds = %2196
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #8
  invoke void @__cxa_end_catch()
          to label %2198 unwind label %448

2198:                                             ; preds = %2197, %2176
  %2199 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2200 = load ptr, ptr %2199, align 8, !tbaa !5
  %2201 = getelementptr inbounds i8, ptr %2200, i64 40
  %2202 = load ptr, ptr %2201, align 8
  invoke void %2202(ptr noundef nonnull align 8 dereferenceable(96) %2199)
          to label %2203 unwind label %448

2203:                                             ; preds = %2198
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %290) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %291) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %292) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %293) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %294) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %293, ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef nonnull @.str.111)
          to label %2204 unwind label %2232

2204:                                             ; preds = %2203
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %292, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull @.str.82)
          to label %2205 unwind label %2234

2205:                                             ; preds = %2204
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %291, ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull @.str.142)
          to label %2206 unwind label %2236

2206:                                             ; preds = %2205
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %290, ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull @.str)
          to label %2207 unwind label %2238

2207:                                             ; preds = %2206
  %2208 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %290) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %291) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %295) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %296) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull @.str.112)
          to label %2209 unwind label %2243

2209:                                             ; preds = %2207
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %295, ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull @.str)
          to label %2210 unwind label %2245

2210:                                             ; preds = %2209
  %2211 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %295) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %295) #8
  %2212 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %299) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %2213 unwind label %2248

2213:                                             ; preds = %2210
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %298, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %2214 unwind label %2250

2214:                                             ; preds = %2213
  %2215 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2212, ptr noundef nonnull %298)
          to label %2216 unwind label %2252

2216:                                             ; preds = %2214
  %2217 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2215)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #8
  br i1 %2217, label %2270, label %2218

2218:                                             ; preds = %2216
  %2219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2220 unwind label %2256

2220:                                             ; preds = %2218
  %2221 = load ptr, ptr %2219, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %300) #8
  %2222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2223 unwind label %2258

2223:                                             ; preds = %2220
  %2224 = load ptr, ptr %2222, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %300, ptr noundef nonnull align 8 dereferenceable(30) %2224, i32 noundef 618)
          to label %2225 unwind label %2258

2225:                                             ; preds = %2223
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2221, ptr noundef nonnull align 8 dereferenceable(30) %300, ptr noundef nonnull @.str.5)
          to label %2226 unwind label %2258

2226:                                             ; preds = %2225
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #8
  br label %2270

2227:                                             ; preds = %2188
  %2228 = landingpad { ptr, i32 }
          cleanup
  br label %2231

2229:                                             ; preds = %2196, %2194, %2191
  %2230 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #8
  br label %2231

2231:                                             ; preds = %2229, %2227
  %.pn384 = phi { ptr, i32 } [ %2230, %2229 ], [ %2228, %2227 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2232:                                             ; preds = %2203
  %2233 = landingpad { ptr, i32 }
          cleanup
  br label %2242

2234:                                             ; preds = %2204
  %2235 = landingpad { ptr, i32 }
          cleanup
  br label %2241

2236:                                             ; preds = %2205
  %2237 = landingpad { ptr, i32 }
          cleanup
  br label %2240

2238:                                             ; preds = %2206
  %2239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #8
  br label %2240

2240:                                             ; preds = %2238, %2236
  %.pn386 = phi { ptr, i32 } [ %2239, %2238 ], [ %2237, %2236 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #8
  br label %2241

2241:                                             ; preds = %2240, %2234
  %.pn386.pn = phi { ptr, i32 } [ %.pn386, %2240 ], [ %2235, %2234 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #8
  br label %2242

2242:                                             ; preds = %2241, %2232
  %.pn386.pn.pn = phi { ptr, i32 } [ %.pn386.pn, %2241 ], [ %2233, %2232 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %291) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #8
  br label %2804

2243:                                             ; preds = %2207
  %2244 = landingpad { ptr, i32 }
          cleanup
  br label %2247

2245:                                             ; preds = %2209
  %2246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  br label %2247

2247:                                             ; preds = %2245, %2243
  %.pn390 = phi { ptr, i32 } [ %2246, %2245 ], [ %2244, %2243 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %295) #8
  br label %2804

2248:                                             ; preds = %2210
  %2249 = landingpad { ptr, i32 }
          catch ptr null
  br label %2255

2250:                                             ; preds = %2213
  %2251 = landingpad { ptr, i32 }
          catch ptr null
  br label %2254

2252:                                             ; preds = %2214
  %2253 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #8
  br label %2254

2254:                                             ; preds = %2252, %2250
  %.pn392 = phi { ptr, i32 } [ %2253, %2252 ], [ %2251, %2250 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  br label %2255

2255:                                             ; preds = %2254, %2248
  %.pn392.pn = phi { ptr, i32 } [ %.pn392, %2254 ], [ %2249, %2248 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #8
  br label %2260

2256:                                             ; preds = %2218
  %2257 = landingpad { ptr, i32 }
          catch ptr null
  br label %2260

2258:                                             ; preds = %2225, %2223, %2220
  %2259 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #8
  br label %2260

2260:                                             ; preds = %2258, %2256, %2255
  %.pn393 = phi { ptr, i32 } [ %2259, %2258 ], [ %2257, %2256 ], [ %.pn392.pn, %2255 ]
  %.161 = extractvalue { ptr, i32 } %.pn393, 0
  %2261 = call ptr @__cxa_begin_catch(ptr %.161) #8
  %2262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2263 unwind label %2288

2263:                                             ; preds = %2260
  %2264 = load ptr, ptr %2262, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %301) #8
  %2265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2266 unwind label %2290

2266:                                             ; preds = %2263
  %2267 = load ptr, ptr %2265, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %301, ptr noundef nonnull align 8 dereferenceable(30) %2267, i32 noundef 618)
          to label %2268 unwind label %2290

2268:                                             ; preds = %2266
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2264, ptr noundef nonnull align 8 dereferenceable(30) %301, ptr noundef nonnull @.str.6)
          to label %2269 unwind label %2290

2269:                                             ; preds = %2268
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %301) #8
  invoke void @__cxa_end_catch()
          to label %2270 unwind label %448

2270:                                             ; preds = %2216, %2226, %2269
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %302) #8
  %2271 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %2272 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %2273 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %303, ptr noundef nonnull align 8 dereferenceable(88) %2273)
  %2274 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2275 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2274)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %302, ptr noundef nonnull align 8 dereferenceable(136) %2271, ptr noundef %2272, ptr noundef nonnull %303, ptr noundef nonnull align 8 dereferenceable(24) %2275, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2276 unwind label %2293

2276:                                             ; preds = %2270
  %2277 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %302) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %302) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %302) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %304) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %305, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %304, ptr noundef nonnull %305, i1 noundef zeroext false)
          to label %2278 unwind label %2295

2278:                                             ; preds = %2276
  %2279 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %304) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %305) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #8
  %2280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2281 unwind label %2297

2281:                                             ; preds = %2278
  %2282 = load ptr, ptr %2280, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %306) #8
  %2283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2284 unwind label %2299

2284:                                             ; preds = %2281
  %2285 = load ptr, ptr %2283, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %306, ptr noundef nonnull align 8 dereferenceable(30) %2285, i32 noundef 621)
          to label %2286 unwind label %2299

2286:                                             ; preds = %2284
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2282, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(149) @.str.113, ptr noundef nonnull align 8 dereferenceable(30) %306)
          to label %2287 unwind label %2299

2287:                                             ; preds = %2286
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #8
  br label %2311

2288:                                             ; preds = %2260
  %2289 = landingpad { ptr, i32 }
          cleanup
  br label %2292

2290:                                             ; preds = %2268, %2266, %2263
  %2291 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %301) #8
  br label %2292

2292:                                             ; preds = %2290, %2288
  %.pn394 = phi { ptr, i32 } [ %2291, %2290 ], [ %2289, %2288 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2293:                                             ; preds = %2270
  %2294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %302) #8
  br label %2804

2295:                                             ; preds = %2276
  %2296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %305) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #8
  br label %2804

2297:                                             ; preds = %2278
  %2298 = landingpad { ptr, i32 }
          catch ptr null
  br label %2301

2299:                                             ; preds = %2286, %2284, %2281
  %2300 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #8
  br label %2301

2301:                                             ; preds = %2299, %2297
  %.pn396 = phi { ptr, i32 } [ %2300, %2299 ], [ %2298, %2297 ]
  %.163 = extractvalue { ptr, i32 } %.pn396, 0
  %2302 = call ptr @__cxa_begin_catch(ptr %.163) #8
  %2303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2304 unwind label %2322

2304:                                             ; preds = %2301
  %2305 = load ptr, ptr %2303, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #8
  %2306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2307 unwind label %2324

2307:                                             ; preds = %2304
  %2308 = load ptr, ptr %2306, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %307, ptr noundef nonnull align 8 dereferenceable(30) %2308, i32 noundef 621)
          to label %2309 unwind label %2324

2309:                                             ; preds = %2307
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2305, ptr noundef nonnull align 8 dereferenceable(30) %307, ptr noundef nonnull @.str.114)
          to label %2310 unwind label %2324

2310:                                             ; preds = %2309
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #8
  invoke void @__cxa_end_catch()
          to label %2311 unwind label %448

2311:                                             ; preds = %2310, %2287
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %308) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %308, ptr noundef nonnull %309)
          to label %2312 unwind label %2327

2312:                                             ; preds = %2311
  %2313 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %308) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #8
  %2314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2315 unwind label %2329

2315:                                             ; preds = %2312
  %2316 = load ptr, ptr %2314, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %310) #8
  %2317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2318 unwind label %2331

2318:                                             ; preds = %2315
  %2319 = load ptr, ptr %2317, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %310, ptr noundef nonnull align 8 dereferenceable(30) %2319, i32 noundef 623)
          to label %2320 unwind label %2331

2320:                                             ; preds = %2318
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2316, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(252) @.str.115, ptr noundef nonnull align 8 dereferenceable(30) %310)
          to label %2321 unwind label %2331

2321:                                             ; preds = %2320
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #8
  br label %2343

2322:                                             ; preds = %2301
  %2323 = landingpad { ptr, i32 }
          cleanup
  br label %2326

2324:                                             ; preds = %2309, %2307, %2304
  %2325 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #8
  br label %2326

2326:                                             ; preds = %2324, %2322
  %.pn397 = phi { ptr, i32 } [ %2325, %2324 ], [ %2323, %2322 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2327:                                             ; preds = %2311
  %2328 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #8
  br label %2804

2329:                                             ; preds = %2312
  %2330 = landingpad { ptr, i32 }
          catch ptr null
  br label %2333

2331:                                             ; preds = %2320, %2318, %2315
  %2332 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #8
  br label %2333

2333:                                             ; preds = %2331, %2329
  %.pn399 = phi { ptr, i32 } [ %2332, %2331 ], [ %2330, %2329 ]
  %.165 = extractvalue { ptr, i32 } %.pn399, 0
  %2334 = call ptr @__cxa_begin_catch(ptr %.165) #8
  %2335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2336 unwind label %2373

2336:                                             ; preds = %2333
  %2337 = load ptr, ptr %2335, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %311) #8
  %2338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2339 unwind label %2375

2339:                                             ; preds = %2336
  %2340 = load ptr, ptr %2338, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %311, ptr noundef nonnull align 8 dereferenceable(30) %2340, i32 noundef 623)
          to label %2341 unwind label %2375

2341:                                             ; preds = %2339
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2337, ptr noundef nonnull align 8 dereferenceable(30) %311, ptr noundef nonnull @.str.116)
          to label %2342 unwind label %2375

2342:                                             ; preds = %2341
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #8
  invoke void @__cxa_end_catch()
          to label %2343 unwind label %448

2343:                                             ; preds = %2342, %2321
  %2344 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2345 = load ptr, ptr %2344, align 8, !tbaa !5
  %2346 = getelementptr inbounds i8, ptr %2345, i64 40
  %2347 = load ptr, ptr %2346, align 8
  invoke void %2347(ptr noundef nonnull align 8 dereferenceable(96) %2344)
          to label %2348 unwind label %448

2348:                                             ; preds = %2343
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %312) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %313) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %314) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %315) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %316) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %317) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %316, ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull @.str.111)
          to label %2349 unwind label %2378

2349:                                             ; preds = %2348
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.82)
          to label %2350 unwind label %2380

2350:                                             ; preds = %2349
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %314, ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull @.str.143)
          to label %2351 unwind label %2382

2351:                                             ; preds = %2350
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %313, ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef nonnull @.str.118)
          to label %2352 unwind label %2384

2352:                                             ; preds = %2351
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %312, ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull @.str)
          to label %2353 unwind label %2386

2353:                                             ; preds = %2352
  %2354 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %312) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %314) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %312) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %318) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %319) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %320) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %319, ptr noundef nonnull align 8 dereferenceable(32) %320, ptr noundef nonnull @.str.119)
          to label %2355 unwind label %2392

2355:                                             ; preds = %2353
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %318, ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull @.str)
          to label %2356 unwind label %2394

2356:                                             ; preds = %2355
  %2357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %318) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %318) #8
  %2358 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %322) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %322, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %2359 unwind label %2397

2359:                                             ; preds = %2356
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %321, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %2360 unwind label %2399

2360:                                             ; preds = %2359
  %2361 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2358, ptr noundef nonnull %321)
          to label %2362 unwind label %2401

2362:                                             ; preds = %2360
  %2363 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2361)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #8
  br i1 %2363, label %2419, label %2364

2364:                                             ; preds = %2362
  %2365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2366 unwind label %2405

2366:                                             ; preds = %2364
  %2367 = load ptr, ptr %2365, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %323) #8
  %2368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2369 unwind label %2407

2369:                                             ; preds = %2366
  %2370 = load ptr, ptr %2368, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %323, ptr noundef nonnull align 8 dereferenceable(30) %2370, i32 noundef 636)
          to label %2371 unwind label %2407

2371:                                             ; preds = %2369
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2367, ptr noundef nonnull align 8 dereferenceable(30) %323, ptr noundef nonnull @.str.5)
          to label %2372 unwind label %2407

2372:                                             ; preds = %2371
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #8
  br label %2419

2373:                                             ; preds = %2333
  %2374 = landingpad { ptr, i32 }
          cleanup
  br label %2377

2375:                                             ; preds = %2341, %2339, %2336
  %2376 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #8
  br label %2377

2377:                                             ; preds = %2375, %2373
  %.pn400 = phi { ptr, i32 } [ %2376, %2375 ], [ %2374, %2373 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2378:                                             ; preds = %2348
  %2379 = landingpad { ptr, i32 }
          cleanup
  br label %2391

2380:                                             ; preds = %2349
  %2381 = landingpad { ptr, i32 }
          cleanup
  br label %2390

2382:                                             ; preds = %2350
  %2383 = landingpad { ptr, i32 }
          cleanup
  br label %2389

2384:                                             ; preds = %2351
  %2385 = landingpad { ptr, i32 }
          cleanup
  br label %2388

2386:                                             ; preds = %2352
  %2387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #8
  br label %2388

2388:                                             ; preds = %2386, %2384
  %.pn402 = phi { ptr, i32 } [ %2387, %2386 ], [ %2385, %2384 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #8
  br label %2389

2389:                                             ; preds = %2388, %2382
  %.pn402.pn = phi { ptr, i32 } [ %.pn402, %2388 ], [ %2383, %2382 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #8
  br label %2390

2390:                                             ; preds = %2389, %2380
  %.pn402.pn.pn = phi { ptr, i32 } [ %.pn402.pn, %2389 ], [ %2381, %2380 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #8
  br label %2391

2391:                                             ; preds = %2390, %2378
  %.pn402.pn.pn.pn = phi { ptr, i32 } [ %.pn402.pn.pn, %2390 ], [ %2379, %2378 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %317) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %314) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %312) #8
  br label %2804

2392:                                             ; preds = %2353
  %2393 = landingpad { ptr, i32 }
          cleanup
  br label %2396

2394:                                             ; preds = %2355
  %2395 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #8
  br label %2396

2396:                                             ; preds = %2394, %2392
  %.pn407 = phi { ptr, i32 } [ %2395, %2394 ], [ %2393, %2392 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %318) #8
  br label %2804

2397:                                             ; preds = %2356
  %2398 = landingpad { ptr, i32 }
          catch ptr null
  br label %2404

2399:                                             ; preds = %2359
  %2400 = landingpad { ptr, i32 }
          catch ptr null
  br label %2403

2401:                                             ; preds = %2360
  %2402 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #8
  br label %2403

2403:                                             ; preds = %2401, %2399
  %.pn409 = phi { ptr, i32 } [ %2402, %2401 ], [ %2400, %2399 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  br label %2404

2404:                                             ; preds = %2403, %2397
  %.pn409.pn = phi { ptr, i32 } [ %.pn409, %2403 ], [ %2398, %2397 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #8
  br label %2409

2405:                                             ; preds = %2364
  %2406 = landingpad { ptr, i32 }
          catch ptr null
  br label %2409

2407:                                             ; preds = %2371, %2369, %2366
  %2408 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #8
  br label %2409

2409:                                             ; preds = %2407, %2405, %2404
  %.pn410 = phi { ptr, i32 } [ %2408, %2407 ], [ %2406, %2405 ], [ %.pn409.pn, %2404 ]
  %.174 = extractvalue { ptr, i32 } %.pn410, 0
  %2410 = call ptr @__cxa_begin_catch(ptr %.174) #8
  %2411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2412 unwind label %2437

2412:                                             ; preds = %2409
  %2413 = load ptr, ptr %2411, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %324) #8
  %2414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2415 unwind label %2439

2415:                                             ; preds = %2412
  %2416 = load ptr, ptr %2414, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %324, ptr noundef nonnull align 8 dereferenceable(30) %2416, i32 noundef 636)
          to label %2417 unwind label %2439

2417:                                             ; preds = %2415
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2413, ptr noundef nonnull align 8 dereferenceable(30) %324, ptr noundef nonnull @.str.6)
          to label %2418 unwind label %2439

2418:                                             ; preds = %2417
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #8
  invoke void @__cxa_end_catch()
          to label %2419 unwind label %448

2419:                                             ; preds = %2362, %2372, %2418
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %325) #8
  %2420 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %2421 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %2422 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %326, ptr noundef nonnull align 8 dereferenceable(88) %2422)
  %2423 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2424 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2423)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %325, ptr noundef nonnull align 8 dereferenceable(136) %2420, ptr noundef %2421, ptr noundef nonnull %326, ptr noundef nonnull align 8 dereferenceable(24) %2424, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2425 unwind label %2442

2425:                                             ; preds = %2419
  %2426 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %325) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %325) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %326) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %327, ptr noundef nonnull %328, i1 noundef zeroext false)
          to label %2427 unwind label %2444

2427:                                             ; preds = %2425
  %2428 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %327) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %328) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #8
  %2429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2430 unwind label %2446

2430:                                             ; preds = %2427
  %2431 = load ptr, ptr %2429, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #8
  %2432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2433 unwind label %2448

2433:                                             ; preds = %2430
  %2434 = load ptr, ptr %2432, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %329, ptr noundef nonnull align 8 dereferenceable(30) %2434, i32 noundef 639)
          to label %2435 unwind label %2448

2435:                                             ; preds = %2433
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2431, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(218) @.str.120, ptr noundef nonnull align 8 dereferenceable(30) %329)
          to label %2436 unwind label %2448

2436:                                             ; preds = %2435
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #8
  br label %2460

2437:                                             ; preds = %2409
  %2438 = landingpad { ptr, i32 }
          cleanup
  br label %2441

2439:                                             ; preds = %2417, %2415, %2412
  %2440 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #8
  br label %2441

2441:                                             ; preds = %2439, %2437
  %.pn411 = phi { ptr, i32 } [ %2440, %2439 ], [ %2438, %2437 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2442:                                             ; preds = %2419
  %2443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %326) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #8
  br label %2804

2444:                                             ; preds = %2425
  %2445 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %328) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #8
  br label %2804

2446:                                             ; preds = %2427
  %2447 = landingpad { ptr, i32 }
          catch ptr null
  br label %2450

2448:                                             ; preds = %2435, %2433, %2430
  %2449 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #8
  br label %2450

2450:                                             ; preds = %2448, %2446
  %.pn413 = phi { ptr, i32 } [ %2449, %2448 ], [ %2447, %2446 ]
  %.176 = extractvalue { ptr, i32 } %.pn413, 0
  %2451 = call ptr @__cxa_begin_catch(ptr %.176) #8
  %2452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2453 unwind label %2471

2453:                                             ; preds = %2450
  %2454 = load ptr, ptr %2452, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %330) #8
  %2455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2456 unwind label %2473

2456:                                             ; preds = %2453
  %2457 = load ptr, ptr %2455, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %330, ptr noundef nonnull align 8 dereferenceable(30) %2457, i32 noundef 639)
          to label %2458 unwind label %2473

2458:                                             ; preds = %2456
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2454, ptr noundef nonnull align 8 dereferenceable(30) %330, ptr noundef nonnull @.str.121)
          to label %2459 unwind label %2473

2459:                                             ; preds = %2458
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #8
  invoke void @__cxa_end_catch()
          to label %2460 unwind label %448

2460:                                             ; preds = %2459, %2436
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %331) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %332, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %331, ptr noundef nonnull %332)
          to label %2461 unwind label %2476

2461:                                             ; preds = %2460
  %2462 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %331) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %332) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #8
  %2463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2464 unwind label %2478

2464:                                             ; preds = %2461
  %2465 = load ptr, ptr %2463, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %333) #8
  %2466 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2467 unwind label %2480

2467:                                             ; preds = %2464
  %2468 = load ptr, ptr %2466, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %333, ptr noundef nonnull align 8 dereferenceable(30) %2468, i32 noundef 641)
          to label %2469 unwind label %2480

2469:                                             ; preds = %2467
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA420_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2465, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(420) @.str.122, ptr noundef nonnull align 8 dereferenceable(30) %333)
          to label %2470 unwind label %2480

2470:                                             ; preds = %2469
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #8
  br label %2492

2471:                                             ; preds = %2450
  %2472 = landingpad { ptr, i32 }
          cleanup
  br label %2475

2473:                                             ; preds = %2458, %2456, %2453
  %2474 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #8
  br label %2475

2475:                                             ; preds = %2473, %2471
  %.pn414 = phi { ptr, i32 } [ %2474, %2473 ], [ %2472, %2471 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2476:                                             ; preds = %2460
  %2477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %332) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #8
  br label %2804

2478:                                             ; preds = %2461
  %2479 = landingpad { ptr, i32 }
          catch ptr null
  br label %2482

2480:                                             ; preds = %2469, %2467, %2464
  %2481 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #8
  br label %2482

2482:                                             ; preds = %2480, %2478
  %.pn416 = phi { ptr, i32 } [ %2481, %2480 ], [ %2479, %2478 ]
  %.178 = extractvalue { ptr, i32 } %.pn416, 0
  %2483 = call ptr @__cxa_begin_catch(ptr %.178) #8
  %2484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2485 unwind label %2522

2485:                                             ; preds = %2482
  %2486 = load ptr, ptr %2484, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %334) #8
  %2487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2488 unwind label %2524

2488:                                             ; preds = %2485
  %2489 = load ptr, ptr %2487, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %334, ptr noundef nonnull align 8 dereferenceable(30) %2489, i32 noundef 641)
          to label %2490 unwind label %2524

2490:                                             ; preds = %2488
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2486, ptr noundef nonnull align 8 dereferenceable(30) %334, ptr noundef nonnull @.str.123)
          to label %2491 unwind label %2524

2491:                                             ; preds = %2490
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %334) #8
  invoke void @__cxa_end_catch()
          to label %2492 unwind label %448

2492:                                             ; preds = %2491, %2470
  %2493 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2494 = load ptr, ptr %2493, align 8, !tbaa !5
  %2495 = getelementptr inbounds i8, ptr %2494, i64 40
  %2496 = load ptr, ptr %2495, align 8
  invoke void %2496(ptr noundef nonnull align 8 dereferenceable(96) %2493)
          to label %2497 unwind label %448

2497:                                             ; preds = %2492
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %335) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %336) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %337) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %338) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %339) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %340) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %339, ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull @.str.124)
          to label %2498 unwind label %2527

2498:                                             ; preds = %2497
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %338, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull @.str.144)
          to label %2499 unwind label %2529

2499:                                             ; preds = %2498
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %337, ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef nonnull @.str.145)
          to label %2500 unwind label %2531

2500:                                             ; preds = %2499
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %336, ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull @.str.126)
          to label %2501 unwind label %2533

2501:                                             ; preds = %2500
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %335, ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull @.str)
          to label %2502 unwind label %2535

2502:                                             ; preds = %2501
  %2503 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %336) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %341) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %343) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %342, ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull @.str.44)
          to label %2504 unwind label %2541

2504:                                             ; preds = %2502
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %341, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str)
          to label %2505 unwind label %2543

2505:                                             ; preds = %2504
  %2506 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %341) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #8
  %2507 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %345, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %2508 unwind label %2546

2508:                                             ; preds = %2505
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %344, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %2509 unwind label %2548

2509:                                             ; preds = %2508
  %2510 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2507, ptr noundef nonnull %344)
          to label %2511 unwind label %2550

2511:                                             ; preds = %2509
  %2512 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2510)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #8
  br i1 %2512, label %2568, label %2513

2513:                                             ; preds = %2511
  %2514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2515 unwind label %2554

2515:                                             ; preds = %2513
  %2516 = load ptr, ptr %2514, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %346) #8
  %2517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2518 unwind label %2556

2518:                                             ; preds = %2515
  %2519 = load ptr, ptr %2517, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %346, ptr noundef nonnull align 8 dereferenceable(30) %2519, i32 noundef 654)
          to label %2520 unwind label %2556

2520:                                             ; preds = %2518
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2516, ptr noundef nonnull align 8 dereferenceable(30) %346, ptr noundef nonnull @.str.5)
          to label %2521 unwind label %2556

2521:                                             ; preds = %2520
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #8
  br label %2568

2522:                                             ; preds = %2482
  %2523 = landingpad { ptr, i32 }
          cleanup
  br label %2526

2524:                                             ; preds = %2490, %2488, %2485
  %2525 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %334) #8
  br label %2526

2526:                                             ; preds = %2524, %2522
  %.pn417 = phi { ptr, i32 } [ %2525, %2524 ], [ %2523, %2522 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2527:                                             ; preds = %2497
  %2528 = landingpad { ptr, i32 }
          cleanup
  br label %2540

2529:                                             ; preds = %2498
  %2530 = landingpad { ptr, i32 }
          cleanup
  br label %2539

2531:                                             ; preds = %2499
  %2532 = landingpad { ptr, i32 }
          cleanup
  br label %2538

2533:                                             ; preds = %2500
  %2534 = landingpad { ptr, i32 }
          cleanup
  br label %2537

2535:                                             ; preds = %2501
  %2536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #8
  br label %2537

2537:                                             ; preds = %2535, %2533
  %.pn419 = phi { ptr, i32 } [ %2536, %2535 ], [ %2534, %2533 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #8
  br label %2538

2538:                                             ; preds = %2537, %2531
  %.pn419.pn = phi { ptr, i32 } [ %.pn419, %2537 ], [ %2532, %2531 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #8
  br label %2539

2539:                                             ; preds = %2538, %2529
  %.pn419.pn.pn = phi { ptr, i32 } [ %.pn419.pn, %2538 ], [ %2530, %2529 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #8
  br label %2540

2540:                                             ; preds = %2539, %2527
  %.pn419.pn.pn.pn = phi { ptr, i32 } [ %.pn419.pn.pn, %2539 ], [ %2528, %2527 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %336) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #8
  br label %2804

2541:                                             ; preds = %2502
  %2542 = landingpad { ptr, i32 }
          cleanup
  br label %2545

2543:                                             ; preds = %2504
  %2544 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  br label %2545

2545:                                             ; preds = %2543, %2541
  %.pn424 = phi { ptr, i32 } [ %2544, %2543 ], [ %2542, %2541 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #8
  br label %2804

2546:                                             ; preds = %2505
  %2547 = landingpad { ptr, i32 }
          catch ptr null
  br label %2553

2548:                                             ; preds = %2508
  %2549 = landingpad { ptr, i32 }
          catch ptr null
  br label %2552

2550:                                             ; preds = %2509
  %2551 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #8
  br label %2552

2552:                                             ; preds = %2550, %2548
  %.pn426 = phi { ptr, i32 } [ %2551, %2550 ], [ %2549, %2548 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #8
  br label %2553

2553:                                             ; preds = %2552, %2546
  %.pn426.pn = phi { ptr, i32 } [ %.pn426, %2552 ], [ %2547, %2546 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #8
  br label %2558

2554:                                             ; preds = %2513
  %2555 = landingpad { ptr, i32 }
          catch ptr null
  br label %2558

2556:                                             ; preds = %2520, %2518, %2515
  %2557 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #8
  br label %2558

2558:                                             ; preds = %2556, %2554, %2553
  %.pn427 = phi { ptr, i32 } [ %2557, %2556 ], [ %2555, %2554 ], [ %.pn426.pn, %2553 ]
  %.187 = extractvalue { ptr, i32 } %.pn427, 0
  %2559 = call ptr @__cxa_begin_catch(ptr %.187) #8
  %2560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2561 unwind label %2586

2561:                                             ; preds = %2558
  %2562 = load ptr, ptr %2560, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %347) #8
  %2563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2564 unwind label %2588

2564:                                             ; preds = %2561
  %2565 = load ptr, ptr %2563, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %347, ptr noundef nonnull align 8 dereferenceable(30) %2565, i32 noundef 654)
          to label %2566 unwind label %2588

2566:                                             ; preds = %2564
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2562, ptr noundef nonnull align 8 dereferenceable(30) %347, ptr noundef nonnull @.str.6)
          to label %2567 unwind label %2588

2567:                                             ; preds = %2566
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %347) #8
  invoke void @__cxa_end_catch()
          to label %2568 unwind label %448

2568:                                             ; preds = %2511, %2521, %2567
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %348) #8
  %2569 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %2570 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %2571 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %349, ptr noundef nonnull align 8 dereferenceable(88) %2571)
  %2572 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2573 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2572)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %348, ptr noundef nonnull align 8 dereferenceable(136) %2569, ptr noundef %2570, ptr noundef nonnull %349, ptr noundef nonnull align 8 dereferenceable(24) %2573, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2574 unwind label %2591

2574:                                             ; preds = %2568
  %2575 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %348) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %348) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %348) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %350) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %350, ptr noundef nonnull %351, i1 noundef zeroext false)
          to label %2576 unwind label %2593

2576:                                             ; preds = %2574
  %2577 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %350) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %350) #8
  %2578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2579 unwind label %2595

2579:                                             ; preds = %2576
  %2580 = load ptr, ptr %2578, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %352) #8
  %2581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2582 unwind label %2597

2582:                                             ; preds = %2579
  %2583 = load ptr, ptr %2581, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %352, ptr noundef nonnull align 8 dereferenceable(30) %2583, i32 noundef 657)
          to label %2584 unwind label %2597

2584:                                             ; preds = %2582
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2580, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(36) @.str.146, ptr noundef nonnull align 8 dereferenceable(30) %352)
          to label %2585 unwind label %2597

2585:                                             ; preds = %2584
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #8
  br label %2609

2586:                                             ; preds = %2558
  %2587 = landingpad { ptr, i32 }
          cleanup
  br label %2590

2588:                                             ; preds = %2566, %2564, %2561
  %2589 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %347) #8
  br label %2590

2590:                                             ; preds = %2588, %2586
  %.pn428 = phi { ptr, i32 } [ %2589, %2588 ], [ %2587, %2586 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2591:                                             ; preds = %2568
  %2592 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %348) #8
  br label %2804

2593:                                             ; preds = %2574
  %2594 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %350) #8
  br label %2804

2595:                                             ; preds = %2576
  %2596 = landingpad { ptr, i32 }
          catch ptr null
  br label %2599

2597:                                             ; preds = %2584, %2582, %2579
  %2598 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #8
  br label %2599

2599:                                             ; preds = %2597, %2595
  %.pn430 = phi { ptr, i32 } [ %2598, %2597 ], [ %2596, %2595 ]
  %.189 = extractvalue { ptr, i32 } %.pn430, 0
  %2600 = call ptr @__cxa_begin_catch(ptr %.189) #8
  %2601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2602 unwind label %2620

2602:                                             ; preds = %2599
  %2603 = load ptr, ptr %2601, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %353) #8
  %2604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2605 unwind label %2622

2605:                                             ; preds = %2602
  %2606 = load ptr, ptr %2604, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %353, ptr noundef nonnull align 8 dereferenceable(30) %2606, i32 noundef 657)
          to label %2607 unwind label %2622

2607:                                             ; preds = %2605
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2603, ptr noundef nonnull align 8 dereferenceable(30) %353, ptr noundef nonnull @.str.147)
          to label %2608 unwind label %2622

2608:                                             ; preds = %2607
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #8
  invoke void @__cxa_end_catch()
          to label %2609 unwind label %448

2609:                                             ; preds = %2608, %2585
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %354) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %354, ptr noundef nonnull %355)
          to label %2610 unwind label %2625

2610:                                             ; preds = %2609
  %2611 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #8
  %2612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2613 unwind label %2627

2613:                                             ; preds = %2610
  %2614 = load ptr, ptr %2612, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %356) #8
  %2615 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2616 unwind label %2629

2616:                                             ; preds = %2613
  %2617 = load ptr, ptr %2615, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %356, ptr noundef nonnull align 8 dereferenceable(30) %2617, i32 noundef 659)
          to label %2618 unwind label %2629

2618:                                             ; preds = %2616
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA145_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2614, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(145) @.str.148, ptr noundef nonnull align 8 dereferenceable(30) %356)
          to label %2619 unwind label %2629

2619:                                             ; preds = %2618
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #8
  br label %2641

2620:                                             ; preds = %2599
  %2621 = landingpad { ptr, i32 }
          cleanup
  br label %2624

2622:                                             ; preds = %2607, %2605, %2602
  %2623 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #8
  br label %2624

2624:                                             ; preds = %2622, %2620
  %.pn431 = phi { ptr, i32 } [ %2623, %2622 ], [ %2621, %2620 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2625:                                             ; preds = %2609
  %2626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #8
  br label %2804

2627:                                             ; preds = %2610
  %2628 = landingpad { ptr, i32 }
          catch ptr null
  br label %2631

2629:                                             ; preds = %2618, %2616, %2613
  %2630 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #8
  br label %2631

2631:                                             ; preds = %2629, %2627
  %.pn433 = phi { ptr, i32 } [ %2630, %2629 ], [ %2628, %2627 ]
  %.191 = extractvalue { ptr, i32 } %.pn433, 0
  %2632 = call ptr @__cxa_begin_catch(ptr %.191) #8
  %2633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2634 unwind label %2673

2634:                                             ; preds = %2631
  %2635 = load ptr, ptr %2633, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %357) #8
  %2636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2637 unwind label %2675

2637:                                             ; preds = %2634
  %2638 = load ptr, ptr %2636, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %357, ptr noundef nonnull align 8 dereferenceable(30) %2638, i32 noundef 659)
          to label %2639 unwind label %2675

2639:                                             ; preds = %2637
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2635, ptr noundef nonnull align 8 dereferenceable(30) %357, ptr noundef nonnull @.str.149)
          to label %2640 unwind label %2675

2640:                                             ; preds = %2639
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #8
  invoke void @__cxa_end_catch()
          to label %2641 unwind label %448

2641:                                             ; preds = %2640, %2619
  %2642 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2643 = load ptr, ptr %2642, align 8, !tbaa !5
  %2644 = getelementptr inbounds i8, ptr %2643, i64 40
  %2645 = load ptr, ptr %2644, align 8
  invoke void %2645(ptr noundef nonnull align 8 dereferenceable(96) %2642)
          to label %2646 unwind label %448

2646:                                             ; preds = %2641
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %358) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %359) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %360) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %362) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %363) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %364) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %365) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %364, ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef nonnull @.str.111)
          to label %2647 unwind label %2678

2647:                                             ; preds = %2646
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %363, ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.135)
          to label %2648 unwind label %2680

2648:                                             ; preds = %2647
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %362, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull @.str.82)
          to label %2649 unwind label %2682

2649:                                             ; preds = %2648
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull @.str.143)
          to label %2650 unwind label %2684

2650:                                             ; preds = %2649
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %360, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull @.str.136)
          to label %2651 unwind label %2686

2651:                                             ; preds = %2650
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %359, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull @.str.137)
          to label %2652 unwind label %2688

2652:                                             ; preds = %2651
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %358, ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull @.str)
          to label %2653 unwind label %2690

2653:                                             ; preds = %2652
  %2654 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %358) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %364) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %360) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %359) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %358) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %366) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %367) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %368) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %367, ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef nonnull @.str.119)
          to label %2655 unwind label %2698

2655:                                             ; preds = %2653
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %366, ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull @.str)
          to label %2656 unwind label %2700

2656:                                             ; preds = %2655
  %2657 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %366) #8
  %2658 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %370) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %370, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %2659 unwind label %2703

2659:                                             ; preds = %2656
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %369, ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %2660 unwind label %2705

2660:                                             ; preds = %2659
  %2661 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2658, ptr noundef nonnull %369)
          to label %2662 unwind label %2707

2662:                                             ; preds = %2660
  %2663 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2661)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #8
  br i1 %2663, label %2725, label %2664

2664:                                             ; preds = %2662
  %2665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2666 unwind label %2711

2666:                                             ; preds = %2664
  %2667 = load ptr, ptr %2665, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %371) #8
  %2668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2669 unwind label %2713

2669:                                             ; preds = %2666
  %2670 = load ptr, ptr %2668, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %371, ptr noundef nonnull align 8 dereferenceable(30) %2670, i32 noundef 674)
          to label %2671 unwind label %2713

2671:                                             ; preds = %2669
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2667, ptr noundef nonnull align 8 dereferenceable(30) %371, ptr noundef nonnull @.str.5)
          to label %2672 unwind label %2713

2672:                                             ; preds = %2671
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %371) #8
  br label %2725

2673:                                             ; preds = %2631
  %2674 = landingpad { ptr, i32 }
          cleanup
  br label %2677

2675:                                             ; preds = %2639, %2637, %2634
  %2676 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #8
  br label %2677

2677:                                             ; preds = %2675, %2673
  %.pn434 = phi { ptr, i32 } [ %2676, %2675 ], [ %2674, %2673 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2678:                                             ; preds = %2646
  %2679 = landingpad { ptr, i32 }
          cleanup
  br label %2697

2680:                                             ; preds = %2647
  %2681 = landingpad { ptr, i32 }
          cleanup
  br label %2696

2682:                                             ; preds = %2648
  %2683 = landingpad { ptr, i32 }
          cleanup
  br label %2695

2684:                                             ; preds = %2649
  %2685 = landingpad { ptr, i32 }
          cleanup
  br label %2694

2686:                                             ; preds = %2650
  %2687 = landingpad { ptr, i32 }
          cleanup
  br label %2693

2688:                                             ; preds = %2651
  %2689 = landingpad { ptr, i32 }
          cleanup
  br label %2692

2690:                                             ; preds = %2652
  %2691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #8
  br label %2692

2692:                                             ; preds = %2690, %2688
  %.pn436 = phi { ptr, i32 } [ %2691, %2690 ], [ %2689, %2688 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #8
  br label %2693

2693:                                             ; preds = %2692, %2686
  %.pn436.pn = phi { ptr, i32 } [ %.pn436, %2692 ], [ %2687, %2686 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #8
  br label %2694

2694:                                             ; preds = %2693, %2684
  %.pn436.pn.pn = phi { ptr, i32 } [ %.pn436.pn, %2693 ], [ %2685, %2684 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  br label %2695

2695:                                             ; preds = %2694, %2682
  %.pn436.pn.pn.pn = phi { ptr, i32 } [ %.pn436.pn.pn, %2694 ], [ %2683, %2682 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #8
  br label %2696

2696:                                             ; preds = %2695, %2680
  %.pn436.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn436.pn.pn.pn, %2695 ], [ %2681, %2680 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  br label %2697

2697:                                             ; preds = %2696, %2678
  %.pn436.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn436.pn.pn.pn.pn, %2696 ], [ %2679, %2678 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %365) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %364) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %360) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %359) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %358) #8
  br label %2804

2698:                                             ; preds = %2653
  %2699 = landingpad { ptr, i32 }
          cleanup
  br label %2702

2700:                                             ; preds = %2655
  %2701 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #8
  br label %2702

2702:                                             ; preds = %2700, %2698
  %.pn443 = phi { ptr, i32 } [ %2701, %2700 ], [ %2699, %2698 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %368) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %366) #8
  br label %2804

2703:                                             ; preds = %2656
  %2704 = landingpad { ptr, i32 }
          catch ptr null
  br label %2710

2705:                                             ; preds = %2659
  %2706 = landingpad { ptr, i32 }
          catch ptr null
  br label %2709

2707:                                             ; preds = %2660
  %2708 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  br label %2709

2709:                                             ; preds = %2707, %2705
  %.pn445 = phi { ptr, i32 } [ %2708, %2707 ], [ %2706, %2705 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #8
  br label %2710

2710:                                             ; preds = %2709, %2703
  %.pn445.pn = phi { ptr, i32 } [ %.pn445, %2709 ], [ %2704, %2703 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #8
  br label %2715

2711:                                             ; preds = %2664
  %2712 = landingpad { ptr, i32 }
          catch ptr null
  br label %2715

2713:                                             ; preds = %2671, %2669, %2666
  %2714 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %371) #8
  br label %2715

2715:                                             ; preds = %2713, %2711, %2710
  %.pn446 = phi { ptr, i32 } [ %2714, %2713 ], [ %2712, %2711 ], [ %.pn445.pn, %2710 ]
  %.202 = extractvalue { ptr, i32 } %.pn446, 0
  %2716 = call ptr @__cxa_begin_catch(ptr %.202) #8
  %2717 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2718 unwind label %2743

2718:                                             ; preds = %2715
  %2719 = load ptr, ptr %2717, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %372) #8
  %2720 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2721 unwind label %2745

2721:                                             ; preds = %2718
  %2722 = load ptr, ptr %2720, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %372, ptr noundef nonnull align 8 dereferenceable(30) %2722, i32 noundef 674)
          to label %2723 unwind label %2745

2723:                                             ; preds = %2721
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2719, ptr noundef nonnull align 8 dereferenceable(30) %372, ptr noundef nonnull @.str.6)
          to label %2724 unwind label %2745

2724:                                             ; preds = %2723
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #8
  invoke void @__cxa_end_catch()
          to label %2725 unwind label %448

2725:                                             ; preds = %2662, %2672, %2724
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %373) #8
  %2726 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %2727 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %2728 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @_ZNK18PrologCompilerBaseIN6Prolog11HtnVariableEE20compilerOwnedRuleSetEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.29") align 8 %374, ptr noundef nonnull align 8 dereferenceable(88) %2728)
  %2729 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %2730 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2729)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %373, ptr noundef nonnull align 8 dereferenceable(136) %2726, ptr noundef %2727, ptr noundef nonnull %374, ptr noundef nonnull align 8 dereferenceable(24) %2730, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2731 unwind label %2748

2731:                                             ; preds = %2725
  %2732 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %373) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %373) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %374) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %373) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %375) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %376, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %375, ptr noundef nonnull %376, i1 noundef zeroext false)
          to label %2733 unwind label %2750

2733:                                             ; preds = %2731
  %2734 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %375) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %376) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %375) #8
  %2735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2736 unwind label %2752

2736:                                             ; preds = %2733
  %2737 = load ptr, ptr %2735, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %377) #8
  %2738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2739 unwind label %2754

2739:                                             ; preds = %2736
  %2740 = load ptr, ptr %2738, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %377, ptr noundef nonnull align 8 dereferenceable(30) %2740, i32 noundef 677)
          to label %2741 unwind label %2754

2741:                                             ; preds = %2739
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2737, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(111) @.str.138, ptr noundef nonnull align 8 dereferenceable(30) %377)
          to label %2742 unwind label %2754

2742:                                             ; preds = %2741
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %377) #8
  br label %2766

2743:                                             ; preds = %2715
  %2744 = landingpad { ptr, i32 }
          cleanup
  br label %2747

2745:                                             ; preds = %2723, %2721, %2718
  %2746 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #8
  br label %2747

2747:                                             ; preds = %2745, %2743
  %.pn447 = phi { ptr, i32 } [ %2746, %2745 ], [ %2744, %2743 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2748:                                             ; preds = %2725
  %2749 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %374) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %373) #8
  br label %2804

2750:                                             ; preds = %2731
  %2751 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %376) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %375) #8
  br label %2804

2752:                                             ; preds = %2733
  %2753 = landingpad { ptr, i32 }
          catch ptr null
  br label %2756

2754:                                             ; preds = %2741, %2739, %2736
  %2755 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %377) #8
  br label %2756

2756:                                             ; preds = %2754, %2752
  %.pn449 = phi { ptr, i32 } [ %2755, %2754 ], [ %2753, %2752 ]
  %.204 = extractvalue { ptr, i32 } %.pn449, 0
  %2757 = call ptr @__cxa_begin_catch(ptr %.204) #8
  %2758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2759 unwind label %2777

2759:                                             ; preds = %2756
  %2760 = load ptr, ptr %2758, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %378) #8
  %2761 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2762 unwind label %2779

2762:                                             ; preds = %2759
  %2763 = load ptr, ptr %2761, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %378, ptr noundef nonnull align 8 dereferenceable(30) %2763, i32 noundef 677)
          to label %2764 unwind label %2779

2764:                                             ; preds = %2762
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2760, ptr noundef nonnull align 8 dereferenceable(30) %378, ptr noundef nonnull @.str.139)
          to label %2765 unwind label %2779

2765:                                             ; preds = %2764
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %378) #8
  invoke void @__cxa_end_catch()
          to label %2766 unwind label %448

2766:                                             ; preds = %2765, %2742
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %379) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %380, ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  invoke void @_ZN10HtnPlanner13ToStringFactsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %379, ptr noundef nonnull %380)
          to label %2767 unwind label %2782

2767:                                             ; preds = %2766
  %2768 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %379) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %380) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %379) #8
  %2769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2770 unwind label %2784

2770:                                             ; preds = %2767
  %2771 = load ptr, ptr %2769, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %381) #8
  %2772 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2773 unwind label %2786

2773:                                             ; preds = %2770
  %2774 = load ptr, ptr %2772, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %381, ptr noundef nonnull align 8 dereferenceable(30) %2774, i32 noundef 679)
          to label %2775 unwind label %2786

2775:                                             ; preds = %2773
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2771, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(243) @.str.140, ptr noundef nonnull align 8 dereferenceable(30) %381)
          to label %2776 unwind label %2786

2776:                                             ; preds = %2775
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %381) #8
  br label %2798

2777:                                             ; preds = %2756
  %2778 = landingpad { ptr, i32 }
          cleanup
  br label %2781

2779:                                             ; preds = %2764, %2762, %2759
  %2780 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %378) #8
  br label %2781

2781:                                             ; preds = %2779, %2777
  %.pn450 = phi { ptr, i32 } [ %2780, %2779 ], [ %2778, %2777 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2782:                                             ; preds = %2766
  %2783 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %380) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %379) #8
  br label %2804

2784:                                             ; preds = %2767
  %2785 = landingpad { ptr, i32 }
          catch ptr null
  br label %2788

2786:                                             ; preds = %2775, %2773, %2770
  %2787 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %381) #8
  br label %2788

2788:                                             ; preds = %2786, %2784
  %.pn452 = phi { ptr, i32 } [ %2787, %2786 ], [ %2785, %2784 ]
  %.206 = extractvalue { ptr, i32 } %.pn452, 0
  %2789 = call ptr @__cxa_begin_catch(ptr %.206) #8
  %2790 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2791 unwind label %2799

2791:                                             ; preds = %2788
  %2792 = load ptr, ptr %2790, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %382) #8
  %2793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2794 unwind label %2801

2794:                                             ; preds = %2791
  %2795 = load ptr, ptr %2793, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %382, ptr noundef nonnull align 8 dereferenceable(30) %2795, i32 noundef 679)
          to label %2796 unwind label %2801

2796:                                             ; preds = %2794
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2792, ptr noundef nonnull align 8 dereferenceable(30) %382, ptr noundef nonnull @.str.141)
          to label %2797 unwind label %2801

2797:                                             ; preds = %2796
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #8
  invoke void @__cxa_end_catch()
          to label %2798 unwind label %448

2798:                                             ; preds = %2797, %2776
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  ret void

2799:                                             ; preds = %2788
  %2800 = landingpad { ptr, i32 }
          cleanup
  br label %2803

2801:                                             ; preds = %2796, %2794, %2791
  %2802 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #8
  br label %2803

2803:                                             ; preds = %2801, %2799
  %.pn453 = phi { ptr, i32 } [ %2802, %2801 ], [ %2800, %2799 ]
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %2809

2804:                                             ; preds = %2803, %2781, %2747, %2677, %2624, %2590, %2526, %2475, %2441, %2377, %2326, %2292, %2231, %2181, %2147, %2086, %2036, %2002, %1941, %1891, %1857, %1787, %1734, %1700, %1630, %1577, %1543, %1479, %1428, %1394, %1330, %1279, %1245, %1184, %1134, %1100, %1039, %989, %955, %891, %840, %806, %745, %695, %661, %600, %550, %516, %2782, %2750, %2748, %2702, %2697, %2625, %2593, %2591, %2545, %2540, %2476, %2444, %2442, %2396, %2391, %2327, %2295, %2293, %2247, %2242, %2182, %2150, %2148, %2102, %2097, %2037, %2005, %2003, %1957, %1952, %1892, %1860, %1858, %1812, %1807, %1735, %1703, %1701, %1655, %1650, %1578, %1546, %1544, %1498, %1493, %1429, %1397, %1395, %1349, %1344, %1280, %1248, %1246, %1200, %1195, %1135, %1103, %1101, %1055, %1050, %990, %958, %956, %910, %905, %841, %809, %807, %761, %756, %696, %664, %662, %616, %611, %551, %519, %517, %471, %466, %448, %446
  %.pn455 = phi { ptr, i32 } [ %449, %448 ], [ %.pn453, %2803 ], [ %2783, %2782 ], [ %.pn450, %2781 ], [ %2751, %2750 ], [ %2749, %2748 ], [ %.pn447, %2747 ], [ %.pn443, %2702 ], [ %.pn436.pn.pn.pn.pn.pn, %2697 ], [ %.pn434, %2677 ], [ %2626, %2625 ], [ %.pn431, %2624 ], [ %2594, %2593 ], [ %2592, %2591 ], [ %.pn428, %2590 ], [ %.pn424, %2545 ], [ %.pn419.pn.pn.pn, %2540 ], [ %.pn417, %2526 ], [ %2477, %2476 ], [ %.pn414, %2475 ], [ %2445, %2444 ], [ %2443, %2442 ], [ %.pn411, %2441 ], [ %.pn407, %2396 ], [ %.pn402.pn.pn.pn, %2391 ], [ %.pn400, %2377 ], [ %2328, %2327 ], [ %.pn397, %2326 ], [ %2296, %2295 ], [ %2294, %2293 ], [ %.pn394, %2292 ], [ %.pn390, %2247 ], [ %.pn386.pn.pn, %2242 ], [ %.pn384, %2231 ], [ %2183, %2182 ], [ %.pn381, %2181 ], [ %2151, %2150 ], [ %2149, %2148 ], [ %.pn378, %2147 ], [ %.pn374, %2102 ], [ %.pn370.pn.pn, %2097 ], [ %.pn368, %2086 ], [ %2038, %2037 ], [ %.pn365, %2036 ], [ %2006, %2005 ], [ %2004, %2003 ], [ %.pn362, %2002 ], [ %.pn358, %1957 ], [ %.pn354.pn.pn, %1952 ], [ %.pn352, %1941 ], [ %1893, %1892 ], [ %.pn349, %1891 ], [ %1861, %1860 ], [ %1859, %1858 ], [ %.pn346, %1857 ], [ %.pn342, %1812 ], [ %.pn335.pn.pn.pn.pn.pn, %1807 ], [ %.pn333, %1787 ], [ %1736, %1735 ], [ %.pn330, %1734 ], [ %1704, %1703 ], [ %1702, %1701 ], [ %.pn327, %1700 ], [ %.pn323, %1655 ], [ %.pn316.pn.pn.pn.pn.pn, %1650 ], [ %.pn314, %1630 ], [ %1579, %1578 ], [ %.pn311, %1577 ], [ %1547, %1546 ], [ %1545, %1544 ], [ %.pn308, %1543 ], [ %.pn304, %1498 ], [ %.pn299.pn.pn.pn, %1493 ], [ %.pn297, %1479 ], [ %1430, %1429 ], [ %.pn294, %1428 ], [ %1398, %1397 ], [ %1396, %1395 ], [ %.pn291, %1394 ], [ %.pn287, %1349 ], [ %.pn282.pn.pn.pn, %1344 ], [ %.pn280, %1330 ], [ %1281, %1280 ], [ %.pn277, %1279 ], [ %1249, %1248 ], [ %1247, %1246 ], [ %.pn274, %1245 ], [ %.pn270, %1200 ], [ %.pn266.pn.pn, %1195 ], [ %.pn264, %1184 ], [ %1136, %1135 ], [ %.pn261, %1134 ], [ %1104, %1103 ], [ %1102, %1101 ], [ %.pn258, %1100 ], [ %.pn254, %1055 ], [ %.pn250.pn.pn, %1050 ], [ %.pn248, %1039 ], [ %991, %990 ], [ %.pn245, %989 ], [ %959, %958 ], [ %957, %956 ], [ %.pn242, %955 ], [ %.pn238, %910 ], [ %.pn233.pn.pn.pn, %905 ], [ %.pn231, %891 ], [ %842, %841 ], [ %.pn228, %840 ], [ %810, %809 ], [ %808, %807 ], [ %.pn225, %806 ], [ %.pn221, %761 ], [ %.pn217.pn.pn, %756 ], [ %.pn215, %745 ], [ %697, %696 ], [ %.pn212, %695 ], [ %665, %664 ], [ %663, %662 ], [ %.pn209, %661 ], [ %.pn205, %616 ], [ %.pn201.pn.pn, %611 ], [ %.pn199, %600 ], [ %552, %551 ], [ %.pn196, %550 ], [ %520, %519 ], [ %518, %517 ], [ %.pn193, %516 ], [ %.pn189, %471 ], [ %.pn.pn.pn.pn.pn, %466 ], [ %447, %446 ]
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  br label %2805

2805:                                             ; preds = %2804, %444, %442
  %.pn455.pn = phi { ptr, i32 } [ %.pn455, %2804 ], [ %443, %442 ], [ %445, %444 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  br label %2806

2806:                                             ; preds = %2805, %440, %438
  %.pn455.pn.pn = phi { ptr, i32 } [ %.pn455.pn, %2805 ], [ %439, %438 ], [ %441, %440 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  br label %2807

2807:                                             ; preds = %2806, %436, %434
  %.pn455.pn.pn.pn = phi { ptr, i32 } [ %.pn455.pn.pn, %2806 ], [ %435, %434 ], [ %437, %436 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br label %2808

2808:                                             ; preds = %2807, %432
  %.pn455.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn455.pn.pn.pn, %2807 ], [ %433, %432 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn455.pn.pn.pn.pn

2809:                                             ; preds = %2803, %2781, %2747, %2677, %2624, %2590, %2526, %2475, %2441, %2377, %2326, %2292, %2231, %2181, %2147, %2086, %2036, %2002, %1941, %1891, %1857, %1787, %1734, %1700, %1630, %1577, %1543, %1479, %1428, %1394, %1330, %1279, %1245, %1184, %1134, %1100, %1039, %989, %955, %891, %840, %806, %745, %695, %661, %600, %550, %516
  %2810 = landingpad { ptr, i32 }
          catch ptr null
  %2811 = extractvalue { ptr, i32 } %2810, 0
  call void @__clang_call_terminate(ptr %2811) #11
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA98_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(98), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA142_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(142), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA115_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA79_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(79), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA160_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA94_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(94), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA252_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(252), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA227_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(227), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA149_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(149), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA218_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(218), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA82_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(82), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA338_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(338), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA111_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(111), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA243_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(243), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA145_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(145), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin nounwind }
attributes #11 = { noreturn 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass