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

; 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.187 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [131 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_traitsIcESaIcEEEA18_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(18), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_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(26), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA30_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(30), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests19TestPlannerElseTest7RunImplEv(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::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::shared_ptr.82", 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.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.UnitTest::TestDetails", align 8
  %54 = alloca %"class.UnitTest::TestDetails", align 8
  %55 = alloca %"class.std::shared_ptr.76", align 8
  %56 = alloca %"class.std::shared_ptr.29", 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::shared_ptr.76", align 8
  %63 = alloca %"class.UnitTest::TestDetails", align 8
  %64 = alloca %"class.UnitTest::TestDetails", 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.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.UnitTest::TestDetails", align 8
  %78 = alloca %"class.UnitTest::TestDetails", align 8
  %79 = alloca %"class.std::shared_ptr.76", align 8
  %80 = alloca %"class.std::shared_ptr.29", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::shared_ptr.76", align 8
  %83 = alloca %"class.UnitTest::TestDetails", align 8
  %84 = alloca %"class.UnitTest::TestDetails", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::shared_ptr.76", align 8
  %87 = alloca %"class.UnitTest::TestDetails", align 8
  %88 = alloca %"class.UnitTest::TestDetails", 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.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.UnitTest::TestDetails", align 8
  %102 = alloca %"class.UnitTest::TestDetails", align 8
  %103 = alloca %"class.std::shared_ptr.76", align 8
  %104 = alloca %"class.std::shared_ptr.29", 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::shared_ptr.76", align 8
  %111 = alloca %"class.UnitTest::TestDetails", align 8
  %112 = alloca %"class.UnitTest::TestDetails", 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.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.UnitTest::TestDetails", align 8
  %129 = alloca %"class.UnitTest::TestDetails", align 8
  %130 = alloca %"class.std::shared_ptr.76", align 8
  %131 = alloca %"class.std::shared_ptr.29", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::shared_ptr.76", align 8
  %134 = alloca %"class.UnitTest::TestDetails", align 8
  %135 = alloca %"class.UnitTest::TestDetails", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::shared_ptr.76", align 8
  %138 = alloca %"class.UnitTest::TestDetails", align 8
  %139 = alloca %"class.UnitTest::TestDetails", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %140 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #8
  %141 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 33088) #9
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %141)
          to label %142 unwind label %192

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

144:                                              ; preds = %142
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %143)
          to label %145 unwind label %200

145:                                              ; preds = %144
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %143)
          to label %146 unwind label %196

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #8
  %147 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #9
          to label %148 unwind label %204

148:                                              ; preds = %146
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %147)
          to label %149 unwind label %208

149:                                              ; preds = %148
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef %147)
          to label %150 unwind label %204

150:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #8
  %151 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #9
          to label %152 unwind label %212

152:                                              ; preds = %150
  %153 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %154 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #8
  %155 = 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) %151, ptr noundef %153, ptr noundef %154, ptr noundef %155)
          to label %156 unwind label %216

156:                                              ; preds = %152
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef %151)
          to label %157 unwind label %212

157:                                              ; preds = %156
  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 32, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #8
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str)
          to label %158 unwind label %220

158:                                              ; preds = %157
  %159 = 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) %17) #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 @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #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.187)
          to label %160 unwind label %224

160:                                              ; preds = %158
  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.188)
          to label %161 unwind label %228

161:                                              ; preds = %160
  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.189)
          to label %162 unwind label %232

162:                                              ; preds = %161
  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.190)
          to label %163 unwind label %236

163:                                              ; preds = %162
  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)
          to label %164 unwind label %240

164:                                              ; preds = %163
  %165 = 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) %19) #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
  %166 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %167 = load ptr, ptr %166, align 8, !tbaa !9
  %168 = getelementptr inbounds ptr, ptr %167, i64 5
  %169 = load ptr, ptr %168, align 8
  invoke void %169(ptr noundef nonnull align 8 dereferenceable(96) %166)
          to label %170 unwind label %248

170:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  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.191)
          to label %171 unwind label %252

171:                                              ; preds = %170
  %172 = 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) %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 @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %173

173:                                              ; preds = %171
  %174 = 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 %28) #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) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %175 unwind label %256

175:                                              ; preds = %173
  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) %13)
          to label %176 unwind label %260

176:                                              ; preds = %175
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %177 unwind label %264

177:                                              ; preds = %176
  %178 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef %27)
          to label %179 unwind label %268

179:                                              ; preds = %177
  %180 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %178)
          to label %181 unwind label %268

181:                                              ; preds = %179
  %182 = xor i1 %180, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br i1 %182, label %183, label %318

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %185 unwind label %275

185:                                              ; preds = %183
  %186 = load ptr, ptr %184, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  %187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %188 unwind label %279

188:                                              ; preds = %185
  %189 = load ptr, ptr %187, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef nonnull align 8 dereferenceable(30) %189, i32 noundef 909)
          to label %190 unwind label %279

190:                                              ; preds = %188
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %186, ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef @.str.192)
          to label %191 unwind label %279

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

192:                                              ; preds = %1
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %4, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %141, i64 noundef 33088) #10
  br label %1371

196:                                              ; preds = %145, %142
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %4, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %5, align 4
  br label %1370

200:                                              ; preds = %144
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %4, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %143, i64 noundef 144) #10
  br label %1370

204:                                              ; preds = %149, %146
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %4, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %5, align 4
  br label %1369

208:                                              ; preds = %148
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %4, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %147, i64 noundef 136) #10
  br label %1369

212:                                              ; preds = %156, %150
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %4, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %5, align 4
  br label %1368

216:                                              ; preds = %152
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %4, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %151, i64 noundef 96) #10
  br label %1368

220:                                              ; preds = %157
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %4, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  br label %1367

224:                                              ; preds = %158
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %4, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %5, align 4
  br label %247

228:                                              ; preds = %160
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %4, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %5, align 4
  br label %246

232:                                              ; preds = %161
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %4, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %5, align 4
  br label %245

236:                                              ; preds = %162
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %4, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %5, align 4
  br label %244

240:                                              ; preds = %163
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %4, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %244

244:                                              ; preds = %240, %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %245

245:                                              ; preds = %244, %232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %246

246:                                              ; preds = %245, %228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %247

247:                                              ; preds = %246, %224
  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
  br label %1367

248:                                              ; preds = %1352, %1304, %1237, %1111, %1101, %1053, %986, %877, %868, %820, %753, %645, %635, %587, %520, %417, %408, %360, %293, %164
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %4, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %5, align 4
  br label %1367

252:                                              ; preds = %170
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %4, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #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 %1367

256:                                              ; preds = %173
  %257 = landingpad { ptr, i32 }
          catch ptr null
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %4, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %5, align 4
  br label %274

260:                                              ; preds = %175
  %261 = landingpad { ptr, i32 }
          catch ptr null
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %4, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %5, align 4
  br label %273

264:                                              ; preds = %176
  %265 = landingpad { ptr, i32 }
          catch ptr null
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %4, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %5, align 4
  br label %272

268:                                              ; preds = %179, %177
  %269 = landingpad { ptr, i32 }
          catch ptr null
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %4, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %272

272:                                              ; preds = %268, %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %273

273:                                              ; preds = %272, %260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %274

274:                                              ; preds = %273, %256
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %283

275:                                              ; preds = %183
  %276 = landingpad { ptr, i32 }
          catch ptr null
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %4, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %5, align 4
  br label %283

279:                                              ; preds = %190, %188, %185
  %280 = landingpad { ptr, i32 }
          catch ptr null
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %4, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %283

283:                                              ; preds = %279, %275, %274
  %284 = load ptr, ptr %4, align 8
  %285 = call ptr @__cxa_begin_catch(ptr %284) #8
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %287 unwind label %319

287:                                              ; preds = %283
  %288 = load ptr, ptr %286, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %290 unwind label %323

290:                                              ; preds = %287
  %291 = load ptr, ptr %289, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %31, ptr noundef nonnull align 8 dereferenceable(30) %291, i32 noundef 909)
          to label %292 unwind label %323

292:                                              ; preds = %290
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %288, ptr noundef nonnull align 8 dereferenceable(30) %31, ptr noundef @.str.193)
          to label %293 unwind label %323

293:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  invoke void @__cxa_end_catch()
          to label %294 unwind label %248

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %318, %294
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #8
  %298 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %299 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %300 = 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) %300)
          to label %301 unwind label %329

301:                                              ; preds = %297
  %302 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %303 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %302)
          to label %304 unwind label %333

304:                                              ; preds = %301
  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) %298, ptr noundef %299, ptr noundef %33, ptr noundef nonnull align 8 dereferenceable(24) %303, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %305 unwind label %333

305:                                              ; preds = %304
  %306 = 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 %307 unwind label %338

307:                                              ; preds = %305
  %308 = 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) %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 %309

309:                                              ; preds = %307
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %311 unwind label %342

311:                                              ; preds = %309
  %312 = load ptr, ptr %310, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %314 unwind label %346

314:                                              ; preds = %311
  %315 = load ptr, ptr %313, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef nonnull align 8 dereferenceable(30) %315, i32 noundef 912)
          to label %316 unwind label %346

316:                                              ; preds = %314
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %312, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %36)
          to label %317 unwind label %346

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

318:                                              ; preds = %191, %181
  br label %295

319:                                              ; preds = %283
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %4, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %5, align 4
  br label %327

323:                                              ; preds = %292, %290, %287
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %4, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %327

327:                                              ; preds = %323, %319
  invoke void @__cxa_end_catch()
          to label %328 unwind label %1377

328:                                              ; preds = %327
  br label %1367

329:                                              ; preds = %297
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %4, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %5, align 4
  br label %337

333:                                              ; preds = %304, %301
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %4, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  br label %337

337:                                              ; preds = %333, %329
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #8
  br label %1367

338:                                              ; preds = %305
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %4, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, 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 %1367

342:                                              ; preds = %309
  %343 = landingpad { ptr, i32 }
          catch ptr null
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %4, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %5, align 4
  br label %350

346:                                              ; preds = %316, %314, %311
  %347 = landingpad { ptr, i32 }
          catch ptr null
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %4, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %350

350:                                              ; preds = %346, %342
  %351 = load ptr, ptr %4, align 8
  %352 = call ptr @__cxa_begin_catch(ptr %351) #8
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %354 unwind label %376

354:                                              ; preds = %350
  %355 = load ptr, ptr %353, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  %356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %357 unwind label %380

357:                                              ; preds = %354
  %358 = load ptr, ptr %356, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %358, i32 noundef 912)
          to label %359 unwind label %380

359:                                              ; preds = %357
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %355, ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef @.str.195)
          to label %360 unwind label %380

360:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  invoke void @__cxa_end_catch()
          to label %361 unwind label %248

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361, %317
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  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 %365 unwind label %386

365:                                              ; preds = %364
  %366 = 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) %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 %367

367:                                              ; preds = %365
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %369 unwind label %390

369:                                              ; preds = %367
  %370 = load ptr, ptr %368, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %372 unwind label %394

372:                                              ; preds = %369
  %373 = load ptr, ptr %371, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef nonnull align 8 dereferenceable(30) %373, i32 noundef 914)
          to label %374 unwind label %394

374:                                              ; preds = %372
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %370, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(26) @.str.196, ptr noundef nonnull align 8 dereferenceable(30) %40)
          to label %375 unwind label %394

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

376:                                              ; preds = %350
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %4, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %5, align 4
  br label %384

380:                                              ; preds = %359, %357, %354
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %4, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %384

384:                                              ; preds = %380, %376
  invoke void @__cxa_end_catch()
          to label %385 unwind label %1377

385:                                              ; preds = %384
  br label %1367

386:                                              ; preds = %364
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %4, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, 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 %1367

390:                                              ; preds = %367
  %391 = landingpad { ptr, i32 }
          catch ptr null
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %4, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %5, align 4
  br label %398

394:                                              ; preds = %374, %372, %369
  %395 = landingpad { ptr, i32 }
          catch ptr null
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %398

398:                                              ; preds = %394, %390
  %399 = load ptr, ptr %4, align 8
  %400 = call ptr @__cxa_begin_catch(ptr %399) #8
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %402 unwind label %445

402:                                              ; preds = %398
  %403 = load ptr, ptr %401, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %405 unwind label %449

405:                                              ; preds = %402
  %406 = load ptr, ptr %404, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %41, ptr noundef nonnull align 8 dereferenceable(30) %406, i32 noundef 914)
          to label %407 unwind label %449

407:                                              ; preds = %405
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %403, ptr noundef nonnull align 8 dereferenceable(30) %41, ptr noundef @.str.197)
          to label %408 unwind label %449

408:                                              ; preds = %407
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  invoke void @__cxa_end_catch()
          to label %409 unwind label %248

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409, %375
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411
  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 @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.198)
          to label %413 unwind label %455

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 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.188)
          to label %414 unwind label %459

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 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.189)
          to label %415 unwind label %463

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 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.190)
          to label %416 unwind label %467

416:                                              ; preds = %415
  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 %417 unwind label %471

417:                                              ; preds = %416
  %418 = 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) %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  %419 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %420 = load ptr, ptr %419, align 8, !tbaa !9
  %421 = getelementptr inbounds ptr, ptr %420, i64 5
  %422 = load ptr, ptr %421, align 8
  invoke void %422(ptr noundef nonnull align 8 dereferenceable(96) %419)
          to label %423 unwind label %248

423:                                              ; preds = %417
  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.191)
          to label %424 unwind label %479

424:                                              ; preds = %423
  %425 = 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) %48) #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
  br label %426

426:                                              ; preds = %424
  %427 = 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
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %428 unwind label %483

428:                                              ; preds = %426
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %429 unwind label %487

429:                                              ; preds = %428
  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) %15)
          to label %430 unwind label %491

430:                                              ; preds = %429
  %431 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef %50)
          to label %432 unwind label %495

432:                                              ; preds = %430
  %433 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %431)
          to label %434 unwind label %495

434:                                              ; preds = %432
  %435 = xor i1 %433, 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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br i1 %435, label %436, label %545

436:                                              ; preds = %434
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %438 unwind label %502

438:                                              ; preds = %436
  %439 = load ptr, ptr %437, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %441 unwind label %506

441:                                              ; preds = %438
  %442 = load ptr, ptr %440, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %53, ptr noundef nonnull align 8 dereferenceable(30) %442, i32 noundef 926)
          to label %443 unwind label %506

443:                                              ; preds = %441
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %439, ptr noundef nonnull align 8 dereferenceable(30) %53, ptr noundef @.str.192)
          to label %444 unwind label %506

444:                                              ; preds = %443
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %545

445:                                              ; preds = %398
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %4, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %5, align 4
  br label %453

449:                                              ; preds = %407, %405, %402
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %4, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %453

453:                                              ; preds = %449, %445
  invoke void @__cxa_end_catch()
          to label %454 unwind label %1377

454:                                              ; preds = %453
  br label %1367

455:                                              ; preds = %412
  %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
  br label %478

459:                                              ; preds = %413
  %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 %477

463:                                              ; preds = %414
  %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
  br label %476

467:                                              ; preds = %415
  %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
  br label %475

471:                                              ; preds = %416
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %475

475:                                              ; preds = %471, %467
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %476

476:                                              ; preds = %475, %463
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %477

477:                                              ; preds = %476, %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %478

478:                                              ; preds = %477, %455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %1367

479:                                              ; preds = %423
  %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
  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
  br label %1367

483:                                              ; preds = %426
  %484 = landingpad { ptr, i32 }
          catch ptr null
  %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 = %428
  %488 = landingpad { ptr, i32 }
          catch ptr null
  %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 = %429
  %492 = landingpad { ptr, i32 }
          catch ptr null
  %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 = %432, %430
  %496 = landingpad { ptr, i32 }
          catch ptr null
  %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) %50) #8
  br label %499

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

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

501:                                              ; preds = %500, %483
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %510

502:                                              ; preds = %436
  %503 = landingpad { ptr, i32 }
          catch ptr null
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %4, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %5, align 4
  br label %510

506:                                              ; preds = %443, %441, %438
  %507 = landingpad { ptr, i32 }
          catch ptr null
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %4, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %510

510:                                              ; preds = %506, %502, %501
  %511 = load ptr, ptr %4, align 8
  %512 = call ptr @__cxa_begin_catch(ptr %511) #8
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %514 unwind label %546

514:                                              ; preds = %510
  %515 = load ptr, ptr %513, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %517 unwind label %550

517:                                              ; preds = %514
  %518 = load ptr, ptr %516, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %54, ptr noundef nonnull align 8 dereferenceable(30) %518, i32 noundef 926)
          to label %519 unwind label %550

519:                                              ; preds = %517
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %515, ptr noundef nonnull align 8 dereferenceable(30) %54, ptr noundef @.str.193)
          to label %520 unwind label %550

520:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  invoke void @__cxa_end_catch()
          to label %521 unwind label %248

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %545, %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #8
  %525 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %526 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %527 = 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 %56, ptr noundef nonnull align 8 dereferenceable(88) %527)
          to label %528 unwind label %556

528:                                              ; preds = %524
  %529 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %530 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %529)
          to label %531 unwind label %560

531:                                              ; preds = %528
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %55, ptr noundef nonnull align 8 dereferenceable(136) %525, ptr noundef %526, ptr noundef %56, ptr noundef nonnull align 8 dereferenceable(24) %530, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %532 unwind label %560

532:                                              ; preds = %531
  %533 = 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) %55) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %58, 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 %57, ptr noundef %58, i1 noundef zeroext false)
          to label %534 unwind label %565

534:                                              ; preds = %532
  %535 = 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) %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 %57) #8
  br label %536

536:                                              ; preds = %534
  %537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %538 unwind label %569

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

541:                                              ; preds = %538
  %542 = load ptr, ptr %540, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %542, i32 noundef 929)
          to label %543 unwind label %573

543:                                              ; preds = %541
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %539, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %59)
          to label %544 unwind label %573

544:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  br label %589

545:                                              ; preds = %444, %434
  br label %522

546:                                              ; preds = %510
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %4, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %5, align 4
  br label %554

550:                                              ; preds = %519, %517, %514
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %4, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %554

554:                                              ; preds = %550, %546
  invoke void @__cxa_end_catch()
          to label %555 unwind label %1377

555:                                              ; preds = %554
  br label %1367

556:                                              ; preds = %524
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %4, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %5, align 4
  br label %564

560:                                              ; preds = %531, %528
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %4, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  br label %564

564:                                              ; preds = %560, %556
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #8
  br label %1367

565:                                              ; preds = %532
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %4, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %5, align 4
  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 %57) #8
  br label %1367

569:                                              ; preds = %536
  %570 = landingpad { ptr, i32 }
          catch ptr null
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %4, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %5, align 4
  br label %577

573:                                              ; preds = %543, %541, %538
  %574 = landingpad { ptr, i32 }
          catch ptr null
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %4, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  br label %577

577:                                              ; preds = %573, %569
  %578 = load ptr, ptr %4, align 8
  %579 = call ptr @__cxa_begin_catch(ptr %578) #8
  %580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %581 unwind label %603

581:                                              ; preds = %577
  %582 = load ptr, ptr %580, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  %583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %584 unwind label %607

584:                                              ; preds = %581
  %585 = load ptr, ptr %583, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull align 8 dereferenceable(30) %585, i32 noundef 929)
          to label %586 unwind label %607

586:                                              ; preds = %584
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %582, ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef @.str.195)
          to label %587 unwind label %607

587:                                              ; preds = %586
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  invoke void @__cxa_end_catch()
          to label %588 unwind label %248

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588, %544
  br label %590

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %62, 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 %61, ptr noundef %62)
          to label %592 unwind label %613

592:                                              ; preds = %591
  %593 = 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) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %594

594:                                              ; preds = %592
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %596 unwind label %617

596:                                              ; preds = %594
  %597 = load ptr, ptr %595, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  %598 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %599 unwind label %621

599:                                              ; preds = %596
  %600 = load ptr, ptr %598, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef nonnull align 8 dereferenceable(30) %600, i32 noundef 931)
          to label %601 unwind label %621

601:                                              ; preds = %599
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %597, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(26) @.str.196, ptr noundef nonnull align 8 dereferenceable(30) %63)
          to label %602 unwind label %621

602:                                              ; preds = %601
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %637

603:                                              ; preds = %577
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %4, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %5, align 4
  br label %611

607:                                              ; preds = %586, %584, %581
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %4, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %611

611:                                              ; preds = %607, %603
  invoke void @__cxa_end_catch()
          to label %612 unwind label %1377

612:                                              ; preds = %611
  br label %1367

613:                                              ; preds = %591
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %4, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %1367

617:                                              ; preds = %594
  %618 = landingpad { ptr, i32 }
          catch ptr null
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %4, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %5, align 4
  br label %625

621:                                              ; preds = %601, %599, %596
  %622 = landingpad { ptr, i32 }
          catch ptr null
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %4, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %625

625:                                              ; preds = %621, %617
  %626 = load ptr, ptr %4, align 8
  %627 = call ptr @__cxa_begin_catch(ptr %626) #8
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %629 unwind label %673

629:                                              ; preds = %625
  %630 = load ptr, ptr %628, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %632 unwind label %677

632:                                              ; preds = %629
  %633 = load ptr, ptr %631, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %64, ptr noundef nonnull align 8 dereferenceable(30) %633, i32 noundef 931)
          to label %634 unwind label %677

634:                                              ; preds = %632
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %630, ptr noundef nonnull align 8 dereferenceable(30) %64, ptr noundef @.str.197)
          to label %635 unwind label %677

635:                                              ; preds = %634
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  invoke void @__cxa_end_catch()
          to label %636 unwind label %248

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636, %602
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  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 @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.199)
          to label %640 unwind label %683

640:                                              ; preds = %639
  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.200)
          to label %641 unwind label %687

641:                                              ; preds = %640
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.201)
          to label %642 unwind label %691

642:                                              ; preds = %641
  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.190)
          to label %643 unwind label %695

643:                                              ; preds = %642
  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.202)
          to label %644 unwind label %699

644:                                              ; preds = %643
  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)
          to label %645 unwind label %703

645:                                              ; preds = %644
  %646 = 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) %65) #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 @_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
  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
  %647 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %648 = load ptr, ptr %647, align 8, !tbaa !9
  %649 = getelementptr inbounds ptr, ptr %648, i64 5
  %650 = load ptr, ptr %649, align 8
  invoke void %650(ptr noundef nonnull align 8 dereferenceable(96) %647)
          to label %651 unwind label %248

651:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.191)
          to label %652 unwind label %712

652:                                              ; preds = %651
  %653 = 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) %72) #8
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  br label %654

654:                                              ; preds = %652
  %655 = 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 %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %656 unwind label %716

656:                                              ; preds = %654
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %657 unwind label %720

657:                                              ; preds = %656
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %658 unwind label %724

658:                                              ; preds = %657
  %659 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %655, ptr noundef %74)
          to label %660 unwind label %728

660:                                              ; preds = %658
  %661 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %659)
          to label %662 unwind label %728

662:                                              ; preds = %660
  %663 = xor i1 %661, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br i1 %663, label %664, label %778

664:                                              ; preds = %662
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %666 unwind label %735

666:                                              ; preds = %664
  %667 = load ptr, ptr %665, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %669 unwind label %739

669:                                              ; preds = %666
  %670 = load ptr, ptr %668, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %77, ptr noundef nonnull align 8 dereferenceable(30) %670, i32 noundef 944)
          to label %671 unwind label %739

671:                                              ; preds = %669
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %667, ptr noundef nonnull align 8 dereferenceable(30) %77, ptr noundef @.str.192)
          to label %672 unwind label %739

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

673:                                              ; preds = %625
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %4, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %5, align 4
  br label %681

677:                                              ; preds = %634, %632, %629
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %4, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  br label %681

681:                                              ; preds = %677, %673
  invoke void @__cxa_end_catch()
          to label %682 unwind label %1377

682:                                              ; preds = %681
  br label %1367

683:                                              ; preds = %639
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %4, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %5, align 4
  br label %711

687:                                              ; preds = %640
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %4, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %5, align 4
  br label %710

691:                                              ; preds = %641
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %4, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %5, align 4
  br label %709

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

699:                                              ; preds = %643
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %4, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %5, align 4
  br label %707

703:                                              ; preds = %644
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %4, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %707

707:                                              ; preds = %703, %699
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %708

708:                                              ; preds = %707, %695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %709

709:                                              ; preds = %708, %691
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %710

710:                                              ; preds = %709, %687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %711

711:                                              ; preds = %710, %683
  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
  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
  br label %1367

712:                                              ; preds = %651
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %4, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %5, align 4
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  br label %1367

716:                                              ; preds = %654
  %717 = landingpad { ptr, i32 }
          catch ptr null
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %4, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %5, align 4
  br label %734

720:                                              ; preds = %656
  %721 = landingpad { ptr, i32 }
          catch ptr null
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %4, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %5, align 4
  br label %733

724:                                              ; preds = %657
  %725 = landingpad { ptr, i32 }
          catch ptr null
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %4, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %5, align 4
  br label %732

728:                                              ; preds = %660, %658
  %729 = landingpad { ptr, i32 }
          catch ptr null
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %4, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %732

732:                                              ; preds = %728, %724
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %733

733:                                              ; preds = %732, %720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %734

734:                                              ; preds = %733, %716
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %743

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

739:                                              ; preds = %671, %669, %666
  %740 = landingpad { ptr, i32 }
          catch ptr null
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %4, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br label %743

743:                                              ; preds = %739, %735, %734
  %744 = load ptr, ptr %4, align 8
  %745 = call ptr @__cxa_begin_catch(ptr %744) #8
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %747 unwind label %779

747:                                              ; preds = %743
  %748 = load ptr, ptr %746, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  %749 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %750 unwind label %783

750:                                              ; preds = %747
  %751 = load ptr, ptr %749, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef nonnull align 8 dereferenceable(30) %751, i32 noundef 944)
          to label %752 unwind label %783

752:                                              ; preds = %750
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %748, ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef @.str.193)
          to label %753 unwind label %783

753:                                              ; preds = %752
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  invoke void @__cxa_end_catch()
          to label %754 unwind label %248

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %778, %754
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #8
  %758 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %759 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %760 = 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 %80, ptr noundef nonnull align 8 dereferenceable(88) %760)
          to label %761 unwind label %789

761:                                              ; preds = %757
  %762 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %763 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %762)
          to label %764 unwind label %793

764:                                              ; preds = %761
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %79, ptr noundef nonnull align 8 dereferenceable(136) %758, ptr noundef %759, ptr noundef %80, ptr noundef nonnull align 8 dereferenceable(24) %763, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %765 unwind label %793

765:                                              ; preds = %764
  %766 = 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) %79) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %82, 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 %81, ptr noundef %82, i1 noundef zeroext false)
          to label %767 unwind label %798

767:                                              ; preds = %765
  %768 = 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) %81) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  br label %769

769:                                              ; preds = %767
  %770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %771 unwind label %802

771:                                              ; preds = %769
  %772 = load ptr, ptr %770, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #8
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %774 unwind label %806

774:                                              ; preds = %771
  %775 = load ptr, ptr %773, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %83, ptr noundef nonnull align 8 dereferenceable(30) %775, i32 noundef 947)
          to label %776 unwind label %806

776:                                              ; preds = %774
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %772, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(22) @.str.203, ptr noundef nonnull align 8 dereferenceable(30) %83)
          to label %777 unwind label %806

777:                                              ; preds = %776
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #8
  br label %822

778:                                              ; preds = %672, %662
  br label %755

779:                                              ; preds = %743
  %780 = landingpad { ptr, i32 }
          cleanup
  %781 = extractvalue { ptr, i32 } %780, 0
  store ptr %781, ptr %4, align 8
  %782 = extractvalue { ptr, i32 } %780, 1
  store i32 %782, ptr %5, align 4
  br label %787

783:                                              ; preds = %752, %750, %747
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %4, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %787

787:                                              ; preds = %783, %779
  invoke void @__cxa_end_catch()
          to label %788 unwind label %1377

788:                                              ; preds = %787
  br label %1367

789:                                              ; preds = %757
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %4, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %5, align 4
  br label %797

793:                                              ; preds = %764, %761
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %4, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  br label %797

797:                                              ; preds = %793, %789
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #8
  br label %1367

798:                                              ; preds = %765
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %4, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  br label %1367

802:                                              ; preds = %769
  %803 = landingpad { ptr, i32 }
          catch ptr null
  %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 = %776, %774, %771
  %807 = landingpad { ptr, i32 }
          catch ptr null
  %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 @llvm.lifetime.end.p0(i64 32, ptr %83) #8
  br label %810

810:                                              ; preds = %806, %802
  %811 = load ptr, ptr %4, align 8
  %812 = call ptr @__cxa_begin_catch(ptr %811) #8
  %813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %814 unwind label %836

814:                                              ; preds = %810
  %815 = load ptr, ptr %813, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #8
  %816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %817 unwind label %840

817:                                              ; preds = %814
  %818 = load ptr, ptr %816, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef nonnull align 8 dereferenceable(30) %818, i32 noundef 947)
          to label %819 unwind label %840

819:                                              ; preds = %817
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %815, ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef @.str.204)
          to label %820 unwind label %840

820:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  invoke void @__cxa_end_catch()
          to label %821 unwind label %248

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821, %777
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %86, 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 %85, ptr noundef %86)
          to label %825 unwind label %846

825:                                              ; preds = %824
  %826 = 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) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %827

827:                                              ; preds = %825
  %828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %829 unwind label %850

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

832:                                              ; preds = %829
  %833 = load ptr, ptr %831, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %87, ptr noundef nonnull align 8 dereferenceable(30) %833, i32 noundef 949)
          to label %834 unwind label %854

834:                                              ; preds = %832
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA30_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %830, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(30) @.str.205, ptr noundef nonnull align 8 dereferenceable(30) %87)
          to label %835 unwind label %854

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

836:                                              ; preds = %810
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %4, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %5, align 4
  br label %844

840:                                              ; preds = %819, %817, %814
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %4, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  br label %844

844:                                              ; preds = %840, %836
  invoke void @__cxa_end_catch()
          to label %845 unwind label %1377

845:                                              ; preds = %844
  br label %1367

846:                                              ; preds = %824
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %4, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %1367

850:                                              ; preds = %827
  %851 = landingpad { ptr, i32 }
          catch ptr null
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %4, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %5, align 4
  br label %858

854:                                              ; preds = %834, %832, %829
  %855 = landingpad { ptr, i32 }
          catch ptr null
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %4, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  br label %858

858:                                              ; preds = %854, %850
  %859 = load ptr, ptr %4, align 8
  %860 = call ptr @__cxa_begin_catch(ptr %859) #8
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %862 unwind label %906

862:                                              ; preds = %858
  %863 = load ptr, ptr %861, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #8
  %864 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %865 unwind label %910

865:                                              ; preds = %862
  %866 = load ptr, ptr %864, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %88, ptr noundef nonnull align 8 dereferenceable(30) %866, i32 noundef 949)
          to label %867 unwind label %910

867:                                              ; preds = %865
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %863, ptr noundef nonnull align 8 dereferenceable(30) %88, ptr noundef @.str.206)
          to label %868 unwind label %910

868:                                              ; preds = %867
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  invoke void @__cxa_end_catch()
          to label %869 unwind label %248

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869, %835
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  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 @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.207)
          to label %873 unwind label %916

873:                                              ; preds = %872
  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.200)
          to label %874 unwind label %920

874:                                              ; preds = %873
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.190)
          to label %875 unwind label %924

875:                                              ; preds = %874
  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.202)
          to label %876 unwind label %928

876:                                              ; preds = %875
  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)
          to label %877 unwind label %932

877:                                              ; preds = %876
  %878 = 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) %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 @_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
  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
  %879 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %880 = load ptr, ptr %879, align 8, !tbaa !9
  %881 = getelementptr inbounds ptr, ptr %880, i64 5
  %882 = load ptr, ptr %881, align 8
  invoke void %882(ptr noundef nonnull align 8 dereferenceable(96) %879)
          to label %883 unwind label %248

883:                                              ; preds = %877
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.208)
          to label %884 unwind label %940

884:                                              ; preds = %883
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.191)
          to label %885 unwind label %944

885:                                              ; preds = %884
  %886 = 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) %95) #8
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #8
  br label %887

887:                                              ; preds = %885
  %888 = 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 %99) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %889 unwind label %949

889:                                              ; preds = %887
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %890 unwind label %953

890:                                              ; preds = %889
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %891 unwind label %957

891:                                              ; preds = %890
  %892 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %888, ptr noundef %98)
          to label %893 unwind label %961

893:                                              ; preds = %891
  %894 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %892)
          to label %895 unwind label %961

895:                                              ; preds = %893
  %896 = xor i1 %894, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  br i1 %896, label %897, label %1011

897:                                              ; preds = %895
  %898 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %899 unwind label %968

899:                                              ; preds = %897
  %900 = load ptr, ptr %898, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #8
  %901 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %902 unwind label %972

902:                                              ; preds = %899
  %903 = load ptr, ptr %901, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef nonnull align 8 dereferenceable(30) %903, i32 noundef 962)
          to label %904 unwind label %972

904:                                              ; preds = %902
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %900, ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef @.str.192)
          to label %905 unwind label %972

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

906:                                              ; preds = %858
  %907 = landingpad { ptr, i32 }
          cleanup
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %4, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %5, align 4
  br label %914

910:                                              ; preds = %867, %865, %862
  %911 = landingpad { ptr, i32 }
          cleanup
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %4, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  br label %914

914:                                              ; preds = %910, %906
  invoke void @__cxa_end_catch()
          to label %915 unwind label %1377

915:                                              ; preds = %914
  br label %1367

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

920:                                              ; preds = %873
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %4, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %5, align 4
  br label %938

924:                                              ; preds = %874
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %4, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %5, align 4
  br label %937

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

932:                                              ; preds = %876
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %4, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %936

936:                                              ; preds = %932, %928
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %937

937:                                              ; preds = %936, %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %938

938:                                              ; preds = %937, %920
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %939

939:                                              ; preds = %938, %916
  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
  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
  br label %1367

940:                                              ; preds = %883
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %4, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %5, align 4
  br label %948

944:                                              ; preds = %884
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %4, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %948

948:                                              ; preds = %944, %940
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #8
  br label %1367

949:                                              ; preds = %887
  %950 = landingpad { ptr, i32 }
          catch ptr null
  %951 = extractvalue { ptr, i32 } %950, 0
  store ptr %951, ptr %4, align 8
  %952 = extractvalue { ptr, i32 } %950, 1
  store i32 %952, ptr %5, align 4
  br label %967

953:                                              ; preds = %889
  %954 = landingpad { ptr, i32 }
          catch ptr null
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %4, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %5, align 4
  br label %966

957:                                              ; preds = %890
  %958 = landingpad { ptr, i32 }
          catch ptr null
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %4, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %5, align 4
  br label %965

961:                                              ; preds = %893, %891
  %962 = landingpad { ptr, i32 }
          catch ptr null
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %4, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  br label %965

965:                                              ; preds = %961, %957
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %966

966:                                              ; preds = %965, %953
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  br label %967

967:                                              ; preds = %966, %949
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  br label %976

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

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

976:                                              ; preds = %972, %968, %967
  %977 = load ptr, ptr %4, align 8
  %978 = call ptr @__cxa_begin_catch(ptr %977) #8
  %979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %980 unwind label %1012

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

983:                                              ; preds = %980
  %984 = load ptr, ptr %982, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %102, ptr noundef nonnull align 8 dereferenceable(30) %984, i32 noundef 962)
          to label %985 unwind label %1016

985:                                              ; preds = %983
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %981, ptr noundef nonnull align 8 dereferenceable(30) %102, ptr noundef @.str.193)
          to label %986 unwind label %1016

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

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %1011, %987
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #8
  %991 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %992 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %993 = 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 %104, ptr noundef nonnull align 8 dereferenceable(88) %993)
          to label %994 unwind label %1022

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

997:                                              ; preds = %994
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %103, ptr noundef nonnull align 8 dereferenceable(136) %991, ptr noundef %992, ptr noundef %104, ptr noundef nonnull align 8 dereferenceable(24) %996, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %998 unwind label %1026

998:                                              ; preds = %997
  %999 = 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) %103) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #8
  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 @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef %106, i1 noundef zeroext false)
          to label %1000 unwind label %1031

1000:                                             ; preds = %998
  %1001 = 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) %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 %1002

1002:                                             ; preds = %1000
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1004 unwind label %1035

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

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %1006, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %107, ptr noundef nonnull align 8 dereferenceable(30) %1008, i32 noundef 965)
          to label %1009 unwind label %1039

1009:                                             ; preds = %1007
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1005, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %107)
          to label %1010 unwind label %1039

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

1011:                                             ; preds = %905, %895
  br label %988

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

1016:                                             ; preds = %985, %983, %980
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %4, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #8
  br label %1020

1020:                                             ; preds = %1016, %1012
  invoke void @__cxa_end_catch()
          to label %1021 unwind label %1377

1021:                                             ; preds = %1020
  br label %1367

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

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

1030:                                             ; preds = %1026, %1022
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #8
  br label %1367

1031:                                             ; preds = %998
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %4, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, 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 %1367

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

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

1043:                                             ; preds = %1039, %1035
  %1044 = load ptr, ptr %4, align 8
  %1045 = call ptr @__cxa_begin_catch(ptr %1044) #8
  %1046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1047 unwind label %1069

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

1050:                                             ; preds = %1047
  %1051 = load ptr, ptr %1049, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef nonnull align 8 dereferenceable(30) %1051, i32 noundef 965)
          to label %1052 unwind label %1073

1052:                                             ; preds = %1050
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1048, ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef @.str.195)
          to label %1053 unwind label %1073

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

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054, %1010
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %110, 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 %109, ptr noundef %110)
          to label %1058 unwind label %1079

1058:                                             ; preds = %1057
  %1059 = 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) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #8
  br label %1060

1060:                                             ; preds = %1058
  %1061 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1062 unwind label %1083

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

1065:                                             ; preds = %1062
  %1066 = load ptr, ptr %1064, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %111, ptr noundef nonnull align 8 dereferenceable(30) %1066, i32 noundef 967)
          to label %1067 unwind label %1087

1067:                                             ; preds = %1065
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA42_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1063, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(42) @.str.209, ptr noundef nonnull align 8 dereferenceable(30) %111)
          to label %1068 unwind label %1087

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

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

1073:                                             ; preds = %1052, %1050, %1047
  %1074 = landingpad { ptr, i32 }
          cleanup
  %1075 = extractvalue { ptr, i32 } %1074, 0
  store ptr %1075, ptr %4, align 8
  %1076 = extractvalue { ptr, i32 } %1074, 1
  store i32 %1076, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  br label %1077

1077:                                             ; preds = %1073, %1069
  invoke void @__cxa_end_catch()
          to label %1078 unwind label %1377

1078:                                             ; preds = %1077
  br label %1367

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

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

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

1091:                                             ; preds = %1087, %1083
  %1092 = load ptr, ptr %4, align 8
  %1093 = call ptr @__cxa_begin_catch(ptr %1092) #8
  %1094 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1095 unwind label %1142

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

1098:                                             ; preds = %1095
  %1099 = load ptr, ptr %1097, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %112, ptr noundef nonnull align 8 dereferenceable(30) %1099, i32 noundef 967)
          to label %1100 unwind label %1146

1100:                                             ; preds = %1098
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1096, ptr noundef nonnull align 8 dereferenceable(30) %112, ptr noundef @.str.210)
          to label %1101 unwind label %1146

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

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102, %1068
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #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 @llvm.lifetime.start.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef @.str.211)
          to label %1106 unwind label %1152

1106:                                             ; preds = %1105
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.200)
          to label %1107 unwind label %1156

1107:                                             ; preds = %1106
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef @.str.212)
          to label %1108 unwind label %1160

1108:                                             ; preds = %1107
  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.190)
          to label %1109 unwind label %1164

1109:                                             ; preds = %1108
  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.202)
          to label %1110 unwind label %1168

1110:                                             ; preds = %1109
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str)
          to label %1111 unwind label %1172

1111:                                             ; preds = %1110
  %1112 = 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) %113) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  %1113 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1114 = load ptr, ptr %1113, align 8, !tbaa !9
  %1115 = getelementptr inbounds ptr, ptr %1114, i64 5
  %1116 = load ptr, ptr %1115, align 8
  invoke void %1116(ptr noundef nonnull align 8 dereferenceable(96) %1113)
          to label %1117 unwind label %248

1117:                                             ; preds = %1111
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.208)
          to label %1118 unwind label %1181

1118:                                             ; preds = %1117
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.213)
          to label %1119 unwind label %1185

1119:                                             ; preds = %1118
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %121, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef @.str.214)
          to label %1120 unwind label %1189

1120:                                             ; preds = %1119
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %120, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.191)
          to label %1121 unwind label %1193

1121:                                             ; preds = %1120
  %1122 = 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) %120) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #8
  br label %1123

1123:                                             ; preds = %1121
  %1124 = 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 %126) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1125 unwind label %1200

1125:                                             ; preds = %1123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %1126 unwind label %1204

1126:                                             ; preds = %1125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1127 unwind label %1208

1127:                                             ; preds = %1126
  %1128 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1124, ptr noundef %125)
          to label %1129 unwind label %1212

1129:                                             ; preds = %1127
  %1130 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1128)
          to label %1131 unwind label %1212

1131:                                             ; preds = %1129
  %1132 = xor i1 %1130, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br i1 %1132, label %1133, label %1262

1133:                                             ; preds = %1131
  %1134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1135 unwind label %1219

1135:                                             ; preds = %1133
  %1136 = load ptr, ptr %1134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #8
  %1137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1138 unwind label %1223

1138:                                             ; preds = %1135
  %1139 = load ptr, ptr %1137, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %128, ptr noundef nonnull align 8 dereferenceable(30) %1139, i32 noundef 983)
          to label %1140 unwind label %1223

1140:                                             ; preds = %1138
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1136, ptr noundef nonnull align 8 dereferenceable(30) %128, ptr noundef @.str.192)
          to label %1141 unwind label %1223

1141:                                             ; preds = %1140
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  br label %1262

1142:                                             ; preds = %1091
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %4, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %5, align 4
  br label %1150

1146:                                             ; preds = %1100, %1098, %1095
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %4, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  br label %1150

1150:                                             ; preds = %1146, %1142
  invoke void @__cxa_end_catch()
          to label %1151 unwind label %1377

1151:                                             ; preds = %1150
  br label %1367

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

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

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

1164:                                             ; preds = %1108
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %4, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %5, align 4
  br label %1177

1168:                                             ; preds = %1109
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %4, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %5, align 4
  br label %1176

1172:                                             ; preds = %1110
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %4, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %1176

1176:                                             ; preds = %1172, %1168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %1177

1177:                                             ; preds = %1176, %1164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  br label %1178

1178:                                             ; preds = %1177, %1160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %1179

1179:                                             ; preds = %1178, %1156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %1180

1180:                                             ; preds = %1179, %1152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  br label %1367

1181:                                             ; preds = %1117
  %1182 = landingpad { ptr, i32 }
          cleanup
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %4, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %5, align 4
  br label %1199

1185:                                             ; preds = %1118
  %1186 = landingpad { ptr, i32 }
          cleanup
  %1187 = extractvalue { ptr, i32 } %1186, 0
  store ptr %1187, ptr %4, align 8
  %1188 = extractvalue { ptr, i32 } %1186, 1
  store i32 %1188, ptr %5, align 4
  br label %1198

1189:                                             ; preds = %1119
  %1190 = landingpad { ptr, i32 }
          cleanup
  %1191 = extractvalue { ptr, i32 } %1190, 0
  store ptr %1191, ptr %4, align 8
  %1192 = extractvalue { ptr, i32 } %1190, 1
  store i32 %1192, ptr %5, align 4
  br label %1197

1193:                                             ; preds = %1120
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %4, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  br label %1197

1197:                                             ; preds = %1193, %1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  br label %1198

1198:                                             ; preds = %1197, %1185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  br label %1199

1199:                                             ; preds = %1198, %1181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #8
  br label %1367

1200:                                             ; preds = %1123
  %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
  br label %1218

1204:                                             ; preds = %1125
  %1205 = landingpad { ptr, i32 }
          catch ptr null
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %4, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %5, align 4
  br label %1217

1208:                                             ; preds = %1126
  %1209 = landingpad { ptr, i32 }
          catch ptr null
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %4, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %5, align 4
  br label %1216

1212:                                             ; preds = %1129, %1127
  %1213 = landingpad { ptr, i32 }
          catch ptr null
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %4, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  br label %1216

1216:                                             ; preds = %1212, %1208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %1217

1217:                                             ; preds = %1216, %1204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  br label %1218

1218:                                             ; preds = %1217, %1200
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br label %1227

1219:                                             ; preds = %1133
  %1220 = landingpad { ptr, i32 }
          catch ptr null
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %4, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %5, align 4
  br label %1227

1223:                                             ; preds = %1140, %1138, %1135
  %1224 = landingpad { ptr, i32 }
          catch ptr null
  %1225 = extractvalue { ptr, i32 } %1224, 0
  store ptr %1225, ptr %4, align 8
  %1226 = extractvalue { ptr, i32 } %1224, 1
  store i32 %1226, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  br label %1227

1227:                                             ; preds = %1223, %1219, %1218
  %1228 = load ptr, ptr %4, align 8
  %1229 = call ptr @__cxa_begin_catch(ptr %1228) #8
  %1230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1231 unwind label %1263

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

1234:                                             ; preds = %1231
  %1235 = load ptr, ptr %1233, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %129, ptr noundef nonnull align 8 dereferenceable(30) %1235, i32 noundef 983)
          to label %1236 unwind label %1267

1236:                                             ; preds = %1234
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1232, ptr noundef nonnull align 8 dereferenceable(30) %129, ptr noundef @.str.193)
          to label %1237 unwind label %1267

1237:                                             ; preds = %1236
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #8
  invoke void @__cxa_end_catch()
          to label %1238 unwind label %248

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1262, %1238
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #8
  %1242 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  %1243 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %1244 = 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 %131, ptr noundef nonnull align 8 dereferenceable(88) %1244)
          to label %1245 unwind label %1273

1245:                                             ; preds = %1241
  %1246 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  %1247 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1246)
          to label %1248 unwind label %1277

1248:                                             ; preds = %1245
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %130, ptr noundef nonnull align 8 dereferenceable(136) %1242, ptr noundef %1243, ptr noundef %131, ptr noundef nonnull align 8 dereferenceable(24) %1247, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1249 unwind label %1277

1249:                                             ; preds = %1248
  %1250 = 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) %130) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %131) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %133, 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 %132, ptr noundef %133, i1 noundef zeroext false)
          to label %1251 unwind label %1282

1251:                                             ; preds = %1249
  %1252 = 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) %132) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %1253

1253:                                             ; preds = %1251
  %1254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1255 unwind label %1286

1255:                                             ; preds = %1253
  %1256 = load ptr, ptr %1254, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #8
  %1257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1258 unwind label %1290

1258:                                             ; preds = %1255
  %1259 = load ptr, ptr %1257, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %134, ptr noundef nonnull align 8 dereferenceable(30) %1259, i32 noundef 986)
          to label %1260 unwind label %1290

1260:                                             ; preds = %1258
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1256, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %134)
          to label %1261 unwind label %1290

1261:                                             ; preds = %1260
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  br label %1306

1262:                                             ; preds = %1141, %1131
  br label %1239

1263:                                             ; preds = %1227
  %1264 = landingpad { ptr, i32 }
          cleanup
  %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 = %1236, %1234, %1231
  %1268 = landingpad { ptr, i32 }
          cleanup
  %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 %129) #8
  br label %1271

1271:                                             ; preds = %1267, %1263
  invoke void @__cxa_end_catch()
          to label %1272 unwind label %1377

1272:                                             ; preds = %1271
  br label %1367

1273:                                             ; preds = %1241
  %1274 = landingpad { ptr, i32 }
          cleanup
  %1275 = extractvalue { ptr, i32 } %1274, 0
  store ptr %1275, ptr %4, align 8
  %1276 = extractvalue { ptr, i32 } %1274, 1
  store i32 %1276, ptr %5, align 4
  br label %1281

1277:                                             ; preds = %1248, %1245
  %1278 = landingpad { ptr, i32 }
          cleanup
  %1279 = extractvalue { ptr, i32 } %1278, 0
  store ptr %1279, ptr %4, align 8
  %1280 = extractvalue { ptr, i32 } %1278, 1
  store i32 %1280, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %131) #8
  br label %1281

1281:                                             ; preds = %1277, %1273
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #8
  br label %1367

1282:                                             ; preds = %1249
  %1283 = landingpad { ptr, i32 }
          cleanup
  %1284 = extractvalue { ptr, i32 } %1283, 0
  store ptr %1284, ptr %4, align 8
  %1285 = extractvalue { ptr, i32 } %1283, 1
  store i32 %1285, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %1367

1286:                                             ; preds = %1253
  %1287 = landingpad { ptr, i32 }
          catch ptr null
  %1288 = extractvalue { ptr, i32 } %1287, 0
  store ptr %1288, ptr %4, align 8
  %1289 = extractvalue { ptr, i32 } %1287, 1
  store i32 %1289, ptr %5, align 4
  br label %1294

1290:                                             ; preds = %1260, %1258, %1255
  %1291 = landingpad { ptr, i32 }
          catch ptr null
  %1292 = extractvalue { ptr, i32 } %1291, 0
  store ptr %1292, ptr %4, align 8
  %1293 = extractvalue { ptr, i32 } %1291, 1
  store i32 %1293, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  br label %1294

1294:                                             ; preds = %1290, %1286
  %1295 = load ptr, ptr %4, align 8
  %1296 = call ptr @__cxa_begin_catch(ptr %1295) #8
  %1297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1298 unwind label %1320

1298:                                             ; preds = %1294
  %1299 = load ptr, ptr %1297, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #8
  %1300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1301 unwind label %1324

1301:                                             ; preds = %1298
  %1302 = load ptr, ptr %1300, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef nonnull align 8 dereferenceable(30) %1302, i32 noundef 986)
          to label %1303 unwind label %1324

1303:                                             ; preds = %1301
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1299, ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef @.str.195)
          to label %1304 unwind label %1324

1304:                                             ; preds = %1303
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  invoke void @__cxa_end_catch()
          to label %1305 unwind label %248

1305:                                             ; preds = %1304
  br label %1306

1306:                                             ; preds = %1305, %1261
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

1308:                                             ; preds = %1307
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %137, 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 %136, ptr noundef %137)
          to label %1309 unwind label %1330

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) %136) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #8
  br label %1311

1311:                                             ; preds = %1309
  %1312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1313 unwind label %1334

1313:                                             ; preds = %1311
  %1314 = load ptr, ptr %1312, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #8
  %1315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1316 unwind label %1338

1316:                                             ; preds = %1313
  %1317 = load ptr, ptr %1315, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull align 8 dereferenceable(30) %1317, i32 noundef 988)
          to label %1318 unwind label %1338

1318:                                             ; preds = %1316
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1314, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(81) @.str.215, ptr noundef nonnull align 8 dereferenceable(30) %138)
          to label %1319 unwind label %1338

1319:                                             ; preds = %1318
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  br label %1354

1320:                                             ; preds = %1294
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %4, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %5, align 4
  br label %1328

1324:                                             ; preds = %1303, %1301, %1298
  %1325 = landingpad { ptr, i32 }
          cleanup
  %1326 = extractvalue { ptr, i32 } %1325, 0
  store ptr %1326, ptr %4, align 8
  %1327 = extractvalue { ptr, i32 } %1325, 1
  store i32 %1327, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  br label %1328

1328:                                             ; preds = %1324, %1320
  invoke void @__cxa_end_catch()
          to label %1329 unwind label %1377

1329:                                             ; preds = %1328
  br label %1367

1330:                                             ; preds = %1308
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %4, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %5, align 4
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #8
  br label %1367

1334:                                             ; preds = %1311
  %1335 = landingpad { ptr, i32 }
          catch ptr null
  %1336 = extractvalue { ptr, i32 } %1335, 0
  store ptr %1336, ptr %4, align 8
  %1337 = extractvalue { ptr, i32 } %1335, 1
  store i32 %1337, ptr %5, align 4
  br label %1342

1338:                                             ; preds = %1318, %1316, %1313
  %1339 = landingpad { ptr, i32 }
          catch ptr null
  %1340 = extractvalue { ptr, i32 } %1339, 0
  store ptr %1340, ptr %4, align 8
  %1341 = extractvalue { ptr, i32 } %1339, 1
  store i32 %1341, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  br label %1342

1342:                                             ; preds = %1338, %1334
  %1343 = load ptr, ptr %4, align 8
  %1344 = call ptr @__cxa_begin_catch(ptr %1343) #8
  %1345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1346 unwind label %1357

1346:                                             ; preds = %1342
  %1347 = load ptr, ptr %1345, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #8
  %1348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1349 unwind label %1361

1349:                                             ; preds = %1346
  %1350 = load ptr, ptr %1348, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull align 8 dereferenceable(30) %1350, i32 noundef 988)
          to label %1351 unwind label %1361

1351:                                             ; preds = %1349
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1347, ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef @.str.216)
          to label %1352 unwind label %1361

1352:                                             ; preds = %1351
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #8
  invoke void @__cxa_end_catch()
          to label %1353 unwind label %248

1353:                                             ; preds = %1352
  br label %1354

1354:                                             ; preds = %1353, %1319
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, 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

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

1361:                                             ; preds = %1351, %1349, %1346
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %4, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #8
  br label %1365

1365:                                             ; preds = %1361, %1357
  invoke void @__cxa_end_catch()
          to label %1366 unwind label %1377

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366, %1330, %1329, %1282, %1281, %1272, %1199, %1180, %1151, %1079, %1078, %1031, %1030, %1021, %948, %939, %915, %846, %845, %798, %797, %788, %712, %711, %682, %613, %612, %565, %564, %555, %479, %478, %454, %386, %385, %338, %337, %328, %252, %248, %247, %220
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, 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 %1368

1368:                                             ; preds = %1367, %216, %212
  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 %1369

1369:                                             ; preds = %1368, %208, %204
  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 %1370

1370:                                             ; preds = %1369, %200, %196
  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 %1371

1371:                                             ; preds = %1370, %192
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #8
  br label %1372

1372:                                             ; preds = %1371
  %1373 = load ptr, ptr %4, align 8
  %1374 = load i32, ptr %5, align 4
  %1375 = insertvalue { ptr, i32 } poison, ptr %1373, 0
  %1376 = insertvalue { ptr, i32 } %1375, i32 %1374, 1
  resume { ptr, i32 } %1376

1377:                                             ; preds = %1365, %1328, %1271, %1150, %1077, %1020, %914, %844, %787, %681, %611, %554, %453, %384, %327
  %1378 = landingpad { ptr, i32 }
          catch ptr null
  %1379 = extractvalue { ptr, i32 } %1378, 0
  call void @__clang_call_terminate(ptr %1379) #11
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_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(22), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA42_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(42), ptr noundef nonnull align 8 dereferenceable(30)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_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(81), 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.187 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [131 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_traitsIcESaIcEEEA18_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(18), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_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(26), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA30_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(30), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests19TestPlannerElseTest7RunImplEv(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::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::shared_ptr.82", 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.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.UnitTest::TestDetails", align 8
  %51 = alloca %"class.UnitTest::TestDetails", align 8
  %52 = alloca %"class.std::shared_ptr.76", align 8
  %53 = alloca %"class.std::shared_ptr.29", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::shared_ptr.76", align 8
  %56 = alloca %"class.UnitTest::TestDetails", align 8
  %57 = alloca %"class.UnitTest::TestDetails", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::shared_ptr.76", align 8
  %60 = alloca %"class.UnitTest::TestDetails", align 8
  %61 = alloca %"class.UnitTest::TestDetails", 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.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.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.UnitTest::TestDetails", align 8
  %99 = alloca %"class.UnitTest::TestDetails", align 8
  %100 = alloca %"class.std::shared_ptr.76", align 8
  %101 = alloca %"class.std::shared_ptr.29", 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::shared_ptr.76", align 8
  %108 = alloca %"class.UnitTest::TestDetails", align 8
  %109 = alloca %"class.UnitTest::TestDetails", 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.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.UnitTest::TestDetails", align 8
  %126 = alloca %"class.UnitTest::TestDetails", align 8
  %127 = alloca %"class.std::shared_ptr.76", align 8
  %128 = alloca %"class.std::shared_ptr.29", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::shared_ptr.76", align 8
  %131 = alloca %"class.UnitTest::TestDetails", align 8
  %132 = alloca %"class.UnitTest::TestDetails", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::shared_ptr.76", align 8
  %135 = alloca %"class.UnitTest::TestDetails", align 8
  %136 = alloca %"class.UnitTest::TestDetails", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  %137 = tail call noalias noundef nonnull dereferenceable(33088) ptr @_Znwm(i64 noundef 33088) #9
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %137)
          to label %138 unwind label %185

138:                                              ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull %137)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  %139 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #9
          to label %140 unwind label %187

140:                                              ; preds = %138
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %139)
          to label %141 unwind label %189

141:                                              ; preds = %140
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull %139)
          to label %142 unwind label %187

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %143 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #9
          to label %144 unwind label %191

144:                                              ; preds = %142
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %143)
          to label %145 unwind label %193

145:                                              ; preds = %144
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull %143)
          to label %146 unwind label %191

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %147 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #9
          to label %148 unwind label %195

148:                                              ; preds = %146
  %149 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %150 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  %151 = 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) %147, ptr noundef %149, ptr noundef %150, ptr noundef %151)
          to label %152 unwind label %197

152:                                              ; preds = %148
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %147)
          to label %153 unwind label %195

153:                                              ; preds = %152
  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 32, ptr nonnull %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #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 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str)
          to label %154 unwind label %199

154:                                              ; preds = %153
  %155 = 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) %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.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.187)
          to label %156 unwind label %201

156:                                              ; preds = %154
  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.188)
          to label %157 unwind label %203

157:                                              ; preds = %156
  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.189)
          to label %158 unwind label %205

158:                                              ; preds = %157
  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.190)
          to label %159 unwind label %207

159:                                              ; preds = %158
  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)
          to label %160 unwind label %209

160:                                              ; preds = %159
  %161 = 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) %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 @_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
  %162 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %163 = load ptr, ptr %162, align 8, !tbaa !5
  %164 = getelementptr inbounds i8, ptr %163, i64 40
  %165 = load ptr, ptr %164, align 8
  invoke void %165(ptr noundef nonnull align 8 dereferenceable(96) %162)
          to label %166 unwind label %215

166:                                              ; preds = %160
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #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 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.191)
          to label %167 unwind label %217

167:                                              ; preds = %166
  %168 = 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) %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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  %169 = 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 %25) #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) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %170 unwind label %219

170:                                              ; preds = %167
  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) %10)
          to label %171 unwind label %221

171:                                              ; preds = %170
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %172 unwind label %223

172:                                              ; preds = %171
  %173 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull %24)
          to label %174 unwind label %225

174:                                              ; preds = %172
  %175 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %173)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br i1 %175, label %244, label %176

176:                                              ; preds = %174
  %177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %178 unwind label %230

178:                                              ; preds = %176
  %179 = load ptr, ptr %177, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %181 unwind label %232

181:                                              ; preds = %178
  %182 = load ptr, ptr %180, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %27, ptr noundef nonnull align 8 dereferenceable(30) %182, i32 noundef 909)
          to label %183 unwind label %232

183:                                              ; preds = %181
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %179, ptr noundef nonnull align 8 dereferenceable(30) %27, ptr noundef nonnull @.str.192)
          to label %184 unwind label %232

184:                                              ; preds = %183
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %244

185:                                              ; preds = %1
  %186 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %137, i64 noundef 33088) #10
  br label %947

187:                                              ; preds = %141, %138
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %946

189:                                              ; preds = %140
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %139, i64 noundef 144) #10
  br label %946

191:                                              ; preds = %145, %142
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %945

193:                                              ; preds = %144
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %143, i64 noundef 136) #10
  br label %945

195:                                              ; preds = %152, %146
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %944

197:                                              ; preds = %148
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %147, i64 noundef 96) #10
  br label %944

199:                                              ; preds = %153
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  br label %943

201:                                              ; preds = %154
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %214

203:                                              ; preds = %156
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %213

205:                                              ; preds = %157
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %212

207:                                              ; preds = %158
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %211

209:                                              ; preds = %159
  %210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %211

211:                                              ; preds = %209, %207
  %.pn = phi { ptr, i32 } [ %210, %209 ], [ %208, %207 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %212

212:                                              ; preds = %211, %205
  %.pn.pn = phi { ptr, i32 } [ %.pn, %211 ], [ %206, %205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %213

213:                                              ; preds = %212, %203
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %212 ], [ %204, %203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %214

214:                                              ; preds = %213, %201
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %213 ], [ %202, %201 ]
  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
  br label %943

215:                                              ; preds = %936, %904, %863, %778, %771, %739, %698, %624, %618, %586, %545, %472, %465, %433, %392, %322, %316, %284, %243, %160
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %943

217:                                              ; preds = %166
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #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 %943

219:                                              ; preds = %167
  %220 = landingpad { ptr, i32 }
          catch ptr null
  br label %229

221:                                              ; preds = %170
  %222 = landingpad { ptr, i32 }
          catch ptr null
  br label %228

223:                                              ; preds = %171
  %224 = landingpad { ptr, i32 }
          catch ptr null
  br label %227

225:                                              ; preds = %172
  %226 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %227

227:                                              ; preds = %225, %223
  %.pn67 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %228

228:                                              ; preds = %227, %221
  %.pn67.pn = phi { ptr, i32 } [ %.pn67, %227 ], [ %222, %221 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %229

229:                                              ; preds = %228, %219
  %.pn67.pn.pn = phi { ptr, i32 } [ %.pn67.pn, %228 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %234

230:                                              ; preds = %176
  %231 = landingpad { ptr, i32 }
          catch ptr null
  br label %234

232:                                              ; preds = %183, %181, %178
  %233 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %234

234:                                              ; preds = %232, %230, %229
  %.pn68 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ], [ %.pn67.pn.pn, %229 ]
  %.724 = extractvalue { ptr, i32 } %.pn68, 0
  %235 = call ptr @__cxa_begin_catch(ptr %.724) #8
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %237 unwind label %262

237:                                              ; preds = %234
  %238 = load ptr, ptr %236, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  %239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %240 unwind label %264

240:                                              ; preds = %237
  %241 = load ptr, ptr %239, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef nonnull align 8 dereferenceable(30) %241, i32 noundef 909)
          to label %242 unwind label %264

242:                                              ; preds = %240
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %238, ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef nonnull @.str.193)
          to label %243 unwind label %264

243:                                              ; preds = %242
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  invoke void @__cxa_end_catch()
          to label %244 unwind label %215

244:                                              ; preds = %174, %184, %243
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  %245 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %246 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %247 = 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) %247)
  %248 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %249 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %248)
  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) %245, ptr noundef %246, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(24) %249, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %250 unwind label %267

250:                                              ; preds = %244
  %251 = 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 %252 unwind label %269

252:                                              ; preds = %250
  %253 = 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) %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
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %255 unwind label %271

255:                                              ; preds = %252
  %256 = load ptr, ptr %254, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %258 unwind label %273

258:                                              ; preds = %255
  %259 = load ptr, ptr %257, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %33, ptr noundef nonnull align 8 dereferenceable(30) %259, i32 noundef 912)
          to label %260 unwind label %273

260:                                              ; preds = %258
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %256, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %33)
          to label %261 unwind label %273

261:                                              ; preds = %260
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %285

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

264:                                              ; preds = %242, %240, %237
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  br label %266

266:                                              ; preds = %264, %262
  %.pn69 = phi { ptr, i32 } [ %265, %264 ], [ %263, %262 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

267:                                              ; preds = %244
  %268 = 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 %943

269:                                              ; preds = %250
  %270 = 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 %943

271:                                              ; preds = %252
  %272 = landingpad { ptr, i32 }
          catch ptr null
  br label %275

273:                                              ; preds = %260, %258, %255
  %274 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %275

275:                                              ; preds = %273, %271
  %.pn71 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ]
  %.926 = extractvalue { ptr, i32 } %.pn71, 0
  %276 = call ptr @__cxa_begin_catch(ptr %.926) #8
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %278 unwind label %296

278:                                              ; preds = %275
  %279 = load ptr, ptr %277, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %281 unwind label %298

281:                                              ; preds = %278
  %282 = load ptr, ptr %280, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull align 8 dereferenceable(30) %282, i32 noundef 912)
          to label %283 unwind label %298

283:                                              ; preds = %281
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %279, ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull @.str.195)
          to label %284 unwind label %298

284:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  invoke void @__cxa_end_catch()
          to label %285 unwind label %215

285:                                              ; preds = %284, %261
  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 %286 unwind label %301

286:                                              ; preds = %285
  %287 = 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) %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
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %289 unwind label %303

289:                                              ; preds = %286
  %290 = load ptr, ptr %288, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %292 unwind label %305

292:                                              ; preds = %289
  %293 = load ptr, ptr %291, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %293, i32 noundef 914)
          to label %294 unwind label %305

294:                                              ; preds = %292
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %290, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(26) @.str.196, ptr noundef nonnull align 8 dereferenceable(30) %37)
          to label %295 unwind label %305

295:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %317

296:                                              ; preds = %275
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %283, %281, %278
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %300

300:                                              ; preds = %298, %296
  %.pn72 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

301:                                              ; preds = %285
  %302 = 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 %943

303:                                              ; preds = %286
  %304 = landingpad { ptr, i32 }
          catch ptr null
  br label %307

305:                                              ; preds = %294, %292, %289
  %306 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %307

307:                                              ; preds = %305, %303
  %.pn74 = phi { ptr, i32 } [ %306, %305 ], [ %304, %303 ]
  %.1128 = extractvalue { ptr, i32 } %.pn74, 0
  %308 = call ptr @__cxa_begin_catch(ptr %.1128) #8
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %310 unwind label %347

310:                                              ; preds = %307
  %311 = load ptr, ptr %309, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  %312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %313 unwind label %349

313:                                              ; preds = %310
  %314 = load ptr, ptr %312, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %38, ptr noundef nonnull align 8 dereferenceable(30) %314, i32 noundef 914)
          to label %315 unwind label %349

315:                                              ; preds = %313
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %311, ptr noundef nonnull align 8 dereferenceable(30) %38, ptr noundef nonnull @.str.197)
          to label %316 unwind label %349

316:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  invoke void @__cxa_end_catch()
          to label %317 unwind label %215

317:                                              ; preds = %316, %295
  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 @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #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 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.198)
          to label %318 unwind label %352

318:                                              ; preds = %317
  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.188)
          to label %319 unwind label %354

319:                                              ; preds = %318
  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.189)
          to label %320 unwind label %356

320:                                              ; preds = %319
  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.190)
          to label %321 unwind label %358

321:                                              ; preds = %320
  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 %322 unwind label %360

322:                                              ; preds = %321
  %323 = 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) %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  %324 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %325 = load ptr, ptr %324, align 8, !tbaa !5
  %326 = getelementptr inbounds i8, ptr %325, i64 40
  %327 = load ptr, ptr %326, align 8
  invoke void %327(ptr noundef nonnull align 8 dereferenceable(96) %324)
          to label %328 unwind label %215

328:                                              ; preds = %322
  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.191)
          to label %329 unwind label %366

329:                                              ; preds = %328
  %330 = 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) %45) #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
  %331 = 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
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #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 %49, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %332 unwind label %368

332:                                              ; preds = %329
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %333 unwind label %370

333:                                              ; preds = %332
  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) %12)
          to label %334 unwind label %372

334:                                              ; preds = %333
  %335 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull %47)
          to label %336 unwind label %374

336:                                              ; preds = %334
  %337 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %335)
  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 nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br i1 %337, label %393, label %338

338:                                              ; preds = %336
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %340 unwind label %379

340:                                              ; preds = %338
  %341 = load ptr, ptr %339, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %343 unwind label %381

343:                                              ; preds = %340
  %344 = load ptr, ptr %342, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef nonnull align 8 dereferenceable(30) %344, i32 noundef 926)
          to label %345 unwind label %381

345:                                              ; preds = %343
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %341, ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef nonnull @.str.192)
          to label %346 unwind label %381

346:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  br label %393

347:                                              ; preds = %307
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %351

349:                                              ; preds = %315, %313, %310
  %350 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %351

351:                                              ; preds = %349, %347
  %.pn75 = phi { ptr, i32 } [ %350, %349 ], [ %348, %347 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

352:                                              ; preds = %317
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %365

354:                                              ; preds = %318
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %364

356:                                              ; preds = %319
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %363

358:                                              ; preds = %320
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %362

360:                                              ; preds = %321
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %362

362:                                              ; preds = %360, %358
  %.pn77 = phi { ptr, i32 } [ %361, %360 ], [ %359, %358 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %363

363:                                              ; preds = %362, %356
  %.pn77.pn = phi { ptr, i32 } [ %.pn77, %362 ], [ %357, %356 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %364

364:                                              ; preds = %363, %354
  %.pn77.pn.pn = phi { ptr, i32 } [ %.pn77.pn, %363 ], [ %355, %354 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %365

365:                                              ; preds = %364, %352
  %.pn77.pn.pn.pn = phi { ptr, i32 } [ %.pn77.pn.pn, %364 ], [ %353, %352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  br label %943

366:                                              ; preds = %328
  %367 = landingpad { ptr, i32 }
          cleanup
  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
  br label %943

368:                                              ; preds = %329
  %369 = landingpad { ptr, i32 }
          catch ptr null
  br label %378

370:                                              ; preds = %332
  %371 = landingpad { ptr, i32 }
          catch ptr null
  br label %377

372:                                              ; preds = %333
  %373 = landingpad { ptr, i32 }
          catch ptr null
  br label %376

374:                                              ; preds = %334
  %375 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %376

376:                                              ; preds = %374, %372
  %.pn82 = phi { ptr, i32 } [ %375, %374 ], [ %373, %372 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %377

377:                                              ; preds = %376, %370
  %.pn82.pn = phi { ptr, i32 } [ %.pn82, %376 ], [ %371, %370 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %378

378:                                              ; preds = %377, %368
  %.pn82.pn.pn = phi { ptr, i32 } [ %.pn82.pn, %377 ], [ %369, %368 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br label %383

379:                                              ; preds = %338
  %380 = landingpad { ptr, i32 }
          catch ptr null
  br label %383

381:                                              ; preds = %345, %343, %340
  %382 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  br label %383

383:                                              ; preds = %381, %379, %378
  %.pn83 = phi { ptr, i32 } [ %382, %381 ], [ %380, %379 ], [ %.pn82.pn.pn, %378 ]
  %.2037 = extractvalue { ptr, i32 } %.pn83, 0
  %384 = call ptr @__cxa_begin_catch(ptr %.2037) #8
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %386 unwind label %411

386:                                              ; preds = %383
  %387 = load ptr, ptr %385, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %389 unwind label %413

389:                                              ; preds = %386
  %390 = load ptr, ptr %388, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef nonnull align 8 dereferenceable(30) %390, i32 noundef 926)
          to label %391 unwind label %413

391:                                              ; preds = %389
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %387, ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef nonnull @.str.193)
          to label %392 unwind label %413

392:                                              ; preds = %391
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  invoke void @__cxa_end_catch()
          to label %393 unwind label %215

393:                                              ; preds = %336, %346, %392
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #8
  %394 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %395 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %396 = 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 %53, ptr noundef nonnull align 8 dereferenceable(88) %396)
  %397 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %398 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %397)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %52, ptr noundef nonnull align 8 dereferenceable(136) %394, ptr noundef %395, ptr noundef nonnull %53, ptr noundef nonnull align 8 dereferenceable(24) %398, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %399 unwind label %416

399:                                              ; preds = %393
  %400 = 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) %52) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %55, 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 %54, ptr noundef nonnull %55, i1 noundef zeroext false)
          to label %401 unwind label %418

401:                                              ; preds = %399
  %402 = 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) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  %403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %404 unwind label %420

404:                                              ; preds = %401
  %405 = load ptr, ptr %403, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #8
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %407 unwind label %422

407:                                              ; preds = %404
  %408 = load ptr, ptr %406, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull align 8 dereferenceable(30) %408, i32 noundef 929)
          to label %409 unwind label %422

409:                                              ; preds = %407
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %405, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %56)
          to label %410 unwind label %422

410:                                              ; preds = %409
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  br label %434

411:                                              ; preds = %383
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %415

413:                                              ; preds = %391, %389, %386
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  br label %415

415:                                              ; preds = %413, %411
  %.pn84 = phi { ptr, i32 } [ %414, %413 ], [ %412, %411 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

416:                                              ; preds = %393
  %417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #8
  br label %943

418:                                              ; preds = %399
  %419 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  br label %943

420:                                              ; preds = %401
  %421 = landingpad { ptr, i32 }
          catch ptr null
  br label %424

422:                                              ; preds = %409, %407, %404
  %423 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  br label %424

424:                                              ; preds = %422, %420
  %.pn86 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  %.2239 = extractvalue { ptr, i32 } %.pn86, 0
  %425 = call ptr @__cxa_begin_catch(ptr %.2239) #8
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %427 unwind label %445

427:                                              ; preds = %424
  %428 = load ptr, ptr %426, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  %429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %430 unwind label %447

430:                                              ; preds = %427
  %431 = load ptr, ptr %429, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %57, ptr noundef nonnull align 8 dereferenceable(30) %431, i32 noundef 929)
          to label %432 unwind label %447

432:                                              ; preds = %430
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %428, ptr noundef nonnull align 8 dereferenceable(30) %57, ptr noundef nonnull @.str.195)
          to label %433 unwind label %447

433:                                              ; preds = %432
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  invoke void @__cxa_end_catch()
          to label %434 unwind label %215

434:                                              ; preds = %433, %410
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %59, 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 %58, ptr noundef nonnull %59)
          to label %435 unwind label %450

435:                                              ; preds = %434
  %436 = 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) %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %438 unwind label %452

438:                                              ; preds = %435
  %439 = load ptr, ptr %437, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %441 unwind label %454

441:                                              ; preds = %438
  %442 = load ptr, ptr %440, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull align 8 dereferenceable(30) %442, i32 noundef 931)
          to label %443 unwind label %454

443:                                              ; preds = %441
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA26_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %439, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(26) @.str.196, ptr noundef nonnull align 8 dereferenceable(30) %60)
          to label %444 unwind label %454

444:                                              ; preds = %443
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  br label %466

445:                                              ; preds = %424
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %432, %430, %427
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  br label %449

449:                                              ; preds = %447, %445
  %.pn87 = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

450:                                              ; preds = %434
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  br label %943

452:                                              ; preds = %435
  %453 = landingpad { ptr, i32 }
          catch ptr null
  br label %456

454:                                              ; preds = %443, %441, %438
  %455 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  br label %456

456:                                              ; preds = %454, %452
  %.pn89 = phi { ptr, i32 } [ %455, %454 ], [ %453, %452 ]
  %.2441 = extractvalue { ptr, i32 } %.pn89, 0
  %457 = call ptr @__cxa_begin_catch(ptr %.2441) #8
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %459 unwind label %497

459:                                              ; preds = %456
  %460 = load ptr, ptr %458, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %462 unwind label %499

462:                                              ; preds = %459
  %463 = load ptr, ptr %461, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef nonnull align 8 dereferenceable(30) %463, i32 noundef 931)
          to label %464 unwind label %499

464:                                              ; preds = %462
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %460, ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef nonnull @.str.197)
          to label %465 unwind label %499

465:                                              ; preds = %464
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  invoke void @__cxa_end_catch()
          to label %466 unwind label %215

466:                                              ; preds = %465, %444
  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 @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.199)
          to label %467 unwind label %502

467:                                              ; preds = %466
  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.200)
          to label %468 unwind label %504

468:                                              ; preds = %467
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.201)
          to label %469 unwind label %506

469:                                              ; preds = %468
  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.190)
          to label %470 unwind label %508

470:                                              ; preds = %469
  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.202)
          to label %471 unwind label %510

471:                                              ; preds = %470
  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)
          to label %472 unwind label %512

472:                                              ; preds = %471
  %473 = 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) %62) #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 @_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
  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
  %474 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %475 = load ptr, ptr %474, align 8, !tbaa !5
  %476 = getelementptr inbounds i8, ptr %475, i64 40
  %477 = load ptr, ptr %476, align 8
  invoke void %477(ptr noundef nonnull align 8 dereferenceable(96) %474)
          to label %478 unwind label %215

478:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #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 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.191)
          to label %479 unwind label %519

479:                                              ; preds = %478
  %480 = 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) %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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  %481 = 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 %72) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #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 %73, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %482 unwind label %521

482:                                              ; preds = %479
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull 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) %10)
          to label %483 unwind label %523

483:                                              ; preds = %482
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %484 unwind label %525

484:                                              ; preds = %483
  %485 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %481, ptr noundef nonnull %71)
          to label %486 unwind label %527

486:                                              ; preds = %484
  %487 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %485)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  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 nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  br i1 %487, label %546, label %488

488:                                              ; preds = %486
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %490 unwind label %532

490:                                              ; preds = %488
  %491 = load ptr, ptr %489, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #8
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %493 unwind label %534

493:                                              ; preds = %490
  %494 = load ptr, ptr %492, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %74, ptr noundef nonnull align 8 dereferenceable(30) %494, i32 noundef 944)
          to label %495 unwind label %534

495:                                              ; preds = %493
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %491, ptr noundef nonnull align 8 dereferenceable(30) %74, ptr noundef nonnull @.str.192)
          to label %496 unwind label %534

496:                                              ; preds = %495
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %546

497:                                              ; preds = %456
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %464, %462, %459
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  br label %501

501:                                              ; preds = %499, %497
  %.pn90 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

502:                                              ; preds = %466
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %518

504:                                              ; preds = %467
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %517

506:                                              ; preds = %468
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %516

508:                                              ; preds = %469
  %509 = landingpad { ptr, i32 }
          cleanup
  br label %515

510:                                              ; preds = %470
  %511 = landingpad { ptr, i32 }
          cleanup
  br label %514

512:                                              ; preds = %471
  %513 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %514

514:                                              ; preds = %512, %510
  %.pn92 = phi { ptr, i32 } [ %513, %512 ], [ %511, %510 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %515

515:                                              ; preds = %514, %508
  %.pn92.pn = phi { ptr, i32 } [ %.pn92, %514 ], [ %509, %508 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %516

516:                                              ; preds = %515, %506
  %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %515 ], [ %507, %506 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %517

517:                                              ; preds = %516, %504
  %.pn92.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn, %516 ], [ %505, %504 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %518

518:                                              ; preds = %517, %502
  %.pn92.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn.pn, %517 ], [ %503, %502 ]
  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
  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
  br label %943

519:                                              ; preds = %478
  %520 = landingpad { ptr, i32 }
          cleanup
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  br label %943

521:                                              ; preds = %479
  %522 = landingpad { ptr, i32 }
          catch ptr null
  br label %531

523:                                              ; preds = %482
  %524 = landingpad { ptr, i32 }
          catch ptr null
  br label %530

525:                                              ; preds = %483
  %526 = landingpad { ptr, i32 }
          catch ptr null
  br label %529

527:                                              ; preds = %484
  %528 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %529

529:                                              ; preds = %527, %525
  %.pn98 = phi { ptr, i32 } [ %528, %527 ], [ %526, %525 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %530

530:                                              ; preds = %529, %523
  %.pn98.pn = phi { ptr, i32 } [ %.pn98, %529 ], [ %524, %523 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %531

531:                                              ; preds = %530, %521
  %.pn98.pn.pn = phi { ptr, i32 } [ %.pn98.pn, %530 ], [ %522, %521 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  br label %536

532:                                              ; preds = %488
  %533 = landingpad { ptr, i32 }
          catch ptr null
  br label %536

534:                                              ; preds = %495, %493, %490
  %535 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %536

536:                                              ; preds = %534, %532, %531
  %.pn99 = phi { ptr, i32 } [ %535, %534 ], [ %533, %532 ], [ %.pn98.pn.pn, %531 ]
  %.3451 = extractvalue { ptr, i32 } %.pn99, 0
  %537 = call ptr @__cxa_begin_catch(ptr %.3451) #8
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %539 unwind label %564

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

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

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

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

546:                                              ; preds = %486, %496, %545
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %76) #8
  %547 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %548 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %549 = 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 %77, ptr noundef nonnull align 8 dereferenceable(88) %549)
  %550 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %551 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %550)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %76, ptr noundef nonnull align 8 dereferenceable(136) %547, ptr noundef %548, ptr noundef nonnull %77, ptr noundef nonnull align 8 dereferenceable(24) %551, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %552 unwind label %569

552:                                              ; preds = %546
  %553 = 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) %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 nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %79, 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 %78, ptr noundef nonnull %79, i1 noundef zeroext false)
          to label %554 unwind label %571

554:                                              ; preds = %552
  %555 = 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) %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 nonnull %78) #8
  %556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %557 unwind label %573

557:                                              ; preds = %554
  %558 = load ptr, ptr %556, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #8
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %560 unwind label %575

560:                                              ; preds = %557
  %561 = load ptr, ptr %559, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %80, ptr noundef nonnull align 8 dereferenceable(30) %561, i32 noundef 947)
          to label %562 unwind label %575

562:                                              ; preds = %560
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %558, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(22) @.str.203, ptr noundef nonnull align 8 dereferenceable(30) %80)
          to label %563 unwind label %575

563:                                              ; preds = %562
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  br label %587

564:                                              ; preds = %536
  %565 = landingpad { ptr, i32 }
          cleanup
  br label %568

566:                                              ; preds = %544, %542, %539
  %567 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %568

568:                                              ; preds = %566, %564
  %.pn100 = phi { ptr, i32 } [ %567, %566 ], [ %565, %564 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

569:                                              ; preds = %546
  %570 = landingpad { ptr, i32 }
          cleanup
  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 nonnull %76) #8
  br label %943

571:                                              ; preds = %552
  %572 = landingpad { ptr, i32 }
          cleanup
  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 nonnull %78) #8
  br label %943

573:                                              ; preds = %554
  %574 = landingpad { ptr, i32 }
          catch ptr null
  br label %577

575:                                              ; preds = %562, %560, %557
  %576 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #8
  br label %577

577:                                              ; preds = %575, %573
  %.pn102 = phi { ptr, i32 } [ %576, %575 ], [ %574, %573 ]
  %.3653 = extractvalue { ptr, i32 } %.pn102, 0
  %578 = call ptr @__cxa_begin_catch(ptr %.3653) #8
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %580 unwind label %598

580:                                              ; preds = %577
  %581 = load ptr, ptr %579, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #8
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %583 unwind label %600

583:                                              ; preds = %580
  %584 = load ptr, ptr %582, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull align 8 dereferenceable(30) %584, i32 noundef 947)
          to label %585 unwind label %600

585:                                              ; preds = %583
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %581, ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull @.str.204)
          to label %586 unwind label %600

586:                                              ; preds = %585
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  invoke void @__cxa_end_catch()
          to label %587 unwind label %215

587:                                              ; preds = %586, %563
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %83, 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 %82, ptr noundef nonnull %83)
          to label %588 unwind label %603

588:                                              ; preds = %587
  %589 = 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) %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 nonnull %82) #8
  %590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %591 unwind label %605

591:                                              ; preds = %588
  %592 = load ptr, ptr %590, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #8
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %594 unwind label %607

594:                                              ; preds = %591
  %595 = load ptr, ptr %593, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef nonnull align 8 dereferenceable(30) %595, i32 noundef 949)
          to label %596 unwind label %607

596:                                              ; preds = %594
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA30_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %592, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(30) @.str.205, ptr noundef nonnull align 8 dereferenceable(30) %84)
          to label %597 unwind label %607

597:                                              ; preds = %596
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %619

598:                                              ; preds = %577
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %602

600:                                              ; preds = %585, %583, %580
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  br label %602

602:                                              ; preds = %600, %598
  %.pn103 = phi { ptr, i32 } [ %601, %600 ], [ %599, %598 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

603:                                              ; preds = %587
  %604 = landingpad { ptr, i32 }
          cleanup
  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 nonnull %82) #8
  br label %943

605:                                              ; preds = %588
  %606 = landingpad { ptr, i32 }
          catch ptr null
  br label %609

607:                                              ; preds = %596, %594, %591
  %608 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %609

609:                                              ; preds = %607, %605
  %.pn105 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ]
  %.3855 = extractvalue { ptr, i32 } %.pn105, 0
  %610 = call ptr @__cxa_begin_catch(ptr %.3855) #8
  %611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %612 unwind label %650

612:                                              ; preds = %609
  %613 = load ptr, ptr %611, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #8
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %615 unwind label %652

615:                                              ; preds = %612
  %616 = load ptr, ptr %614, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef nonnull align 8 dereferenceable(30) %616, i32 noundef 949)
          to label %617 unwind label %652

617:                                              ; preds = %615
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %613, ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef nonnull @.str.206)
          to label %618 unwind label %652

618:                                              ; preds = %617
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  invoke void @__cxa_end_catch()
          to label %619 unwind label %215

619:                                              ; preds = %618, %597
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #8
  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.207)
          to label %620 unwind label %655

620:                                              ; preds = %619
  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.200)
          to label %621 unwind label %657

621:                                              ; preds = %620
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.190)
          to label %622 unwind label %659

622:                                              ; preds = %621
  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.202)
          to label %623 unwind label %661

623:                                              ; preds = %622
  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)
          to label %624 unwind label %663

624:                                              ; preds = %623
  %625 = 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) %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 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
  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
  %626 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %627 = load ptr, ptr %626, align 8, !tbaa !5
  %628 = getelementptr inbounds i8, ptr %627, i64 40
  %629 = load ptr, ptr %628, align 8
  invoke void %629(ptr noundef nonnull align 8 dereferenceable(96) %626)
          to label %630 unwind label %215

630:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #8
  call void @_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 nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.208)
          to label %631 unwind label %669

631:                                              ; preds = %630
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.191)
          to label %632 unwind label %671

632:                                              ; preds = %631
  %633 = 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) %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 nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  %634 = 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 %96) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #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 %97, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %635 unwind label %674

635:                                              ; preds = %632
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %636 unwind label %676

636:                                              ; preds = %635
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull 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) %12)
          to label %637 unwind label %678

637:                                              ; preds = %636
  %638 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %634, ptr noundef nonnull %95)
          to label %639 unwind label %680

639:                                              ; preds = %637
  %640 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %638)
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #8
  br i1 %640, label %699, label %641

641:                                              ; preds = %639
  %642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %643 unwind label %685

643:                                              ; preds = %641
  %644 = load ptr, ptr %642, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #8
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %646 unwind label %687

646:                                              ; preds = %643
  %647 = load ptr, ptr %645, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %98, ptr noundef nonnull align 8 dereferenceable(30) %647, i32 noundef 962)
          to label %648 unwind label %687

648:                                              ; preds = %646
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %644, ptr noundef nonnull align 8 dereferenceable(30) %98, ptr noundef nonnull @.str.192)
          to label %649 unwind label %687

649:                                              ; preds = %648
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  br label %699

650:                                              ; preds = %609
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %654

652:                                              ; preds = %617, %615, %612
  %653 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  br label %654

654:                                              ; preds = %652, %650
  %.pn106 = phi { ptr, i32 } [ %653, %652 ], [ %651, %650 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

655:                                              ; preds = %619
  %656 = landingpad { ptr, i32 }
          cleanup
  br label %668

657:                                              ; preds = %620
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %667

659:                                              ; preds = %621
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %666

661:                                              ; preds = %622
  %662 = landingpad { ptr, i32 }
          cleanup
  br label %665

663:                                              ; preds = %623
  %664 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %665

665:                                              ; preds = %663, %661
  %.pn108 = phi { ptr, i32 } [ %664, %663 ], [ %662, %661 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %666

666:                                              ; preds = %665, %659
  %.pn108.pn = phi { ptr, i32 } [ %.pn108, %665 ], [ %660, %659 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %667

667:                                              ; preds = %666, %657
  %.pn108.pn.pn = phi { ptr, i32 } [ %.pn108.pn, %666 ], [ %658, %657 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %668

668:                                              ; preds = %667, %655
  %.pn108.pn.pn.pn = phi { ptr, i32 } [ %.pn108.pn.pn, %667 ], [ %656, %655 ]
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  br label %943

669:                                              ; preds = %630
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %673

671:                                              ; preds = %631
  %672 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %673

673:                                              ; preds = %671, %669
  %.pn113 = phi { ptr, i32 } [ %672, %671 ], [ %670, %669 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  br label %943

674:                                              ; preds = %632
  %675 = landingpad { ptr, i32 }
          catch ptr null
  br label %684

676:                                              ; preds = %635
  %677 = landingpad { ptr, i32 }
          catch ptr null
  br label %683

678:                                              ; preds = %636
  %679 = landingpad { ptr, i32 }
          catch ptr null
  br label %682

680:                                              ; preds = %637
  %681 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  br label %682

682:                                              ; preds = %680, %678
  %.pn115 = phi { ptr, i32 } [ %681, %680 ], [ %679, %678 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %683

683:                                              ; preds = %682, %676
  %.pn115.pn = phi { ptr, i32 } [ %.pn115, %682 ], [ %677, %676 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %684

684:                                              ; preds = %683, %674
  %.pn115.pn.pn = phi { ptr, i32 } [ %.pn115.pn, %683 ], [ %675, %674 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #8
  br label %689

685:                                              ; preds = %641
  %686 = landingpad { ptr, i32 }
          catch ptr null
  br label %689

687:                                              ; preds = %648, %646, %643
  %688 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  br label %689

689:                                              ; preds = %687, %685, %684
  %.pn116 = phi { ptr, i32 } [ %688, %687 ], [ %686, %685 ], [ %.pn115.pn.pn, %684 ]
  %.48 = extractvalue { ptr, i32 } %.pn116, 0
  %690 = call ptr @__cxa_begin_catch(ptr %.48) #8
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %692 unwind label %717

692:                                              ; preds = %689
  %693 = load ptr, ptr %691, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #8
  %694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %695 unwind label %719

695:                                              ; preds = %692
  %696 = load ptr, ptr %694, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %99, ptr noundef nonnull align 8 dereferenceable(30) %696, i32 noundef 962)
          to label %697 unwind label %719

697:                                              ; preds = %695
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %693, ptr noundef nonnull align 8 dereferenceable(30) %99, ptr noundef nonnull @.str.193)
          to label %698 unwind label %719

698:                                              ; preds = %697
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #8
  invoke void @__cxa_end_catch()
          to label %699 unwind label %215

699:                                              ; preds = %639, %649, %698
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %100) #8
  %700 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %701 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %702 = 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 %101, ptr noundef nonnull align 8 dereferenceable(88) %702)
  %703 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %704 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %703)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %100, ptr noundef nonnull align 8 dereferenceable(136) %700, ptr noundef %701, ptr noundef nonnull %101, ptr noundef nonnull align 8 dereferenceable(24) %704, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %705 unwind label %722

705:                                              ; preds = %699
  %706 = 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) %100) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  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 @_ZN10HtnPlanner17ToStringSolutionsB5cxx11ESt10shared_ptrISt6vectorIS0_INS_12SolutionTypeEESaIS3_EEEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull %103, i1 noundef zeroext false)
          to label %707 unwind label %724

707:                                              ; preds = %705
  %708 = 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) %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
  %709 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %710 unwind label %726

710:                                              ; preds = %707
  %711 = load ptr, ptr %709, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #8
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %713 unwind label %728

713:                                              ; preds = %710
  %714 = load ptr, ptr %712, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef nonnull align 8 dereferenceable(30) %714, i32 noundef 965)
          to label %715 unwind label %728

715:                                              ; preds = %713
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %711, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %104)
          to label %716 unwind label %728

716:                                              ; preds = %715
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  br label %740

717:                                              ; preds = %689
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %721

719:                                              ; preds = %697, %695, %692
  %720 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #8
  br label %721

721:                                              ; preds = %719, %717
  %.pn117 = phi { ptr, i32 } [ %720, %719 ], [ %718, %717 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

722:                                              ; preds = %699
  %723 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  br label %943

724:                                              ; preds = %705
  %725 = 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 %943

726:                                              ; preds = %707
  %727 = landingpad { ptr, i32 }
          catch ptr null
  br label %730

728:                                              ; preds = %715, %713, %710
  %729 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #8
  br label %730

730:                                              ; preds = %728, %726
  %.pn119 = phi { ptr, i32 } [ %729, %728 ], [ %727, %726 ]
  %.50 = extractvalue { ptr, i32 } %.pn119, 0
  %731 = call ptr @__cxa_begin_catch(ptr %.50) #8
  %732 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %733 unwind label %751

733:                                              ; preds = %730
  %734 = load ptr, ptr %732, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #8
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %736 unwind label %753

736:                                              ; preds = %733
  %737 = load ptr, ptr %735, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull align 8 dereferenceable(30) %737, i32 noundef 965)
          to label %738 unwind label %753

738:                                              ; preds = %736
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %734, ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull @.str.195)
          to label %739 unwind label %753

739:                                              ; preds = %738
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  invoke void @__cxa_end_catch()
          to label %740 unwind label %215

740:                                              ; preds = %739, %716
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %107, 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 %106, ptr noundef nonnull %107)
          to label %741 unwind label %756

741:                                              ; preds = %740
  %742 = 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) %106) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %744 unwind label %758

744:                                              ; preds = %741
  %745 = load ptr, ptr %743, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %747 unwind label %760

747:                                              ; preds = %744
  %748 = load ptr, ptr %746, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef nonnull align 8 dereferenceable(30) %748, i32 noundef 967)
          to label %749 unwind label %760

749:                                              ; preds = %747
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA42_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %745, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(42) @.str.209, ptr noundef nonnull align 8 dereferenceable(30) %108)
          to label %750 unwind label %760

750:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %772

751:                                              ; preds = %730
  %752 = landingpad { ptr, i32 }
          cleanup
  br label %755

753:                                              ; preds = %738, %736, %733
  %754 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  br label %755

755:                                              ; preds = %753, %751
  %.pn120 = phi { ptr, i32 } [ %754, %753 ], [ %752, %751 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

756:                                              ; preds = %740
  %757 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  br label %943

758:                                              ; preds = %741
  %759 = landingpad { ptr, i32 }
          catch ptr null
  br label %762

760:                                              ; preds = %749, %747, %744
  %761 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %762

762:                                              ; preds = %760, %758
  %.pn122 = phi { ptr, i32 } [ %761, %760 ], [ %759, %758 ]
  %.52 = extractvalue { ptr, i32 } %.pn122, 0
  %763 = call ptr @__cxa_begin_catch(ptr %.52) #8
  %764 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %765 unwind label %806

765:                                              ; preds = %762
  %766 = load ptr, ptr %764, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #8
  %767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %768 unwind label %808

768:                                              ; preds = %765
  %769 = load ptr, ptr %767, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %109, ptr noundef nonnull align 8 dereferenceable(30) %769, i32 noundef 967)
          to label %770 unwind label %808

770:                                              ; preds = %768
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %766, ptr noundef nonnull align 8 dereferenceable(30) %109, ptr noundef nonnull @.str.210)
          to label %771 unwind label %808

771:                                              ; preds = %770
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  invoke void @__cxa_end_catch()
          to label %772 unwind label %215

772:                                              ; preds = %771, %750
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #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 @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %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 nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.211)
          to label %773 unwind label %811

773:                                              ; preds = %772
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.200)
          to label %774 unwind label %813

774:                                              ; preds = %773
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @.str.212)
          to label %775 unwind label %815

775:                                              ; preds = %774
  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.190)
          to label %776 unwind label %817

776:                                              ; preds = %775
  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.202)
          to label %777 unwind label %819

777:                                              ; preds = %776
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str)
          to label %778 unwind label %821

778:                                              ; preds = %777
  %779 = 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) %110) #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 @_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 nonnull %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  %780 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %781 = load ptr, ptr %780, align 8, !tbaa !5
  %782 = getelementptr inbounds i8, ptr %781, i64 40
  %783 = load ptr, ptr %782, align 8
  invoke void %783(ptr noundef nonnull align 8 dereferenceable(96) %780)
          to label %784 unwind label %215

784:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #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 %120, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull @.str.208)
          to label %785 unwind label %828

785:                                              ; preds = %784
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull @.str.213)
          to label %786 unwind label %830

786:                                              ; preds = %785
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.214)
          to label %787 unwind label %832

787:                                              ; preds = %786
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @.str.191)
          to label %788 unwind label %834

788:                                              ; preds = %787
  %789 = 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) %117) #8
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #8
  %790 = 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 %123) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #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 %124, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %791 unwind label %839

791:                                              ; preds = %788
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %792 unwind label %841

792:                                              ; preds = %791
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %793 unwind label %843

793:                                              ; preds = %792
  %794 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %790, ptr noundef nonnull %122)
          to label %795 unwind label %845

795:                                              ; preds = %793
  %796 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %794)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #8
  br i1 %796, label %864, label %797

797:                                              ; preds = %795
  %798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %799 unwind label %850

799:                                              ; preds = %797
  %800 = load ptr, ptr %798, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #8
  %801 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %802 unwind label %852

802:                                              ; preds = %799
  %803 = load ptr, ptr %801, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %125, ptr noundef nonnull align 8 dereferenceable(30) %803, i32 noundef 983)
          to label %804 unwind label %852

804:                                              ; preds = %802
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %800, ptr noundef nonnull align 8 dereferenceable(30) %125, ptr noundef nonnull @.str.192)
          to label %805 unwind label %852

805:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #8
  br label %864

806:                                              ; preds = %762
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %810

808:                                              ; preds = %770, %768, %765
  %809 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  br label %810

810:                                              ; preds = %808, %806
  %.pn123 = phi { ptr, i32 } [ %809, %808 ], [ %807, %806 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

811:                                              ; preds = %772
  %812 = landingpad { ptr, i32 }
          cleanup
  br label %827

813:                                              ; preds = %773
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %826

815:                                              ; preds = %774
  %816 = landingpad { ptr, i32 }
          cleanup
  br label %825

817:                                              ; preds = %775
  %818 = landingpad { ptr, i32 }
          cleanup
  br label %824

819:                                              ; preds = %776
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %823

821:                                              ; preds = %777
  %822 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  br label %823

823:                                              ; preds = %821, %819
  %.pn125 = phi { ptr, i32 } [ %822, %821 ], [ %820, %819 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %824

824:                                              ; preds = %823, %817
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %823 ], [ %818, %817 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %825

825:                                              ; preds = %824, %815
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %824 ], [ %816, %815 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %826

826:                                              ; preds = %825, %813
  %.pn125.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn, %825 ], [ %814, %813 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %827

827:                                              ; preds = %826, %811
  %.pn125.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn, %826 ], [ %812, %811 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  br label %943

828:                                              ; preds = %784
  %829 = landingpad { ptr, i32 }
          cleanup
  br label %838

830:                                              ; preds = %785
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %837

832:                                              ; preds = %786
  %833 = landingpad { ptr, i32 }
          cleanup
  br label %836

834:                                              ; preds = %787
  %835 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %836

836:                                              ; preds = %834, %832
  %.pn131 = phi { ptr, i32 } [ %835, %834 ], [ %833, %832 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  br label %837

837:                                              ; preds = %836, %830
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %836 ], [ %831, %830 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  br label %838

838:                                              ; preds = %837, %828
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %837 ], [ %829, %828 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #8
  br label %943

839:                                              ; preds = %788
  %840 = landingpad { ptr, i32 }
          catch ptr null
  br label %849

841:                                              ; preds = %791
  %842 = landingpad { ptr, i32 }
          catch ptr null
  br label %848

843:                                              ; preds = %792
  %844 = landingpad { ptr, i32 }
          catch ptr null
  br label %847

845:                                              ; preds = %793
  %846 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  br label %847

847:                                              ; preds = %845, %843
  %.pn135 = phi { ptr, i32 } [ %846, %845 ], [ %844, %843 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  br label %848

848:                                              ; preds = %847, %841
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %847 ], [ %842, %841 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  br label %849

849:                                              ; preds = %848, %839
  %.pn135.pn.pn = phi { ptr, i32 } [ %.pn135.pn, %848 ], [ %840, %839 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #8
  br label %854

850:                                              ; preds = %797
  %851 = landingpad { ptr, i32 }
          catch ptr null
  br label %854

852:                                              ; preds = %804, %802, %799
  %853 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #8
  br label %854

854:                                              ; preds = %852, %850, %849
  %.pn136 = phi { ptr, i32 } [ %853, %852 ], [ %851, %850 ], [ %.pn135.pn.pn, %849 ]
  %.65 = extractvalue { ptr, i32 } %.pn136, 0
  %855 = call ptr @__cxa_begin_catch(ptr %.65) #8
  %856 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %857 unwind label %882

857:                                              ; preds = %854
  %858 = load ptr, ptr %856, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #8
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %860 unwind label %884

860:                                              ; preds = %857
  %861 = load ptr, ptr %859, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %126, ptr noundef nonnull align 8 dereferenceable(30) %861, i32 noundef 983)
          to label %862 unwind label %884

862:                                              ; preds = %860
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %858, ptr noundef nonnull align 8 dereferenceable(30) %126, ptr noundef nonnull @.str.193)
          to label %863 unwind label %884

863:                                              ; preds = %862
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  invoke void @__cxa_end_catch()
          to label %864 unwind label %215

864:                                              ; preds = %795, %805, %863
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %127) #8
  %865 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %866 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  %867 = 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 %128, ptr noundef nonnull align 8 dereferenceable(88) %867)
  %868 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  %869 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %868)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %127, ptr noundef nonnull align 8 dereferenceable(136) %865, ptr noundef %866, ptr noundef nonnull %128, ptr noundef nonnull align 8 dereferenceable(24) %869, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %870 unwind label %887

870:                                              ; preds = %864
  %871 = 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) %127) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #8
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %130, 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 %129, ptr noundef nonnull %130, i1 noundef zeroext false)
          to label %872 unwind label %889

872:                                              ; preds = %870
  %873 = 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) %129) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %875 unwind label %891

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

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

880:                                              ; preds = %878
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA18_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %876, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(18) @.str.194, ptr noundef nonnull align 8 dereferenceable(30) %131)
          to label %881 unwind label %893

881:                                              ; preds = %880
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  br label %905

882:                                              ; preds = %854
  %883 = landingpad { ptr, i32 }
          cleanup
  br label %886

884:                                              ; preds = %862, %860, %857
  %885 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  br label %886

886:                                              ; preds = %884, %882
  %.pn137 = phi { ptr, i32 } [ %885, %884 ], [ %883, %882 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

887:                                              ; preds = %864
  %888 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #8
  br label %943

889:                                              ; preds = %870
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  br label %943

891:                                              ; preds = %872
  %892 = landingpad { ptr, i32 }
          catch ptr null
  br label %895

893:                                              ; preds = %880, %878, %875
  %894 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  br label %895

895:                                              ; preds = %893, %891
  %.pn139 = phi { ptr, i32 } [ %894, %893 ], [ %892, %891 ]
  %.67 = extractvalue { ptr, i32 } %.pn139, 0
  %896 = call ptr @__cxa_begin_catch(ptr %.67) #8
  %897 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %898 unwind label %916

898:                                              ; preds = %895
  %899 = load ptr, ptr %897, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #8
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %901 unwind label %918

901:                                              ; preds = %898
  %902 = load ptr, ptr %900, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %132, ptr noundef nonnull align 8 dereferenceable(30) %902, i32 noundef 986)
          to label %903 unwind label %918

903:                                              ; preds = %901
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %899, ptr noundef nonnull align 8 dereferenceable(30) %132, ptr noundef nonnull @.str.195)
          to label %904 unwind label %918

904:                                              ; preds = %903
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #8
  invoke void @__cxa_end_catch()
          to label %905 unwind label %215

905:                                              ; preds = %904, %881
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #8
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %134, 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 %133, ptr noundef nonnull %134)
          to label %906 unwind label %921

906:                                              ; preds = %905
  %907 = 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) %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  %908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %909 unwind label %923

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

912:                                              ; preds = %909
  %913 = load ptr, ptr %911, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef nonnull align 8 dereferenceable(30) %913, i32 noundef 988)
          to label %914 unwind label %925

914:                                              ; preds = %912
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %910, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(81) @.str.215, ptr noundef nonnull align 8 dereferenceable(30) %135)
          to label %915 unwind label %925

915:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  br label %937

916:                                              ; preds = %895
  %917 = landingpad { ptr, i32 }
          cleanup
  br label %920

918:                                              ; preds = %903, %901, %898
  %919 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #8
  br label %920

920:                                              ; preds = %918, %916
  %.pn140 = phi { ptr, i32 } [ %919, %918 ], [ %917, %916 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

921:                                              ; preds = %905
  %922 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  br label %943

923:                                              ; preds = %906
  %924 = landingpad { ptr, i32 }
          catch ptr null
  br label %927

925:                                              ; preds = %914, %912, %909
  %926 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  br label %927

927:                                              ; preds = %925, %923
  %.pn142 = phi { ptr, i32 } [ %926, %925 ], [ %924, %923 ]
  %.69 = extractvalue { ptr, i32 } %.pn142, 0
  %928 = call ptr @__cxa_begin_catch(ptr %.69) #8
  %929 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %930 unwind label %938

930:                                              ; preds = %927
  %931 = load ptr, ptr %929, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #8
  %932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %933 unwind label %940

933:                                              ; preds = %930
  %934 = load ptr, ptr %932, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef nonnull align 8 dereferenceable(30) %934, i32 noundef 988)
          to label %935 unwind label %940

935:                                              ; preds = %933
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %931, ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef nonnull @.str.216)
          to label %936 unwind label %940

936:                                              ; preds = %935
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #8
  invoke void @__cxa_end_catch()
          to label %937 unwind label %215

937:                                              ; preds = %936, %915
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %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 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

938:                                              ; preds = %927
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %942

940:                                              ; preds = %935, %933, %930
  %941 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #8
  br label %942

942:                                              ; preds = %940, %938
  %.pn143 = phi { ptr, i32 } [ %941, %940 ], [ %939, %938 ]
  invoke void @__cxa_end_catch()
          to label %943 unwind label %948

943:                                              ; preds = %942, %920, %886, %810, %755, %721, %654, %602, %568, %501, %449, %415, %351, %300, %266, %921, %889, %887, %838, %827, %756, %724, %722, %673, %668, %603, %571, %569, %519, %518, %450, %418, %416, %366, %365, %301, %269, %267, %217, %215, %214, %199
  %.pn145 = phi { ptr, i32 } [ %216, %215 ], [ %.pn143, %942 ], [ %922, %921 ], [ %.pn140, %920 ], [ %890, %889 ], [ %888, %887 ], [ %.pn137, %886 ], [ %.pn131.pn.pn, %838 ], [ %.pn125.pn.pn.pn.pn, %827 ], [ %.pn123, %810 ], [ %757, %756 ], [ %.pn120, %755 ], [ %725, %724 ], [ %723, %722 ], [ %.pn117, %721 ], [ %.pn113, %673 ], [ %.pn108.pn.pn.pn, %668 ], [ %.pn106, %654 ], [ %604, %603 ], [ %.pn103, %602 ], [ %572, %571 ], [ %570, %569 ], [ %.pn100, %568 ], [ %520, %519 ], [ %.pn92.pn.pn.pn.pn, %518 ], [ %.pn90, %501 ], [ %451, %450 ], [ %.pn87, %449 ], [ %419, %418 ], [ %417, %416 ], [ %.pn84, %415 ], [ %367, %366 ], [ %.pn77.pn.pn.pn, %365 ], [ %.pn75, %351 ], [ %302, %301 ], [ %.pn72, %300 ], [ %270, %269 ], [ %268, %267 ], [ %.pn69, %266 ], [ %218, %217 ], [ %.pn.pn.pn.pn, %214 ], [ %200, %199 ]
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %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 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 %944

944:                                              ; preds = %943, %197, %195
  %.pn145.pn = phi { ptr, i32 } [ %.pn145, %943 ], [ %196, %195 ], [ %198, %197 ]
  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 %945

945:                                              ; preds = %944, %193, %191
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %944 ], [ %192, %191 ], [ %194, %193 ]
  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 %946

946:                                              ; preds = %945, %189, %187
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn, %945 ], [ %188, %187 ], [ %190, %189 ]
  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 %947

947:                                              ; preds = %946, %185
  %.pn145.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn.pn, %946 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn145.pn.pn.pn.pn

948:                                              ; preds = %942, %920, %886, %810, %755, %721, %654, %602, %568, %501, %449, %415, %351, %300, %266
  %949 = landingpad { ptr, i32 }
          catch ptr null
  %950 = extractvalue { ptr, i32 } %949, 0
  call void @__clang_call_terminate(ptr %950) #11
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_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(22), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA42_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(42), ptr noundef nonnull align 8 dereferenceable(30)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_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(81), 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