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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.76" = type { %"class.std::__shared_ptr.77" }
%"class.std::__shared_ptr.77" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"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.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.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>
%"class.HtnPlanner::SolutionType" = type { %"class.std::vector.71", %"class.std::shared_ptr.29", double, i64 }
%"class.std::vector.71" = type { %"struct.std::_Vector_base.72" }
%"struct.std::_Vector_base.72" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [1 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.251 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [403 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [320 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [370 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [321 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [371 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [321 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [371 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [350 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [367 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [397 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [403 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [370 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [400 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: 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 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 @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) #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

; 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_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 uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests41TestPlannerShopTransportationScenarioTest7RunImplEv(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::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__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::shared_ptr.29", align 8
  %43 = alloca %"class.std::shared_ptr.65", 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.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.UnitTest::TestDetails", align 8
  %56 = alloca %"class.UnitTest::TestDetails", align 8
  %57 = alloca %"class.std::shared_ptr.76", align 8
  %58 = alloca %"class.std::shared_ptr.29", align 8
  %59 = alloca %"class.UnitTest::TestDetails", align 8
  %60 = alloca %"class.UnitTest::TestDetails", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.UnitTest::TestDetails", align 8
  %64 = alloca %"class.UnitTest::TestDetails", align 8
  %65 = alloca %"class.UnitTest::TestDetails", align 8
  %66 = alloca %"class.UnitTest::TestDetails", align 8
  %67 = alloca %"class.std::shared_ptr.29", align 8
  %68 = alloca %"class.std::shared_ptr.65", 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.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.UnitTest::TestDetails", align 8
  %81 = alloca %"class.UnitTest::TestDetails", align 8
  %82 = alloca %"class.std::shared_ptr.76", align 8
  %83 = alloca %"class.std::shared_ptr.29", 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.UnitTest::TestDetails", align 8
  %89 = alloca %"class.UnitTest::TestDetails", align 8
  %90 = alloca %"class.UnitTest::TestDetails", align 8
  %91 = alloca %"class.UnitTest::TestDetails", align 8
  %92 = alloca %"class.std::shared_ptr.29", align 8
  %93 = alloca %"class.std::shared_ptr.65", 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.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.UnitTest::TestDetails", align 8
  %105 = alloca %"class.UnitTest::TestDetails", align 8
  %106 = alloca %"class.std::shared_ptr.76", align 8
  %107 = alloca %"class.std::shared_ptr.29", align 8
  %108 = alloca %"class.UnitTest::TestDetails", align 8
  %109 = alloca %"class.UnitTest::TestDetails", align 8
  %110 = alloca %"class.std::shared_ptr.29", align 8
  %111 = alloca %"class.std::shared_ptr.65", 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.UnitTest::TestDetails", align 8
  %124 = alloca %"class.UnitTest::TestDetails", align 8
  %125 = alloca %"class.std::shared_ptr.76", align 8
  %126 = alloca %"class.std::shared_ptr.29", align 8
  %127 = alloca %"class.UnitTest::TestDetails", align 8
  %128 = alloca %"class.UnitTest::TestDetails", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.UnitTest::TestDetails", align 8
  %136 = alloca %"class.UnitTest::TestDetails", align 8
  %137 = alloca %"class.UnitTest::TestDetails", align 8
  %138 = alloca %"class.UnitTest::TestDetails", align 8
  %139 = alloca %"class.UnitTest::TestDetails", align 8
  %140 = alloca %"class.UnitTest::TestDetails", align 8
  %141 = alloca %"class.UnitTest::TestDetails", align 8
  %142 = alloca %"class.UnitTest::TestDetails", align 8
  %143 = alloca %"class.UnitTest::TestDetails", align 8
  %144 = alloca %"class.UnitTest::TestDetails", align 8
  %145 = alloca %"class.UnitTest::TestDetails", align 8
  %146 = alloca %"class.UnitTest::TestDetails", align 8
  %147 = alloca %"class.std::shared_ptr.29", align 8
  %148 = alloca %"class.std::shared_ptr.65", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.UnitTest::TestDetails", align 8
  %161 = alloca %"class.UnitTest::TestDetails", align 8
  %162 = alloca %"class.std::shared_ptr.76", align 8
  %163 = alloca %"class.std::shared_ptr.29", align 8
  %164 = alloca %"class.UnitTest::TestDetails", align 8
  %165 = alloca %"class.UnitTest::TestDetails", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.UnitTest::TestDetails", align 8
  %173 = alloca %"class.UnitTest::TestDetails", align 8
  %174 = alloca %"class.UnitTest::TestDetails", align 8
  %175 = alloca %"class.UnitTest::TestDetails", align 8
  %176 = alloca %"class.UnitTest::TestDetails", align 8
  %177 = alloca %"class.UnitTest::TestDetails", align 8
  %178 = alloca %"class.UnitTest::TestDetails", align 8
  %179 = alloca %"class.UnitTest::TestDetails", align 8
  %180 = alloca %"class.UnitTest::TestDetails", align 8
  %181 = alloca %"class.UnitTest::TestDetails", align 8
  %182 = alloca %"class.UnitTest::TestDetails", align 8
  %183 = alloca %"class.UnitTest::TestDetails", align 8
  %184 = alloca %"class.std::shared_ptr.29", align 8
  %185 = alloca %"class.std::shared_ptr.65", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.UnitTest::TestDetails", align 8
  %198 = alloca %"class.UnitTest::TestDetails", align 8
  %199 = alloca %"class.std::shared_ptr.76", align 8
  %200 = alloca %"class.std::shared_ptr.29", align 8
  %201 = alloca %"class.UnitTest::TestDetails", align 8
  %202 = alloca %"class.UnitTest::TestDetails", align 8
  %203 = alloca %"class.std::shared_ptr.29", align 8
  %204 = alloca %"class.std::shared_ptr.65", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca %"class.UnitTest::TestDetails", align 8
  %217 = alloca %"class.UnitTest::TestDetails", align 8
  %218 = alloca %"class.std::shared_ptr.76", align 8
  %219 = alloca %"class.std::shared_ptr.29", align 8
  %220 = alloca %"class.UnitTest::TestDetails", align 8
  %221 = alloca %"class.UnitTest::TestDetails", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.UnitTest::TestDetails", align 8
  %227 = alloca %"class.UnitTest::TestDetails", align 8
  %228 = alloca %"class.UnitTest::TestDetails", align 8
  %229 = alloca %"class.UnitTest::TestDetails", align 8
  %230 = alloca %"class.UnitTest::TestDetails", align 8
  %231 = alloca %"class.UnitTest::TestDetails", align 8
  %232 = alloca %"class.UnitTest::TestDetails", align 8
  %233 = alloca %"class.UnitTest::TestDetails", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %234 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #9
  %235 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 33088) #10
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %235)
          to label %236 unwind label %314

236:                                              ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef %235)
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #9
  %237 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %238 unwind label %318

238:                                              ; preds = %236
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %237)
          to label %239 unwind label %322

239:                                              ; preds = %238
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %237)
          to label %240 unwind label %318

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #9
  %241 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #10
          to label %242 unwind label %326

242:                                              ; preds = %240
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %241)
          to label %243 unwind label %330

243:                                              ; preds = %242
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef %241)
          to label %244 unwind label %326

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #9
  call void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #9
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.251)
          to label %245 unwind label %334

245:                                              ; preds = %244
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.252)
          to label %246 unwind label %338

246:                                              ; preds = %245
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.253)
          to label %247 unwind label %342

247:                                              ; preds = %246
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.254)
          to label %248 unwind label %346

248:                                              ; preds = %247
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.255)
          to label %249 unwind label %350

249:                                              ; preds = %248
  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.256)
          to label %250 unwind label %354

250:                                              ; preds = %249
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.257)
          to label %251 unwind label %358

251:                                              ; preds = %250
  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.258)
          to label %252 unwind label %362

252:                                              ; preds = %251
  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.259)
          to label %253 unwind label %366

253:                                              ; preds = %252
  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.260)
          to label %254 unwind label %370

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

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

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

257:                                              ; preds = %256
  %258 = 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) %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.263)
          to label %259 unwind label %398

259:                                              ; preds = %257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.264)
          to label %260 unwind label %402

260:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.265)
          to label %261 unwind label %406

261:                                              ; preds = %260
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.266)
          to label %262 unwind label %410

262:                                              ; preds = %261
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.267)
          to label %263 unwind label %414

263:                                              ; preds = %262
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.268)
          to label %264 unwind label %418

264:                                              ; preds = %263
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.269)
          to label %265 unwind label %422

265:                                              ; preds = %264
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.270)
          to label %266 unwind label %426

266:                                              ; preds = %265
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str)
          to label %267 unwind label %430

267:                                              ; preds = %266
  %268 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #9
  %269 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %270 unwind label %442

270:                                              ; preds = %267
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %269)
          to label %271 unwind label %446

271:                                              ; preds = %270
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef %269)
          to label %272 unwind label %442

272:                                              ; preds = %271
  %273 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %42) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #9
  %274 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %275 = load ptr, ptr %274, align 8, !tbaa !9
  %276 = getelementptr inbounds ptr, ptr %275, i64 6
  %277 = load ptr, ptr %276, align 8
  invoke void %277(ptr noundef nonnull align 8 dereferenceable(136) %274)
          to label %278 unwind label %451

278:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #9
  %279 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %280 unwind label %455

280:                                              ; preds = %278
  %281 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %282 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %283 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %279, ptr noundef %281, ptr noundef %282, ptr noundef %283)
          to label %284 unwind label %459

284:                                              ; preds = %280
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef %279)
          to label %285 unwind label %455

285:                                              ; preds = %284
  %286 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.271)
          to label %287 unwind label %464

287:                                              ; preds = %285
  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.272)
          to label %288 unwind label %468

288:                                              ; preds = %287
  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.273)
          to label %289 unwind label %472

289:                                              ; preds = %288
  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)
          to label %290 unwind label %476

290:                                              ; preds = %289
  %291 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.274)
          to label %292 unwind label %483

292:                                              ; preds = %290
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str)
          to label %293 unwind label %487

293:                                              ; preds = %292
  %294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  br label %295

295:                                              ; preds = %293
  %296 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %297 unwind label %492

297:                                              ; preds = %295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %298 unwind label %496

298:                                              ; preds = %297
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %299 unwind label %500

299:                                              ; preds = %298
  %300 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef %52)
          to label %301 unwind label %504

301:                                              ; preds = %299
  %302 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %300)
          to label %303 unwind label %504

303:                                              ; preds = %301
  %304 = xor i1 %302, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br i1 %304, label %305, label %556

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %307 unwind label %511

307:                                              ; preds = %305
  %308 = load ptr, ptr %306, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %310 unwind label %515

310:                                              ; preds = %307
  %311 = load ptr, ptr %309, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef nonnull align 8 dereferenceable(30) %311, i32 noundef 1225)
          to label %312 unwind label %515

312:                                              ; preds = %310
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %308, ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef @.str.192)
          to label %313 unwind label %515

313:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %556

314:                                              ; preds = %1
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %4, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %235, i64 noundef 33088) #11
  br label %2937

318:                                              ; preds = %239, %236
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %4, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %5, align 4
  br label %2936

322:                                              ; preds = %238
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %4, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %237, i64 noundef 144) #11
  br label %2936

326:                                              ; preds = %243, %240
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %4, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %5, align 4
  br label %2935

330:                                              ; preds = %242
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %4, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %241, i64 noundef 136) #11
  br label %2935

334:                                              ; preds = %244
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %4, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %5, align 4
  br label %397

338:                                              ; preds = %245
  %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
  br label %396

342:                                              ; preds = %246
  %343 = landingpad { ptr, i32 }
          cleanup
  %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 %395

346:                                              ; preds = %247
  %347 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %394

350:                                              ; preds = %248
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %4, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %5, align 4
  br label %393

354:                                              ; preds = %249
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %4, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %5, align 4
  br label %392

358:                                              ; preds = %250
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %4, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %5, align 4
  br label %391

362:                                              ; preds = %251
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %4, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %5, align 4
  br label %390

366:                                              ; preds = %252
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %4, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %5, align 4
  br label %389

370:                                              ; preds = %253
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %4, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %5, align 4
  br label %388

374:                                              ; preds = %254
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %4, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %5, align 4
  br label %387

378:                                              ; preds = %255
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %4, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %5, align 4
  br label %386

382:                                              ; preds = %256
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %4, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %386

386:                                              ; preds = %382, %378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %387

387:                                              ; preds = %386, %374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %388

388:                                              ; preds = %387, %370
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %389

389:                                              ; preds = %388, %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %390

390:                                              ; preds = %389, %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %391

391:                                              ; preds = %390, %358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %392

392:                                              ; preds = %391, %354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %393

393:                                              ; preds = %392, %350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %394

394:                                              ; preds = %393, %346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %395

395:                                              ; preds = %394, %342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %396

396:                                              ; preds = %395, %338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %397

397:                                              ; preds = %396, %334
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %2934

398:                                              ; preds = %257
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %4, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %5, align 4
  br label %441

402:                                              ; preds = %259
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %4, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %5, align 4
  br label %440

406:                                              ; preds = %260
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %4, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %5, align 4
  br label %439

410:                                              ; preds = %261
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %4, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %5, align 4
  br label %438

414:                                              ; preds = %262
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %4, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %5, align 4
  br label %437

418:                                              ; preds = %263
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %4, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %5, align 4
  br label %436

422:                                              ; preds = %264
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %4, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %5, align 4
  br label %435

426:                                              ; preds = %265
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %4, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %5, align 4
  br label %434

430:                                              ; preds = %266
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %4, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %434

434:                                              ; preds = %430, %426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %435

435:                                              ; preds = %434, %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %436

436:                                              ; preds = %435, %418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %437

437:                                              ; preds = %436, %414
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %438

438:                                              ; preds = %437, %410
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %439

439:                                              ; preds = %438, %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %440

440:                                              ; preds = %439, %402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %441

441:                                              ; preds = %440, %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  br label %2934

442:                                              ; preds = %271, %267
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %4, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %5, align 4
  br label %450

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

450:                                              ; preds = %446, %442
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #9
  br label %2934

451:                                              ; preds = %1403, %1343, %1207, %1199, %1141, %1012, %1004, %962, %898, %838, %703, %695, %653, %589, %529, %272
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %4, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %5, align 4
  br label %2934

455:                                              ; preds = %284, %278
  %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 %463

459:                                              ; preds = %280
  %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
  call void @_ZdlPvm(ptr noundef %279, i64 noundef 96) #11
  br label %463

463:                                              ; preds = %459, %455
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  br label %2934

464:                                              ; preds = %285
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %4, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %5, align 4
  br label %482

468:                                              ; preds = %287
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %4, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %5, align 4
  br label %481

472:                                              ; preds = %288
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %4, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %5, align 4
  br label %480

476:                                              ; preds = %289
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %4, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %480

480:                                              ; preds = %476, %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %481

481:                                              ; preds = %480, %468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %482

482:                                              ; preds = %481, %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  br label %2934

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

487:                                              ; preds = %292
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %4, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %491

491:                                              ; preds = %487, %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  br label %2934

492:                                              ; preds = %295
  %493 = landingpad { ptr, i32 }
          catch ptr null
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %4, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %5, align 4
  br label %510

496:                                              ; preds = %297
  %497 = landingpad { ptr, i32 }
          catch ptr null
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %4, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %5, align 4
  br label %509

500:                                              ; preds = %298
  %501 = landingpad { ptr, i32 }
          catch ptr null
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %4, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %5, align 4
  br label %508

504:                                              ; preds = %301, %299
  %505 = landingpad { ptr, i32 }
          catch ptr null
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %4, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %508

508:                                              ; preds = %504, %500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %509

509:                                              ; preds = %508, %496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %510

510:                                              ; preds = %509, %492
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br label %519

511:                                              ; preds = %305
  %512 = landingpad { ptr, i32 }
          catch ptr null
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %4, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %5, align 4
  br label %519

515:                                              ; preds = %312, %310, %307
  %516 = landingpad { ptr, i32 }
          catch ptr null
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %4, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %519

519:                                              ; preds = %515, %511, %510
  %520 = load ptr, ptr %4, align 8
  %521 = call ptr @__cxa_begin_catch(ptr %520) #9
  %522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %523 unwind label %557

523:                                              ; preds = %519
  %524 = load ptr, ptr %522, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %526 unwind label %561

526:                                              ; preds = %523
  %527 = load ptr, ptr %525, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull align 8 dereferenceable(30) %527, i32 noundef 1225)
          to label %528 unwind label %561

528:                                              ; preds = %526
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %524, ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef @.str.193)
          to label %529 unwind label %561

529:                                              ; preds = %528
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  invoke void @__cxa_end_catch()
          to label %530 unwind label %451

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %556, %530
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #9
  %534 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %535 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %536 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %537 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %536)
          to label %538 unwind label %567

538:                                              ; preds = %533
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %57, ptr noundef nonnull align 8 dereferenceable(136) %534, ptr noundef %535, ptr noundef %58, ptr noundef nonnull align 8 dereferenceable(24) %537, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %539 unwind label %567

539:                                              ; preds = %538
  %540 = 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) %57) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  br label %541

541:                                              ; preds = %539
  %542 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %543 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %542) #9
  %544 = icmp eq i64 %543, 1
  %545 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %544)
          to label %546 unwind label %571

546:                                              ; preds = %541
  br i1 %545, label %616, label %547

547:                                              ; preds = %546
  %548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %549 unwind label %571

549:                                              ; preds = %547
  %550 = load ptr, ptr %548, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %552 unwind label %575

552:                                              ; preds = %549
  %553 = load ptr, ptr %551, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %553, i32 noundef 1227)
          to label %554 unwind label %575

554:                                              ; preds = %552
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %550, ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef @.str.275)
          to label %555 unwind label %575

555:                                              ; preds = %554
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %616

556:                                              ; preds = %313, %303
  br label %531

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

561:                                              ; preds = %528, %526, %523
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %4, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %565

565:                                              ; preds = %561, %557
  invoke void @__cxa_end_catch()
          to label %566 unwind label %2943

566:                                              ; preds = %565
  br label %2934

567:                                              ; preds = %538, %533
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %4, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  br label %2934

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

575:                                              ; preds = %554, %552, %549
  %576 = landingpad { ptr, i32 }
          catch ptr null
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %4, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %579

579:                                              ; preds = %575, %571
  %580 = load ptr, ptr %4, align 8
  %581 = call ptr @__cxa_begin_catch(ptr %580) #9
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %583 unwind label %617

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

586:                                              ; preds = %583
  %587 = load ptr, ptr %585, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull align 8 dereferenceable(30) %587, i32 noundef 1227)
          to label %588 unwind label %621

588:                                              ; preds = %586
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %584, ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef @.str.276)
          to label %589 unwind label %621

589:                                              ; preds = %588
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  invoke void @__cxa_end_catch()
          to label %590 unwind label %451

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %616, %590
  br label %592

592:                                              ; preds = %591
  br label %593

593:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  %594 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %595 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %594, i64 noundef 0) #9
  %596 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %595) #9
  %597 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %596, i32 0, i32 1
  %598 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %597) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(144) %598)
          to label %599 unwind label %627

599:                                              ; preds = %593
  %600 = 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) %61) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #9
  %601 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %602 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %601, i64 noundef 0) #9
  %603 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %602) #9
  %604 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %603, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(24) %604, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %605 unwind label %631

605:                                              ; preds = %599
  %606 = 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) %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  br label %607

607:                                              ; preds = %605
  %608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %609 unwind label %635

609:                                              ; preds = %607
  %610 = load ptr, ptr %608, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  %611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %612 unwind label %639

612:                                              ; preds = %609
  %613 = load ptr, ptr %611, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef nonnull align 8 dereferenceable(30) %613, i32 noundef 1230)
          to label %614 unwind label %639

614:                                              ; preds = %612
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %610, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(81) @.str.277, ptr noundef nonnull align 8 dereferenceable(30) %63)
          to label %615 unwind label %639

615:                                              ; preds = %614
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  br label %655

616:                                              ; preds = %555, %546
  br label %591

617:                                              ; preds = %579
  %618 = landingpad { ptr, i32 }
          cleanup
  %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 = %588, %586, %583
  %622 = landingpad { ptr, i32 }
          cleanup
  %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 %60) #9
  br label %625

625:                                              ; preds = %621, %617
  invoke void @__cxa_end_catch()
          to label %626 unwind label %2943

626:                                              ; preds = %625
  br label %2934

627:                                              ; preds = %593
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %4, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %2934

631:                                              ; preds = %599
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %4, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  br label %2934

635:                                              ; preds = %607
  %636 = landingpad { ptr, i32 }
          catch ptr null
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %4, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %5, align 4
  br label %643

639:                                              ; preds = %614, %612, %609
  %640 = landingpad { ptr, i32 }
          catch ptr null
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %4, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  br label %643

643:                                              ; preds = %639, %635
  %644 = load ptr, ptr %4, align 8
  %645 = call ptr @__cxa_begin_catch(ptr %644) #9
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %647 unwind label %667

647:                                              ; preds = %643
  %648 = load ptr, ptr %646, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #9
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %650 unwind label %671

650:                                              ; preds = %647
  %651 = load ptr, ptr %649, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %64, ptr noundef nonnull align 8 dereferenceable(30) %651, i32 noundef 1230)
          to label %652 unwind label %671

652:                                              ; preds = %650
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %648, ptr noundef nonnull align 8 dereferenceable(30) %64, ptr noundef @.str.278)
          to label %653 unwind label %671

653:                                              ; preds = %652
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  invoke void @__cxa_end_catch()
          to label %654 unwind label %451

654:                                              ; preds = %653
  br label %655

655:                                              ; preds = %654, %615
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %660 unwind label %677

660:                                              ; preds = %658
  %661 = load ptr, ptr %659, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #9
  %662 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %663 unwind label %681

663:                                              ; preds = %660
  %664 = load ptr, ptr %662, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %65, ptr noundef nonnull align 8 dereferenceable(30) %664, i32 noundef 1231)
          to label %665 unwind label %681

665:                                              ; preds = %663
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA353_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %661, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(353) @.str.279, ptr noundef nonnull align 8 dereferenceable(30) %65)
          to label %666 unwind label %681

666:                                              ; preds = %665
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  br label %697

667:                                              ; preds = %643
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %4, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %5, align 4
  br label %675

671:                                              ; preds = %652, %650, %647
  %672 = landingpad { ptr, i32 }
          cleanup
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %4, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  br label %675

675:                                              ; preds = %671, %667
  invoke void @__cxa_end_catch()
          to label %676 unwind label %2943

676:                                              ; preds = %675
  br label %2934

677:                                              ; preds = %658
  %678 = landingpad { ptr, i32 }
          catch ptr null
  %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
  br label %685

681:                                              ; preds = %665, %663, %660
  %682 = landingpad { ptr, i32 }
          catch ptr null
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %4, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  br label %685

685:                                              ; preds = %681, %677
  %686 = load ptr, ptr %4, align 8
  %687 = call ptr @__cxa_begin_catch(ptr %686) #9
  %688 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %689 unwind label %745

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

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

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

695:                                              ; preds = %694
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #9
  invoke void @__cxa_end_catch()
          to label %696 unwind label %451

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696, %666
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #9
  %700 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %701 unwind label %755

701:                                              ; preds = %699
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %700)
          to label %702 unwind label %759

702:                                              ; preds = %701
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef %700)
          to label %703 unwind label %755

703:                                              ; preds = %702
  %704 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %67) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  %705 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %706 = load ptr, ptr %705, align 8, !tbaa !9
  %707 = getelementptr inbounds ptr, ptr %706, i64 6
  %708 = load ptr, ptr %707, align 8
  invoke void %708(ptr noundef nonnull align 8 dereferenceable(136) %705)
          to label %709 unwind label %451

709:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #9
  %710 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %711 unwind label %764

711:                                              ; preds = %709
  %712 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %713 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %714 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %710, ptr noundef %712, ptr noundef %713, ptr noundef %714)
          to label %715 unwind label %768

715:                                              ; preds = %711
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef %710)
          to label %716 unwind label %764

716:                                              ; preds = %715
  %717 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %68) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  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.271)
          to label %718 unwind label %773

718:                                              ; preds = %716
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.272)
          to label %719 unwind label %777

719:                                              ; preds = %718
  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.281)
          to label %720 unwind label %781

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

721:                                              ; preds = %720
  %722 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.282)
          to label %723 unwind label %792

723:                                              ; preds = %721
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str)
          to label %724 unwind label %796

724:                                              ; preds = %723
  %725 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  br label %726

726:                                              ; preds = %724
  %727 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %728 unwind label %801

728:                                              ; preds = %726
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %729 unwind label %805

729:                                              ; preds = %728
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %730 unwind label %809

730:                                              ; preds = %729
  %731 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %727, ptr noundef %77)
          to label %732 unwind label %813

732:                                              ; preds = %730
  %733 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %731)
          to label %734 unwind label %813

734:                                              ; preds = %732
  %735 = xor i1 %733, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  br i1 %735, label %736, label %865

736:                                              ; preds = %734
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %738 unwind label %820

738:                                              ; preds = %736
  %739 = load ptr, ptr %737, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #9
  %740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %741 unwind label %824

741:                                              ; preds = %738
  %742 = load ptr, ptr %740, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %80, ptr noundef nonnull align 8 dereferenceable(30) %742, i32 noundef 1249)
          to label %743 unwind label %824

743:                                              ; preds = %741
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %739, ptr noundef nonnull align 8 dereferenceable(30) %80, ptr noundef @.str.192)
          to label %744 unwind label %824

744:                                              ; preds = %743
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  br label %865

745:                                              ; preds = %685
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %4, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %5, align 4
  br label %753

749:                                              ; preds = %694, %692, %689
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %4, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #9
  br label %753

753:                                              ; preds = %749, %745
  invoke void @__cxa_end_catch()
          to label %754 unwind label %2943

754:                                              ; preds = %753
  br label %2934

755:                                              ; preds = %702, %699
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %4, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %5, align 4
  br label %763

759:                                              ; preds = %701
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %4, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %700, i64 noundef 144) #11
  br label %763

763:                                              ; preds = %759, %755
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  br label %2934

764:                                              ; preds = %715, %709
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %4, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %5, align 4
  br label %772

768:                                              ; preds = %711
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %4, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %710, i64 noundef 96) #11
  br label %772

772:                                              ; preds = %768, %764
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  br label %2934

773:                                              ; preds = %716
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %4, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %5, align 4
  br label %791

777:                                              ; preds = %718
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %4, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %5, align 4
  br label %790

781:                                              ; preds = %719
  %782 = landingpad { ptr, i32 }
          cleanup
  %783 = extractvalue { ptr, i32 } %782, 0
  store ptr %783, ptr %4, align 8
  %784 = extractvalue { ptr, i32 } %782, 1
  store i32 %784, ptr %5, align 4
  br label %789

785:                                              ; preds = %720
  %786 = landingpad { ptr, i32 }
          cleanup
  %787 = extractvalue { ptr, i32 } %786, 0
  store ptr %787, ptr %4, align 8
  %788 = extractvalue { ptr, i32 } %786, 1
  store i32 %788, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %789

789:                                              ; preds = %785, %781
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %790

790:                                              ; preds = %789, %777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %791

791:                                              ; preds = %790, %773
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  br label %2934

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

796:                                              ; preds = %723
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %4, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  br label %800

800:                                              ; preds = %796, %792
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  br label %2934

801:                                              ; preds = %726
  %802 = landingpad { ptr, i32 }
          catch ptr null
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %4, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %5, align 4
  br label %819

805:                                              ; preds = %728
  %806 = landingpad { ptr, i32 }
          catch ptr null
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %4, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %5, align 4
  br label %818

809:                                              ; preds = %729
  %810 = landingpad { ptr, i32 }
          catch ptr null
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %4, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %5, align 4
  br label %817

813:                                              ; preds = %732, %730
  %814 = landingpad { ptr, i32 }
          catch ptr null
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %4, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %817

817:                                              ; preds = %813, %809
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %818

818:                                              ; preds = %817, %805
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  br label %819

819:                                              ; preds = %818, %801
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  br label %828

820:                                              ; preds = %736
  %821 = landingpad { ptr, i32 }
          catch ptr null
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %4, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %5, align 4
  br label %828

824:                                              ; preds = %743, %741, %738
  %825 = landingpad { ptr, i32 }
          catch ptr null
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %4, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  br label %828

828:                                              ; preds = %824, %820, %819
  %829 = load ptr, ptr %4, align 8
  %830 = call ptr @__cxa_begin_catch(ptr %829) #9
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %832 unwind label %866

832:                                              ; preds = %828
  %833 = load ptr, ptr %831, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #9
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %835 unwind label %870

835:                                              ; preds = %832
  %836 = load ptr, ptr %834, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull align 8 dereferenceable(30) %836, i32 noundef 1249)
          to label %837 unwind label %870

837:                                              ; preds = %835
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %833, ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef @.str.193)
          to label %838 unwind label %870

838:                                              ; preds = %837
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  invoke void @__cxa_end_catch()
          to label %839 unwind label %451

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %865, %839
  br label %841

841:                                              ; preds = %840
  br label %842

842:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #9
  %843 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %844 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %845 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %846 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %845)
          to label %847 unwind label %876

847:                                              ; preds = %842
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %82, ptr noundef nonnull align 8 dereferenceable(136) %843, ptr noundef %844, ptr noundef %83, ptr noundef nonnull align 8 dereferenceable(24) %846, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %848 unwind label %876

848:                                              ; preds = %847
  %849 = 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) %82) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #9
  br label %850

850:                                              ; preds = %848
  %851 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %852 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %851) #9
  %853 = icmp eq i64 %852, 1
  %854 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %853)
          to label %855 unwind label %880

855:                                              ; preds = %850
  br i1 %854, label %925, label %856

856:                                              ; preds = %855
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %858 unwind label %880

858:                                              ; preds = %856
  %859 = load ptr, ptr %857, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #9
  %860 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %861 unwind label %884

861:                                              ; preds = %858
  %862 = load ptr, ptr %860, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef nonnull align 8 dereferenceable(30) %862, i32 noundef 1251)
          to label %863 unwind label %884

863:                                              ; preds = %861
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %859, ptr noundef nonnull align 8 dereferenceable(30) %84, ptr noundef @.str.275)
          to label %864 unwind label %884

864:                                              ; preds = %863
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  br label %925

865:                                              ; preds = %744, %734
  br label %840

866:                                              ; preds = %828
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %4, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %5, align 4
  br label %874

870:                                              ; preds = %837, %835, %832
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %4, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  br label %874

874:                                              ; preds = %870, %866
  invoke void @__cxa_end_catch()
          to label %875 unwind label %2943

875:                                              ; preds = %874
  br label %2934

876:                                              ; preds = %847, %842
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %4, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #9
  br label %2934

880:                                              ; preds = %856, %850
  %881 = landingpad { ptr, i32 }
          catch ptr null
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %4, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %5, align 4
  br label %888

884:                                              ; preds = %863, %861, %858
  %885 = landingpad { ptr, i32 }
          catch ptr null
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %4, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  br label %888

888:                                              ; preds = %884, %880
  %889 = load ptr, ptr %4, align 8
  %890 = call ptr @__cxa_begin_catch(ptr %889) #9
  %891 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %892 unwind label %926

892:                                              ; preds = %888
  %893 = load ptr, ptr %891, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #9
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %895 unwind label %930

895:                                              ; preds = %892
  %896 = load ptr, ptr %894, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef nonnull align 8 dereferenceable(30) %896, i32 noundef 1251)
          to label %897 unwind label %930

897:                                              ; preds = %895
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %893, ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef @.str.276)
          to label %898 unwind label %930

898:                                              ; preds = %897
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  invoke void @__cxa_end_catch()
          to label %899 unwind label %451

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %925, %899
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #9
  %903 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %904 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %903, i64 noundef 0) #9
  %905 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %904) #9
  %906 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %905, i32 0, i32 1
  %907 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %906) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(144) %907)
          to label %908 unwind label %936

908:                                              ; preds = %902
  %909 = 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) %86) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #9
  %910 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %911 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %910, i64 noundef 0) #9
  %912 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %911) #9
  %913 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %912, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(24) %913, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %914 unwind label %940

914:                                              ; preds = %908
  %915 = 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) %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  br label %916

916:                                              ; preds = %914
  %917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %918 unwind label %944

918:                                              ; preds = %916
  %919 = load ptr, ptr %917, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #9
  %920 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %921 unwind label %948

921:                                              ; preds = %918
  %922 = load ptr, ptr %920, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %88, ptr noundef nonnull align 8 dereferenceable(30) %922, i32 noundef 1254)
          to label %923 unwind label %948

923:                                              ; preds = %921
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %919, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %88)
          to label %924 unwind label %948

924:                                              ; preds = %923
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #9
  br label %964

925:                                              ; preds = %864, %855
  br label %900

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

930:                                              ; preds = %897, %895, %892
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %4, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  br label %934

934:                                              ; preds = %930, %926
  invoke void @__cxa_end_catch()
          to label %935 unwind label %2943

935:                                              ; preds = %934
  br label %2934

936:                                              ; preds = %902
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %4, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  br label %2934

940:                                              ; preds = %908
  %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
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  br label %2934

944:                                              ; preds = %916
  %945 = landingpad { ptr, i32 }
          catch ptr null
  %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
  br label %952

948:                                              ; preds = %923, %921, %918
  %949 = landingpad { ptr, i32 }
          catch ptr null
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %4, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #9
  br label %952

952:                                              ; preds = %948, %944
  %953 = load ptr, ptr %4, align 8
  %954 = call ptr @__cxa_begin_catch(ptr %953) #9
  %955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %956 unwind label %976

956:                                              ; preds = %952
  %957 = load ptr, ptr %955, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  %958 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %959 unwind label %980

959:                                              ; preds = %956
  %960 = load ptr, ptr %958, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %89, ptr noundef nonnull align 8 dereferenceable(30) %960, i32 noundef 1254)
          to label %961 unwind label %980

961:                                              ; preds = %959
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %957, ptr noundef nonnull align 8 dereferenceable(30) %89, ptr noundef @.str.284)
          to label %962 unwind label %980

962:                                              ; preds = %961
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  invoke void @__cxa_end_catch()
          to label %963 unwind label %451

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963, %924
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  %968 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %969 unwind label %986

969:                                              ; preds = %967
  %970 = load ptr, ptr %968, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #9
  %971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %972 unwind label %990

972:                                              ; preds = %969
  %973 = load ptr, ptr %971, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %90, ptr noundef nonnull align 8 dereferenceable(30) %973, i32 noundef 1255)
          to label %974 unwind label %990

974:                                              ; preds = %972
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA320_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %970, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(320) @.str.285, ptr noundef nonnull align 8 dereferenceable(30) %90)
          to label %975 unwind label %990

975:                                              ; preds = %974
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #9
  br label %1006

976:                                              ; preds = %952
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %4, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %5, align 4
  br label %984

980:                                              ; preds = %961, %959, %956
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %4, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  br label %984

984:                                              ; preds = %980, %976
  invoke void @__cxa_end_catch()
          to label %985 unwind label %2943

985:                                              ; preds = %984
  br label %2934

986:                                              ; preds = %967
  %987 = landingpad { ptr, i32 }
          catch ptr null
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %4, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %5, align 4
  br label %994

990:                                              ; preds = %974, %972, %969
  %991 = landingpad { ptr, i32 }
          catch ptr null
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %4, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #9
  br label %994

994:                                              ; preds = %990, %986
  %995 = load ptr, ptr %4, align 8
  %996 = call ptr @__cxa_begin_catch(ptr %995) #9
  %997 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %998 unwind label %1053

998:                                              ; preds = %994
  %999 = load ptr, ptr %997, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #9
  %1000 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1001 unwind label %1057

1001:                                             ; preds = %998
  %1002 = load ptr, ptr %1000, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %91, ptr noundef nonnull align 8 dereferenceable(30) %1002, i32 noundef 1255)
          to label %1003 unwind label %1057

1003:                                             ; preds = %1001
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %999, ptr noundef nonnull align 8 dereferenceable(30) %91, ptr noundef @.str.286)
          to label %1004 unwind label %1057

1004:                                             ; preds = %1003
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  invoke void @__cxa_end_catch()
          to label %1005 unwind label %451

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005, %975
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #9
  %1009 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %1010 unwind label %1063

1010:                                             ; preds = %1008
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1009)
          to label %1011 unwind label %1067

1011:                                             ; preds = %1010
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef %1009)
          to label %1012 unwind label %1063

1012:                                             ; preds = %1011
  %1013 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %92) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #9
  %1014 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1015 = load ptr, ptr %1014, align 8, !tbaa !9
  %1016 = getelementptr inbounds ptr, ptr %1015, i64 6
  %1017 = load ptr, ptr %1016, align 8
  invoke void %1017(ptr noundef nonnull align 8 dereferenceable(136) %1014)
          to label %1018 unwind label %451

1018:                                             ; preds = %1012
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #9
  %1019 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %1020 unwind label %1072

1020:                                             ; preds = %1018
  %1021 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1022 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1023 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1019, ptr noundef %1021, ptr noundef %1022, ptr noundef %1023)
          to label %1024 unwind label %1076

1024:                                             ; preds = %1020
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef %1019)
          to label %1025 unwind label %1072

1025:                                             ; preds = %1024
  %1026 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %93) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  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.271)
          to label %1027 unwind label %1081

1027:                                             ; preds = %1025
  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.281)
          to label %1028 unwind label %1085

1028:                                             ; preds = %1027
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str)
          to label %1029 unwind label %1089

1029:                                             ; preds = %1028
  %1030 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.282)
          to label %1031 unwind label %1095

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

1032:                                             ; preds = %1031
  %1033 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #9
  br label %1034

1034:                                             ; preds = %1032
  %1035 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %1036 unwind label %1104

1036:                                             ; preds = %1034
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1037 unwind label %1108

1037:                                             ; preds = %1036
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %1038 unwind label %1112

1038:                                             ; preds = %1037
  %1039 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1035, ptr noundef %101)
          to label %1040 unwind label %1116

1040:                                             ; preds = %1038
  %1041 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1039)
          to label %1042 unwind label %1116

1042:                                             ; preds = %1040
  %1043 = xor i1 %1041, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #9
  br i1 %1043, label %1044, label %1166

1044:                                             ; preds = %1042
  %1045 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1046 unwind label %1123

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

1049:                                             ; preds = %1046
  %1050 = load ptr, ptr %1048, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef nonnull align 8 dereferenceable(30) %1050, i32 noundef 1274)
          to label %1051 unwind label %1127

1051:                                             ; preds = %1049
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1047, ptr noundef nonnull align 8 dereferenceable(30) %104, ptr noundef @.str.192)
          to label %1052 unwind label %1127

1052:                                             ; preds = %1051
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #9
  br label %1166

1053:                                             ; preds = %994
  %1054 = landingpad { ptr, i32 }
          cleanup
  %1055 = extractvalue { ptr, i32 } %1054, 0
  store ptr %1055, ptr %4, align 8
  %1056 = extractvalue { ptr, i32 } %1054, 1
  store i32 %1056, ptr %5, align 4
  br label %1061

1057:                                             ; preds = %1003, %1001, %998
  %1058 = landingpad { ptr, i32 }
          cleanup
  %1059 = extractvalue { ptr, i32 } %1058, 0
  store ptr %1059, ptr %4, align 8
  %1060 = extractvalue { ptr, i32 } %1058, 1
  store i32 %1060, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  br label %1061

1061:                                             ; preds = %1057, %1053
  invoke void @__cxa_end_catch()
          to label %1062 unwind label %2943

1062:                                             ; preds = %1061
  br label %2934

1063:                                             ; preds = %1011, %1008
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %4, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %5, align 4
  br label %1071

1067:                                             ; preds = %1010
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %4, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %1009, i64 noundef 144) #11
  br label %1071

1071:                                             ; preds = %1067, %1063
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #9
  br label %2934

1072:                                             ; preds = %1024, %1018
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %4, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %5, align 4
  br label %1080

1076:                                             ; preds = %1020
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %4, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %1019, i64 noundef 96) #11
  br label %1080

1080:                                             ; preds = %1076, %1072
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #9
  br label %2934

1081:                                             ; preds = %1025
  %1082 = landingpad { ptr, i32 }
          cleanup
  %1083 = extractvalue { ptr, i32 } %1082, 0
  store ptr %1083, ptr %4, align 8
  %1084 = extractvalue { ptr, i32 } %1082, 1
  store i32 %1084, ptr %5, align 4
  br label %1094

1085:                                             ; preds = %1027
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %4, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %5, align 4
  br label %1093

1089:                                             ; preds = %1028
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %4, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %1093

1093:                                             ; preds = %1089, %1085
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %1094

1094:                                             ; preds = %1093, %1081
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  br label %2934

1095:                                             ; preds = %1029
  %1096 = landingpad { ptr, i32 }
          cleanup
  %1097 = extractvalue { ptr, i32 } %1096, 0
  store ptr %1097, ptr %4, align 8
  %1098 = extractvalue { ptr, i32 } %1096, 1
  store i32 %1098, ptr %5, align 4
  br label %1103

1099:                                             ; preds = %1031
  %1100 = landingpad { ptr, i32 }
          cleanup
  %1101 = extractvalue { ptr, i32 } %1100, 0
  store ptr %1101, ptr %4, align 8
  %1102 = extractvalue { ptr, i32 } %1100, 1
  store i32 %1102, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %1103

1103:                                             ; preds = %1099, %1095
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #9
  br label %2934

1104:                                             ; preds = %1034
  %1105 = landingpad { ptr, i32 }
          catch ptr null
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %4, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %5, align 4
  br label %1122

1108:                                             ; preds = %1036
  %1109 = landingpad { ptr, i32 }
          catch ptr null
  %1110 = extractvalue { ptr, i32 } %1109, 0
  store ptr %1110, ptr %4, align 8
  %1111 = extractvalue { ptr, i32 } %1109, 1
  store i32 %1111, ptr %5, align 4
  br label %1121

1112:                                             ; preds = %1037
  %1113 = landingpad { ptr, i32 }
          catch ptr null
  %1114 = extractvalue { ptr, i32 } %1113, 0
  store ptr %1114, ptr %4, align 8
  %1115 = extractvalue { ptr, i32 } %1113, 1
  store i32 %1115, ptr %5, align 4
  br label %1120

1116:                                             ; preds = %1040, %1038
  %1117 = landingpad { ptr, i32 }
          catch ptr null
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %4, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #9
  br label %1120

1120:                                             ; preds = %1116, %1112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  br label %1121

1121:                                             ; preds = %1120, %1108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  br label %1122

1122:                                             ; preds = %1121, %1104
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #9
  br label %1131

1123:                                             ; preds = %1044
  %1124 = landingpad { ptr, i32 }
          catch ptr null
  %1125 = extractvalue { ptr, i32 } %1124, 0
  store ptr %1125, ptr %4, align 8
  %1126 = extractvalue { ptr, i32 } %1124, 1
  store i32 %1126, ptr %5, align 4
  br label %1131

1127:                                             ; preds = %1051, %1049, %1046
  %1128 = landingpad { ptr, i32 }
          catch ptr null
  %1129 = extractvalue { ptr, i32 } %1128, 0
  store ptr %1129, ptr %4, align 8
  %1130 = extractvalue { ptr, i32 } %1128, 1
  store i32 %1130, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #9
  br label %1131

1131:                                             ; preds = %1127, %1123, %1122
  %1132 = load ptr, ptr %4, align 8
  %1133 = call ptr @__cxa_begin_catch(ptr %1132) #9
  %1134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1135 unwind label %1167

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

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

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

1141:                                             ; preds = %1140
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  invoke void @__cxa_end_catch()
          to label %1142 unwind label %451

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1166, %1142
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #9
  %1146 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1147 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1148 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %1149 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1148)
          to label %1150 unwind label %1177

1150:                                             ; preds = %1145
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %106, ptr noundef nonnull align 8 dereferenceable(136) %1146, ptr noundef %1147, ptr noundef %107, ptr noundef nonnull align 8 dereferenceable(24) %1149, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1151 unwind label %1177

1151:                                             ; preds = %1150
  %1152 = 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) %106) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #9
  br label %1153

1153:                                             ; preds = %1151
  %1154 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr null) #9
  %1155 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1154)
          to label %1156 unwind label %1181

1156:                                             ; preds = %1153
  br i1 %1155, label %1249, label %1157

1157:                                             ; preds = %1156
  %1158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1159 unwind label %1181

1159:                                             ; preds = %1157
  %1160 = load ptr, ptr %1158, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #9
  %1161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1162 unwind label %1185

1162:                                             ; preds = %1159
  %1163 = load ptr, ptr %1161, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef nonnull align 8 dereferenceable(30) %1163, i32 noundef 1276)
          to label %1164 unwind label %1185

1164:                                             ; preds = %1162
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1160, ptr noundef nonnull align 8 dereferenceable(30) %108, ptr noundef @.str.287)
          to label %1165 unwind label %1185

1165:                                             ; preds = %1164
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #9
  br label %1249

1166:                                             ; preds = %1052, %1042
  br label %1143

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

1171:                                             ; preds = %1140, %1138, %1135
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %4, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  br label %1175

1175:                                             ; preds = %1171, %1167
  invoke void @__cxa_end_catch()
          to label %1176 unwind label %2943

1176:                                             ; preds = %1175
  br label %2934

1177:                                             ; preds = %1150, %1145
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %4, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #9
  br label %2934

1181:                                             ; preds = %1157, %1153
  %1182 = landingpad { ptr, i32 }
          catch ptr null
  %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 %1189

1185:                                             ; preds = %1164, %1162, %1159
  %1186 = landingpad { ptr, i32 }
          catch ptr null
  %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
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #9
  br label %1189

1189:                                             ; preds = %1185, %1181
  %1190 = load ptr, ptr %4, align 8
  %1191 = call ptr @__cxa_begin_catch(ptr %1190) #9
  %1192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1193 unwind label %1250

1193:                                             ; preds = %1189
  %1194 = load ptr, ptr %1192, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #9
  %1195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1196 unwind label %1254

1196:                                             ; preds = %1193
  %1197 = load ptr, ptr %1195, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %109, ptr noundef nonnull align 8 dereferenceable(30) %1197, i32 noundef 1276)
          to label %1198 unwind label %1254

1198:                                             ; preds = %1196
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1194, ptr noundef nonnull align 8 dereferenceable(30) %109, ptr noundef @.str.288)
          to label %1199 unwind label %1254

1199:                                             ; preds = %1198
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #9
  invoke void @__cxa_end_catch()
          to label %1200 unwind label %451

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1249, %1200
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #9
  %1204 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %1205 unwind label %1260

1205:                                             ; preds = %1203
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1204)
          to label %1206 unwind label %1264

1206:                                             ; preds = %1205
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef %1204)
          to label %1207 unwind label %1260

1207:                                             ; preds = %1206
  %1208 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %110) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #9
  %1209 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1210 = load ptr, ptr %1209, align 8, !tbaa !9
  %1211 = getelementptr inbounds ptr, ptr %1210, i64 6
  %1212 = load ptr, ptr %1211, align 8
  invoke void %1212(ptr noundef nonnull align 8 dereferenceable(136) %1209)
          to label %1213 unwind label %451

1213:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #9
  %1214 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %1215 unwind label %1269

1215:                                             ; preds = %1213
  %1216 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1217 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1218 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1214, ptr noundef %1216, ptr noundef %1217, ptr noundef %1218)
          to label %1219 unwind label %1273

1219:                                             ; preds = %1215
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef %1214)
          to label %1220 unwind label %1269

1220:                                             ; preds = %1219
  %1221 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %111) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  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.271)
          to label %1222 unwind label %1278

1222:                                             ; preds = %1220
  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.272)
          to label %1223 unwind label %1282

1223:                                             ; preds = %1222
  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.273)
          to label %1224 unwind label %1286

1224:                                             ; preds = %1223
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str)
          to label %1225 unwind label %1290

1225:                                             ; preds = %1224
  %1226 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  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.282)
          to label %1227 unwind label %1297

1227:                                             ; preds = %1225
  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)
          to label %1228 unwind label %1301

1228:                                             ; preds = %1227
  %1229 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #9
  br label %1230

1230:                                             ; preds = %1228
  %1231 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %1232 unwind label %1306

1232:                                             ; preds = %1230
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %121, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1233 unwind label %1310

1233:                                             ; preds = %1232
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %120, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %1234 unwind label %1314

1234:                                             ; preds = %1233
  %1235 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1231, ptr noundef %120)
          to label %1236 unwind label %1318

1236:                                             ; preds = %1234
  %1237 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1235)
          to label %1238 unwind label %1318

1238:                                             ; preds = %1236
  %1239 = xor i1 %1237, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #9
  br i1 %1239, label %1240, label %1370

1240:                                             ; preds = %1238
  %1241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1242 unwind label %1325

1242:                                             ; preds = %1240
  %1243 = load ptr, ptr %1241, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #9
  %1244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1245 unwind label %1329

1245:                                             ; preds = %1242
  %1246 = load ptr, ptr %1244, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %123, ptr noundef nonnull align 8 dereferenceable(30) %1246, i32 noundef 1295)
          to label %1247 unwind label %1329

1247:                                             ; preds = %1245
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1243, ptr noundef nonnull align 8 dereferenceable(30) %123, ptr noundef @.str.192)
          to label %1248 unwind label %1329

1248:                                             ; preds = %1247
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #9
  br label %1370

1249:                                             ; preds = %1165, %1156
  br label %1201

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

1254:                                             ; preds = %1198, %1196, %1193
  %1255 = landingpad { ptr, i32 }
          cleanup
  %1256 = extractvalue { ptr, i32 } %1255, 0
  store ptr %1256, ptr %4, align 8
  %1257 = extractvalue { ptr, i32 } %1255, 1
  store i32 %1257, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #9
  br label %1258

1258:                                             ; preds = %1254, %1250
  invoke void @__cxa_end_catch()
          to label %1259 unwind label %2943

1259:                                             ; preds = %1258
  br label %2934

1260:                                             ; preds = %1206, %1203
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %4, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %5, align 4
  br label %1268

1264:                                             ; preds = %1205
  %1265 = landingpad { ptr, i32 }
          cleanup
  %1266 = extractvalue { ptr, i32 } %1265, 0
  store ptr %1266, ptr %4, align 8
  %1267 = extractvalue { ptr, i32 } %1265, 1
  store i32 %1267, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %1204, i64 noundef 144) #11
  br label %1268

1268:                                             ; preds = %1264, %1260
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #9
  br label %2934

1269:                                             ; preds = %1219, %1213
  %1270 = landingpad { ptr, i32 }
          cleanup
  %1271 = extractvalue { ptr, i32 } %1270, 0
  store ptr %1271, ptr %4, align 8
  %1272 = extractvalue { ptr, i32 } %1270, 1
  store i32 %1272, ptr %5, align 4
  br label %1277

1273:                                             ; preds = %1215
  %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
  call void @_ZdlPvm(ptr noundef %1214, i64 noundef 96) #11
  br label %1277

1277:                                             ; preds = %1273, %1269
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #9
  br label %2934

1278:                                             ; preds = %1220
  %1279 = landingpad { ptr, i32 }
          cleanup
  %1280 = extractvalue { ptr, i32 } %1279, 0
  store ptr %1280, ptr %4, align 8
  %1281 = extractvalue { ptr, i32 } %1279, 1
  store i32 %1281, ptr %5, align 4
  br label %1296

1282:                                             ; preds = %1222
  %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
  br label %1295

1286:                                             ; preds = %1223
  %1287 = landingpad { ptr, i32 }
          cleanup
  %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 = %1224
  %1291 = landingpad { ptr, i32 }
          cleanup
  %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  br label %1294

1294:                                             ; preds = %1290, %1286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  br label %1295

1295:                                             ; preds = %1294, %1282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  br label %1296

1296:                                             ; preds = %1295, %1278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #9
  br label %2934

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

1301:                                             ; preds = %1227
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %4, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %1305

1305:                                             ; preds = %1301, %1297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #9
  br label %2934

1306:                                             ; preds = %1230
  %1307 = landingpad { ptr, i32 }
          catch ptr null
  %1308 = extractvalue { ptr, i32 } %1307, 0
  store ptr %1308, ptr %4, align 8
  %1309 = extractvalue { ptr, i32 } %1307, 1
  store i32 %1309, ptr %5, align 4
  br label %1324

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

1314:                                             ; preds = %1233
  %1315 = landingpad { ptr, i32 }
          catch ptr null
  %1316 = extractvalue { ptr, i32 } %1315, 0
  store ptr %1316, ptr %4, align 8
  %1317 = extractvalue { ptr, i32 } %1315, 1
  store i32 %1317, ptr %5, align 4
  br label %1322

1318:                                             ; preds = %1236, %1234
  %1319 = landingpad { ptr, i32 }
          catch ptr null
  %1320 = extractvalue { ptr, i32 } %1319, 0
  store ptr %1320, ptr %4, align 8
  %1321 = extractvalue { ptr, i32 } %1319, 1
  store i32 %1321, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  br label %1322

1322:                                             ; preds = %1318, %1314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  br label %1323

1323:                                             ; preds = %1322, %1310
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  br label %1324

1324:                                             ; preds = %1323, %1306
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #9
  br label %1333

1325:                                             ; preds = %1240
  %1326 = landingpad { ptr, i32 }
          catch ptr null
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %4, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %5, align 4
  br label %1333

1329:                                             ; preds = %1247, %1245, %1242
  %1330 = landingpad { ptr, i32 }
          catch ptr null
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %4, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #9
  br label %1333

1333:                                             ; preds = %1329, %1325, %1324
  %1334 = load ptr, ptr %4, align 8
  %1335 = call ptr @__cxa_begin_catch(ptr %1334) #9
  %1336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1337 unwind label %1371

1337:                                             ; preds = %1333
  %1338 = load ptr, ptr %1336, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #9
  %1339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1340 unwind label %1375

1340:                                             ; preds = %1337
  %1341 = load ptr, ptr %1339, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %124, ptr noundef nonnull align 8 dereferenceable(30) %1341, i32 noundef 1295)
          to label %1342 unwind label %1375

1342:                                             ; preds = %1340
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1338, ptr noundef nonnull align 8 dereferenceable(30) %124, ptr noundef @.str.193)
          to label %1343 unwind label %1375

1343:                                             ; preds = %1342
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #9
  invoke void @__cxa_end_catch()
          to label %1344 unwind label %451

1344:                                             ; preds = %1343
  br label %1345

1345:                                             ; preds = %1370, %1344
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #9
  %1348 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1349 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1350 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %1351 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1350)
          to label %1352 unwind label %1381

1352:                                             ; preds = %1347
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %125, ptr noundef nonnull align 8 dereferenceable(136) %1348, ptr noundef %1349, ptr noundef %126, ptr noundef nonnull align 8 dereferenceable(24) %1351, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1353 unwind label %1381

1353:                                             ; preds = %1352
  %1354 = 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) %125) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #9
  br label %1355

1355:                                             ; preds = %1353
  %1356 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1357 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1356) #9
  %1358 = icmp eq i64 %1357, 3
  %1359 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1358)
          to label %1360 unwind label %1385

1360:                                             ; preds = %1355
  br i1 %1359, label %1454, label %1361

1361:                                             ; preds = %1360
  %1362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1363 unwind label %1385

1363:                                             ; preds = %1361
  %1364 = load ptr, ptr %1362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #9
  %1365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1366 unwind label %1389

1366:                                             ; preds = %1363
  %1367 = load ptr, ptr %1365, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %127, ptr noundef nonnull align 8 dereferenceable(30) %1367, i32 noundef 1297)
          to label %1368 unwind label %1389

1368:                                             ; preds = %1366
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1364, ptr noundef nonnull align 8 dereferenceable(30) %127, ptr noundef @.str.289)
          to label %1369 unwind label %1389

1369:                                             ; preds = %1368
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #9
  br label %1454

1370:                                             ; preds = %1248, %1238
  br label %1345

1371:                                             ; preds = %1333
  %1372 = landingpad { ptr, i32 }
          cleanup
  %1373 = extractvalue { ptr, i32 } %1372, 0
  store ptr %1373, ptr %4, align 8
  %1374 = extractvalue { ptr, i32 } %1372, 1
  store i32 %1374, ptr %5, align 4
  br label %1379

1375:                                             ; preds = %1342, %1340, %1337
  %1376 = landingpad { ptr, i32 }
          cleanup
  %1377 = extractvalue { ptr, i32 } %1376, 0
  store ptr %1377, ptr %4, align 8
  %1378 = extractvalue { ptr, i32 } %1376, 1
  store i32 %1378, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #9
  br label %1379

1379:                                             ; preds = %1375, %1371
  invoke void @__cxa_end_catch()
          to label %1380 unwind label %2943

1380:                                             ; preds = %1379
  br label %2934

1381:                                             ; preds = %1352, %1347
  %1382 = landingpad { ptr, i32 }
          cleanup
  %1383 = extractvalue { ptr, i32 } %1382, 0
  store ptr %1383, ptr %4, align 8
  %1384 = extractvalue { ptr, i32 } %1382, 1
  store i32 %1384, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #9
  br label %2934

1385:                                             ; preds = %1361, %1355
  %1386 = landingpad { ptr, i32 }
          catch ptr null
  %1387 = extractvalue { ptr, i32 } %1386, 0
  store ptr %1387, ptr %4, align 8
  %1388 = extractvalue { ptr, i32 } %1386, 1
  store i32 %1388, ptr %5, align 4
  br label %1393

1389:                                             ; preds = %1368, %1366, %1363
  %1390 = landingpad { ptr, i32 }
          catch ptr null
  %1391 = extractvalue { ptr, i32 } %1390, 0
  store ptr %1391, ptr %4, align 8
  %1392 = extractvalue { ptr, i32 } %1390, 1
  store i32 %1392, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #9
  br label %1393

1393:                                             ; preds = %1389, %1385
  %1394 = load ptr, ptr %4, align 8
  %1395 = call ptr @__cxa_begin_catch(ptr %1394) #9
  %1396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1397 unwind label %1455

1397:                                             ; preds = %1393
  %1398 = load ptr, ptr %1396, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #9
  %1399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1400 unwind label %1459

1400:                                             ; preds = %1397
  %1401 = load ptr, ptr %1399, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %128, ptr noundef nonnull align 8 dereferenceable(30) %1401, i32 noundef 1297)
          to label %1402 unwind label %1459

1402:                                             ; preds = %1400
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1398, ptr noundef nonnull align 8 dereferenceable(30) %128, ptr noundef @.str.290)
          to label %1403 unwind label %1459

1403:                                             ; preds = %1402
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #9
  invoke void @__cxa_end_catch()
          to label %1404 unwind label %451

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1454, %1404
  br label %1406

1406:                                             ; preds = %1405
  br label %1407

1407:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #9
  %1408 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1409 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1408, i64 noundef 0) #9
  %1410 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1409) #9
  %1411 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1410, i32 0, i32 1
  %1412 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1411) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(144) %1412)
          to label %1413 unwind label %1465

1413:                                             ; preds = %1407
  %1414 = 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) %129) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #9
  %1415 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1416 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1415, i64 noundef 0) #9
  %1417 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1416) #9
  %1418 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1417, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(24) %1418, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1419 unwind label %1469

1419:                                             ; preds = %1413
  %1420 = 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) %130) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #9
  %1421 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1422 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1421, i64 noundef 1) #9
  %1423 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1422) #9
  %1424 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1423, i32 0, i32 1
  %1425 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1424) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(144) %1425)
          to label %1426 unwind label %1473

1426:                                             ; preds = %1419
  %1427 = 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) %131) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #9
  %1428 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1429 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1428, i64 noundef 1) #9
  %1430 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1429) #9
  %1431 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1430, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %132, ptr noundef nonnull align 8 dereferenceable(24) %1431, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1432 unwind label %1477

1432:                                             ; preds = %1426
  %1433 = 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) %132) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #9
  %1434 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1435 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1434, i64 noundef 2) #9
  %1436 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1435) #9
  %1437 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1436, i32 0, i32 1
  %1438 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1437) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(144) %1438)
          to label %1439 unwind label %1481

1439:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #9
  %1440 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1441 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1440, i64 noundef 2) #9
  %1442 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1441) #9
  %1443 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1442, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(24) %1443, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1444 unwind label %1485

1444:                                             ; preds = %1439
  br label %1445

1445:                                             ; preds = %1444
  %1446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1447 unwind label %1489

1447:                                             ; preds = %1445
  %1448 = load ptr, ptr %1446, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #9
  %1449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1450 unwind label %1493

1450:                                             ; preds = %1447
  %1451 = load ptr, ptr %1449, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef nonnull align 8 dereferenceable(30) %1451, i32 noundef 1304)
          to label %1452 unwind label %1493

1452:                                             ; preds = %1450
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1448, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %135)
          to label %1453 unwind label %1493

1453:                                             ; preds = %1452
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #9
  br label %1509

1454:                                             ; preds = %1369, %1360
  br label %1405

1455:                                             ; preds = %1393
  %1456 = landingpad { ptr, i32 }
          cleanup
  %1457 = extractvalue { ptr, i32 } %1456, 0
  store ptr %1457, ptr %4, align 8
  %1458 = extractvalue { ptr, i32 } %1456, 1
  store i32 %1458, ptr %5, align 4
  br label %1463

1459:                                             ; preds = %1402, %1400, %1397
  %1460 = landingpad { ptr, i32 }
          cleanup
  %1461 = extractvalue { ptr, i32 } %1460, 0
  store ptr %1461, ptr %4, align 8
  %1462 = extractvalue { ptr, i32 } %1460, 1
  store i32 %1462, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #9
  br label %1463

1463:                                             ; preds = %1459, %1455
  invoke void @__cxa_end_catch()
          to label %1464 unwind label %2943

1464:                                             ; preds = %1463
  br label %2934

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

1469:                                             ; preds = %1413
  %1470 = landingpad { ptr, i32 }
          cleanup
  %1471 = extractvalue { ptr, i32 } %1470, 0
  store ptr %1471, ptr %4, align 8
  %1472 = extractvalue { ptr, i32 } %1470, 1
  store i32 %1472, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #9
  br label %2934

1473:                                             ; preds = %1419
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %4, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #9
  br label %2934

1477:                                             ; preds = %1426
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %4, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #9
  br label %2934

1481:                                             ; preds = %1432
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %4, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %5, align 4
  br label %2933

1485:                                             ; preds = %1439
  %1486 = landingpad { ptr, i32 }
          cleanup
  %1487 = extractvalue { ptr, i32 } %1486, 0
  store ptr %1487, ptr %4, align 8
  %1488 = extractvalue { ptr, i32 } %1486, 1
  store i32 %1488, ptr %5, align 4
  br label %2932

1489:                                             ; preds = %1445
  %1490 = landingpad { ptr, i32 }
          catch ptr null
  %1491 = extractvalue { ptr, i32 } %1490, 0
  store ptr %1491, ptr %4, align 8
  %1492 = extractvalue { ptr, i32 } %1490, 1
  store i32 %1492, ptr %5, align 4
  br label %1497

1493:                                             ; preds = %1452, %1450, %1447
  %1494 = landingpad { ptr, i32 }
          catch ptr null
  %1495 = extractvalue { ptr, i32 } %1494, 0
  store ptr %1495, ptr %4, align 8
  %1496 = extractvalue { ptr, i32 } %1494, 1
  store i32 %1496, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #9
  br label %1497

1497:                                             ; preds = %1493, %1489
  %1498 = load ptr, ptr %4, align 8
  %1499 = call ptr @__cxa_begin_catch(ptr %1498) #9
  %1500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1501 unwind label %1521

1501:                                             ; preds = %1497
  %1502 = load ptr, ptr %1500, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #9
  %1503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1504 unwind label %1525

1504:                                             ; preds = %1501
  %1505 = load ptr, ptr %1503, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef nonnull align 8 dereferenceable(30) %1505, i32 noundef 1304)
          to label %1506 unwind label %1525

1506:                                             ; preds = %1504
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1502, ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef @.str.284)
          to label %1507 unwind label %1525

1507:                                             ; preds = %1506
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #9
  invoke void @__cxa_end_catch()
          to label %1508 unwind label %1529

1508:                                             ; preds = %1507
  br label %1509

1509:                                             ; preds = %1508, %1453
  br label %1510

1510:                                             ; preds = %1509
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1514 unwind label %1535

1514:                                             ; preds = %1512
  %1515 = load ptr, ptr %1513, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #9
  %1516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1517 unwind label %1539

1517:                                             ; preds = %1514
  %1518 = load ptr, ptr %1516, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %137, ptr noundef nonnull align 8 dereferenceable(30) %1518, i32 noundef 1305)
          to label %1519 unwind label %1539

1519:                                             ; preds = %1517
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA321_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1515, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(321) @.str.291, ptr noundef nonnull align 8 dereferenceable(30) %137)
          to label %1520 unwind label %1539

1520:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #9
  br label %1555

1521:                                             ; preds = %1497
  %1522 = landingpad { ptr, i32 }
          cleanup
  %1523 = extractvalue { ptr, i32 } %1522, 0
  store ptr %1523, ptr %4, align 8
  %1524 = extractvalue { ptr, i32 } %1522, 1
  store i32 %1524, ptr %5, align 4
  br label %1533

1525:                                             ; preds = %1506, %1504, %1501
  %1526 = landingpad { ptr, i32 }
          cleanup
  %1527 = extractvalue { ptr, i32 } %1526, 0
  store ptr %1527, ptr %4, align 8
  %1528 = extractvalue { ptr, i32 } %1526, 1
  store i32 %1528, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #9
  br label %1533

1529:                                             ; preds = %2915, %2867, %2820, %2778, %2693, %2633, %2497, %2489, %2431, %2295, %2287, %2239, %2191, %2143, %2096, %2054, %1948, %1888, %1752, %1744, %1696, %1648, %1600, %1553, %1507
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %4, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %5, align 4
  br label %2931

1533:                                             ; preds = %1525, %1521
  invoke void @__cxa_end_catch()
          to label %1534 unwind label %2943

1534:                                             ; preds = %1533
  br label %2931

1535:                                             ; preds = %1512
  %1536 = landingpad { ptr, i32 }
          catch ptr null
  %1537 = extractvalue { ptr, i32 } %1536, 0
  store ptr %1537, ptr %4, align 8
  %1538 = extractvalue { ptr, i32 } %1536, 1
  store i32 %1538, ptr %5, align 4
  br label %1543

1539:                                             ; preds = %1519, %1517, %1514
  %1540 = landingpad { ptr, i32 }
          catch ptr null
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %4, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #9
  br label %1543

1543:                                             ; preds = %1539, %1535
  %1544 = load ptr, ptr %4, align 8
  %1545 = call ptr @__cxa_begin_catch(ptr %1544) #9
  %1546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1547 unwind label %1572

1547:                                             ; preds = %1543
  %1548 = load ptr, ptr %1546, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #9
  %1549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1550 unwind label %1576

1550:                                             ; preds = %1547
  %1551 = load ptr, ptr %1549, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull align 8 dereferenceable(30) %1551, i32 noundef 1305)
          to label %1552 unwind label %1576

1552:                                             ; preds = %1550
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1548, ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef @.str.292)
          to label %1553 unwind label %1576

1553:                                             ; preds = %1552
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #9
  invoke void @__cxa_end_catch()
          to label %1554 unwind label %1529

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554, %1520
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  %1559 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.293)
          to label %1560 unwind label %1582

1560:                                             ; preds = %1558
  %1561 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1559)
          to label %1562 unwind label %1582

1562:                                             ; preds = %1560
  br i1 %1561, label %1619, label %1563

1563:                                             ; preds = %1562
  %1564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1565 unwind label %1582

1565:                                             ; preds = %1563
  %1566 = load ptr, ptr %1564, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #9
  %1567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1568 unwind label %1586

1568:                                             ; preds = %1565
  %1569 = load ptr, ptr %1567, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull align 8 dereferenceable(30) %1569, i32 noundef 1306)
          to label %1570 unwind label %1586

1570:                                             ; preds = %1568
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1566, ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef @.str.294)
          to label %1571 unwind label %1586

1571:                                             ; preds = %1570
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #9
  br label %1619

1572:                                             ; preds = %1543
  %1573 = landingpad { ptr, i32 }
          cleanup
  %1574 = extractvalue { ptr, i32 } %1573, 0
  store ptr %1574, ptr %4, align 8
  %1575 = extractvalue { ptr, i32 } %1573, 1
  store i32 %1575, ptr %5, align 4
  br label %1580

1576:                                             ; preds = %1552, %1550, %1547
  %1577 = landingpad { ptr, i32 }
          cleanup
  %1578 = extractvalue { ptr, i32 } %1577, 0
  store ptr %1578, ptr %4, align 8
  %1579 = extractvalue { ptr, i32 } %1577, 1
  store i32 %1579, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #9
  br label %1580

1580:                                             ; preds = %1576, %1572
  invoke void @__cxa_end_catch()
          to label %1581 unwind label %2943

1581:                                             ; preds = %1580
  br label %2931

1582:                                             ; preds = %1563, %1560, %1558
  %1583 = landingpad { ptr, i32 }
          catch ptr null
  %1584 = extractvalue { ptr, i32 } %1583, 0
  store ptr %1584, ptr %4, align 8
  %1585 = extractvalue { ptr, i32 } %1583, 1
  store i32 %1585, ptr %5, align 4
  br label %1590

1586:                                             ; preds = %1570, %1568, %1565
  %1587 = landingpad { ptr, i32 }
          catch ptr null
  %1588 = extractvalue { ptr, i32 } %1587, 0
  store ptr %1588, ptr %4, align 8
  %1589 = extractvalue { ptr, i32 } %1587, 1
  store i32 %1589, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #9
  br label %1590

1590:                                             ; preds = %1586, %1582
  %1591 = load ptr, ptr %4, align 8
  %1592 = call ptr @__cxa_begin_catch(ptr %1591) #9
  %1593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1594 unwind label %1620

1594:                                             ; preds = %1590
  %1595 = load ptr, ptr %1593, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #9
  %1596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1597 unwind label %1624

1597:                                             ; preds = %1594
  %1598 = load ptr, ptr %1596, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %140, ptr noundef nonnull align 8 dereferenceable(30) %1598, i32 noundef 1306)
          to label %1599 unwind label %1624

1599:                                             ; preds = %1597
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1595, ptr noundef nonnull align 8 dereferenceable(30) %140, ptr noundef @.str.295)
          to label %1600 unwind label %1624

1600:                                             ; preds = %1599
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #9
  invoke void @__cxa_end_catch()
          to label %1601 unwind label %1529

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1619, %1601
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  %1606 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.296)
          to label %1607 unwind label %1630

1607:                                             ; preds = %1605
  %1608 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1606)
          to label %1609 unwind label %1630

1609:                                             ; preds = %1607
  br i1 %1608, label %1667, label %1610

1610:                                             ; preds = %1609
  %1611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1612 unwind label %1630

1612:                                             ; preds = %1610
  %1613 = load ptr, ptr %1611, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #9
  %1614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1615 unwind label %1634

1615:                                             ; preds = %1612
  %1616 = load ptr, ptr %1614, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef nonnull align 8 dereferenceable(30) %1616, i32 noundef 1307)
          to label %1617 unwind label %1634

1617:                                             ; preds = %1615
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1613, ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef @.str.297)
          to label %1618 unwind label %1634

1618:                                             ; preds = %1617
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #9
  br label %1667

1619:                                             ; preds = %1571, %1562
  br label %1602

1620:                                             ; preds = %1590
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %4, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %5, align 4
  br label %1628

1624:                                             ; preds = %1599, %1597, %1594
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %4, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #9
  br label %1628

1628:                                             ; preds = %1624, %1620
  invoke void @__cxa_end_catch()
          to label %1629 unwind label %2943

1629:                                             ; preds = %1628
  br label %2931

1630:                                             ; preds = %1610, %1607, %1605
  %1631 = landingpad { ptr, i32 }
          catch ptr null
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %4, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %5, align 4
  br label %1638

1634:                                             ; preds = %1617, %1615, %1612
  %1635 = landingpad { ptr, i32 }
          catch ptr null
  %1636 = extractvalue { ptr, i32 } %1635, 0
  store ptr %1636, ptr %4, align 8
  %1637 = extractvalue { ptr, i32 } %1635, 1
  store i32 %1637, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #9
  br label %1638

1638:                                             ; preds = %1634, %1630
  %1639 = load ptr, ptr %4, align 8
  %1640 = call ptr @__cxa_begin_catch(ptr %1639) #9
  %1641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1642 unwind label %1668

1642:                                             ; preds = %1638
  %1643 = load ptr, ptr %1641, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #9
  %1644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1645 unwind label %1672

1645:                                             ; preds = %1642
  %1646 = load ptr, ptr %1644, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef nonnull align 8 dereferenceable(30) %1646, i32 noundef 1307)
          to label %1647 unwind label %1672

1647:                                             ; preds = %1645
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1643, ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef @.str.298)
          to label %1648 unwind label %1672

1648:                                             ; preds = %1647
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #9
  invoke void @__cxa_end_catch()
          to label %1649 unwind label %1529

1649:                                             ; preds = %1648
  br label %1650

1650:                                             ; preds = %1667, %1649
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652
  %1654 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.299)
          to label %1655 unwind label %1678

1655:                                             ; preds = %1653
  %1656 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1654)
          to label %1657 unwind label %1678

1657:                                             ; preds = %1655
  br i1 %1656, label %1715, label %1658

1658:                                             ; preds = %1657
  %1659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1660 unwind label %1678

1660:                                             ; preds = %1658
  %1661 = load ptr, ptr %1659, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #9
  %1662 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1663 unwind label %1682

1663:                                             ; preds = %1660
  %1664 = load ptr, ptr %1662, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %143, ptr noundef nonnull align 8 dereferenceable(30) %1664, i32 noundef 1308)
          to label %1665 unwind label %1682

1665:                                             ; preds = %1663
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1661, ptr noundef nonnull align 8 dereferenceable(30) %143, ptr noundef @.str.300)
          to label %1666 unwind label %1682

1666:                                             ; preds = %1665
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #9
  br label %1715

1667:                                             ; preds = %1618, %1609
  br label %1650

1668:                                             ; preds = %1638
  %1669 = landingpad { ptr, i32 }
          cleanup
  %1670 = extractvalue { ptr, i32 } %1669, 0
  store ptr %1670, ptr %4, align 8
  %1671 = extractvalue { ptr, i32 } %1669, 1
  store i32 %1671, ptr %5, align 4
  br label %1676

1672:                                             ; preds = %1647, %1645, %1642
  %1673 = landingpad { ptr, i32 }
          cleanup
  %1674 = extractvalue { ptr, i32 } %1673, 0
  store ptr %1674, ptr %4, align 8
  %1675 = extractvalue { ptr, i32 } %1673, 1
  store i32 %1675, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #9
  br label %1676

1676:                                             ; preds = %1672, %1668
  invoke void @__cxa_end_catch()
          to label %1677 unwind label %2943

1677:                                             ; preds = %1676
  br label %2931

1678:                                             ; preds = %1658, %1655, %1653
  %1679 = landingpad { ptr, i32 }
          catch ptr null
  %1680 = extractvalue { ptr, i32 } %1679, 0
  store ptr %1680, ptr %4, align 8
  %1681 = extractvalue { ptr, i32 } %1679, 1
  store i32 %1681, ptr %5, align 4
  br label %1686

1682:                                             ; preds = %1665, %1663, %1660
  %1683 = landingpad { ptr, i32 }
          catch ptr null
  %1684 = extractvalue { ptr, i32 } %1683, 0
  store ptr %1684, ptr %4, align 8
  %1685 = extractvalue { ptr, i32 } %1683, 1
  store i32 %1685, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #9
  br label %1686

1686:                                             ; preds = %1682, %1678
  %1687 = load ptr, ptr %4, align 8
  %1688 = call ptr @__cxa_begin_catch(ptr %1687) #9
  %1689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1690 unwind label %1716

1690:                                             ; preds = %1686
  %1691 = load ptr, ptr %1689, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #9
  %1692 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1693 unwind label %1720

1693:                                             ; preds = %1690
  %1694 = load ptr, ptr %1692, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %144, ptr noundef nonnull align 8 dereferenceable(30) %1694, i32 noundef 1308)
          to label %1695 unwind label %1720

1695:                                             ; preds = %1693
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1691, ptr noundef nonnull align 8 dereferenceable(30) %144, ptr noundef @.str.301)
          to label %1696 unwind label %1720

1696:                                             ; preds = %1695
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #9
  invoke void @__cxa_end_catch()
          to label %1697 unwind label %1529

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1715, %1697
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

1701:                                             ; preds = %1700
  %1702 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.302)
          to label %1703 unwind label %1726

1703:                                             ; preds = %1701
  %1704 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1702)
          to label %1705 unwind label %1726

1705:                                             ; preds = %1703
  br i1 %1704, label %1794, label %1706

1706:                                             ; preds = %1705
  %1707 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1708 unwind label %1726

1708:                                             ; preds = %1706
  %1709 = load ptr, ptr %1707, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #9
  %1710 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1711 unwind label %1730

1711:                                             ; preds = %1708
  %1712 = load ptr, ptr %1710, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %145, ptr noundef nonnull align 8 dereferenceable(30) %1712, i32 noundef 1309)
          to label %1713 unwind label %1730

1713:                                             ; preds = %1711
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1709, ptr noundef nonnull align 8 dereferenceable(30) %145, ptr noundef @.str.303)
          to label %1714 unwind label %1730

1714:                                             ; preds = %1713
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #9
  br label %1794

1715:                                             ; preds = %1666, %1657
  br label %1698

1716:                                             ; preds = %1686
  %1717 = landingpad { ptr, i32 }
          cleanup
  %1718 = extractvalue { ptr, i32 } %1717, 0
  store ptr %1718, ptr %4, align 8
  %1719 = extractvalue { ptr, i32 } %1717, 1
  store i32 %1719, ptr %5, align 4
  br label %1724

1720:                                             ; preds = %1695, %1693, %1690
  %1721 = landingpad { ptr, i32 }
          cleanup
  %1722 = extractvalue { ptr, i32 } %1721, 0
  store ptr %1722, ptr %4, align 8
  %1723 = extractvalue { ptr, i32 } %1721, 1
  store i32 %1723, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #9
  br label %1724

1724:                                             ; preds = %1720, %1716
  invoke void @__cxa_end_catch()
          to label %1725 unwind label %2943

1725:                                             ; preds = %1724
  br label %2931

1726:                                             ; preds = %1706, %1703, %1701
  %1727 = landingpad { ptr, i32 }
          catch ptr null
  %1728 = extractvalue { ptr, i32 } %1727, 0
  store ptr %1728, ptr %4, align 8
  %1729 = extractvalue { ptr, i32 } %1727, 1
  store i32 %1729, ptr %5, align 4
  br label %1734

1730:                                             ; preds = %1713, %1711, %1708
  %1731 = landingpad { ptr, i32 }
          catch ptr null
  %1732 = extractvalue { ptr, i32 } %1731, 0
  store ptr %1732, ptr %4, align 8
  %1733 = extractvalue { ptr, i32 } %1731, 1
  store i32 %1733, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #9
  br label %1734

1734:                                             ; preds = %1730, %1726
  %1735 = load ptr, ptr %4, align 8
  %1736 = call ptr @__cxa_begin_catch(ptr %1735) #9
  %1737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1738 unwind label %1795

1738:                                             ; preds = %1734
  %1739 = load ptr, ptr %1737, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #9
  %1740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1741 unwind label %1799

1741:                                             ; preds = %1738
  %1742 = load ptr, ptr %1740, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %146, ptr noundef nonnull align 8 dereferenceable(30) %1742, i32 noundef 1309)
          to label %1743 unwind label %1799

1743:                                             ; preds = %1741
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1739, ptr noundef nonnull align 8 dereferenceable(30) %146, ptr noundef @.str.304)
          to label %1744 unwind label %1799

1744:                                             ; preds = %1743
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #9
  invoke void @__cxa_end_catch()
          to label %1745 unwind label %1529

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1794, %1745
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 16, ptr %147) #9
  %1749 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %1750 unwind label %1805

1750:                                             ; preds = %1748
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1749)
          to label %1751 unwind label %1809

1751:                                             ; preds = %1750
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef %1749)
          to label %1752 unwind label %1805

1752:                                             ; preds = %1751
  %1753 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %147) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #9
  %1754 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1755 = load ptr, ptr %1754, align 8, !tbaa !9
  %1756 = getelementptr inbounds ptr, ptr %1755, i64 6
  %1757 = load ptr, ptr %1756, align 8
  invoke void %1757(ptr noundef nonnull align 8 dereferenceable(136) %1754)
          to label %1758 unwind label %1529

1758:                                             ; preds = %1752
  call void @llvm.lifetime.start.p0(i64 16, ptr %148) #9
  %1759 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %1760 unwind label %1814

1760:                                             ; preds = %1758
  %1761 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1762 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1763 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1759, ptr noundef %1761, ptr noundef %1762, ptr noundef %1763)
          to label %1764 unwind label %1818

1764:                                             ; preds = %1760
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef %1759)
          to label %1765 unwind label %1814

1765:                                             ; preds = %1764
  %1766 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %148) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %152, ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef @.str.271)
          to label %1767 unwind label %1823

1767:                                             ; preds = %1765
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.272)
          to label %1768 unwind label %1827

1768:                                             ; preds = %1767
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.305)
          to label %1769 unwind label %1831

1769:                                             ; preds = %1768
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str)
          to label %1770 unwind label %1835

1770:                                             ; preds = %1769
  %1771 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.282)
          to label %1772 unwind label %1842

1772:                                             ; preds = %1770
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str)
          to label %1773 unwind label %1846

1773:                                             ; preds = %1772
  %1774 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #9
  br label %1775

1775:                                             ; preds = %1773
  %1776 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %159) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %1777 unwind label %1851

1777:                                             ; preds = %1775
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1778 unwind label %1855

1778:                                             ; preds = %1777
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %1779 unwind label %1859

1779:                                             ; preds = %1778
  %1780 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1776, ptr noundef %157)
          to label %1781 unwind label %1863

1781:                                             ; preds = %1779
  %1782 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1780)
          to label %1783 unwind label %1863

1783:                                             ; preds = %1781
  %1784 = xor i1 %1782, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #9
  br i1 %1784, label %1785, label %1915

1785:                                             ; preds = %1783
  %1786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1787 unwind label %1870

1787:                                             ; preds = %1785
  %1788 = load ptr, ptr %1786, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #9
  %1789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1790 unwind label %1874

1790:                                             ; preds = %1787
  %1791 = load ptr, ptr %1789, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %160, ptr noundef nonnull align 8 dereferenceable(30) %1791, i32 noundef 1328)
          to label %1792 unwind label %1874

1792:                                             ; preds = %1790
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1788, ptr noundef nonnull align 8 dereferenceable(30) %160, ptr noundef @.str.192)
          to label %1793 unwind label %1874

1793:                                             ; preds = %1792
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #9
  br label %1915

1794:                                             ; preds = %1714, %1705
  br label %1746

1795:                                             ; preds = %1734
  %1796 = landingpad { ptr, i32 }
          cleanup
  %1797 = extractvalue { ptr, i32 } %1796, 0
  store ptr %1797, ptr %4, align 8
  %1798 = extractvalue { ptr, i32 } %1796, 1
  store i32 %1798, ptr %5, align 4
  br label %1803

1799:                                             ; preds = %1743, %1741, %1738
  %1800 = landingpad { ptr, i32 }
          cleanup
  %1801 = extractvalue { ptr, i32 } %1800, 0
  store ptr %1801, ptr %4, align 8
  %1802 = extractvalue { ptr, i32 } %1800, 1
  store i32 %1802, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #9
  br label %1803

1803:                                             ; preds = %1799, %1795
  invoke void @__cxa_end_catch()
          to label %1804 unwind label %2943

1804:                                             ; preds = %1803
  br label %2931

1805:                                             ; preds = %1751, %1748
  %1806 = landingpad { ptr, i32 }
          cleanup
  %1807 = extractvalue { ptr, i32 } %1806, 0
  store ptr %1807, ptr %4, align 8
  %1808 = extractvalue { ptr, i32 } %1806, 1
  store i32 %1808, ptr %5, align 4
  br label %1813

1809:                                             ; preds = %1750
  %1810 = landingpad { ptr, i32 }
          cleanup
  %1811 = extractvalue { ptr, i32 } %1810, 0
  store ptr %1811, ptr %4, align 8
  %1812 = extractvalue { ptr, i32 } %1810, 1
  store i32 %1812, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %1749, i64 noundef 144) #11
  br label %1813

1813:                                             ; preds = %1809, %1805
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #9
  br label %2931

1814:                                             ; preds = %1764, %1758
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = extractvalue { ptr, i32 } %1815, 0
  store ptr %1816, ptr %4, align 8
  %1817 = extractvalue { ptr, i32 } %1815, 1
  store i32 %1817, ptr %5, align 4
  br label %1822

1818:                                             ; preds = %1760
  %1819 = landingpad { ptr, i32 }
          cleanup
  %1820 = extractvalue { ptr, i32 } %1819, 0
  store ptr %1820, ptr %4, align 8
  %1821 = extractvalue { ptr, i32 } %1819, 1
  store i32 %1821, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %1759, i64 noundef 96) #11
  br label %1822

1822:                                             ; preds = %1818, %1814
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #9
  br label %2931

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

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

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

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

1839:                                             ; preds = %1835, %1831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  br label %1840

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

1841:                                             ; preds = %1840, %1823
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #9
  br label %2931

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

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

1850:                                             ; preds = %1846, %1842
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #9
  br label %2931

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

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

1859:                                             ; preds = %1778
  %1860 = landingpad { ptr, i32 }
          catch ptr null
  %1861 = extractvalue { ptr, i32 } %1860, 0
  store ptr %1861, ptr %4, align 8
  %1862 = extractvalue { ptr, i32 } %1860, 1
  store i32 %1862, ptr %5, align 4
  br label %1867

1863:                                             ; preds = %1781, %1779
  %1864 = landingpad { ptr, i32 }
          catch ptr null
  %1865 = extractvalue { ptr, i32 } %1864, 0
  store ptr %1865, ptr %4, align 8
  %1866 = extractvalue { ptr, i32 } %1864, 1
  store i32 %1866, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  br label %1867

1867:                                             ; preds = %1863, %1859
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #9
  br label %1868

1868:                                             ; preds = %1867, %1855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  br label %1869

1869:                                             ; preds = %1868, %1851
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #9
  br label %1878

1870:                                             ; preds = %1785
  %1871 = landingpad { ptr, i32 }
          catch ptr null
  %1872 = extractvalue { ptr, i32 } %1871, 0
  store ptr %1872, ptr %4, align 8
  %1873 = extractvalue { ptr, i32 } %1871, 1
  store i32 %1873, ptr %5, align 4
  br label %1878

1874:                                             ; preds = %1792, %1790, %1787
  %1875 = landingpad { ptr, i32 }
          catch ptr null
  %1876 = extractvalue { ptr, i32 } %1875, 0
  store ptr %1876, ptr %4, align 8
  %1877 = extractvalue { ptr, i32 } %1875, 1
  store i32 %1877, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #9
  br label %1878

1878:                                             ; preds = %1874, %1870, %1869
  %1879 = load ptr, ptr %4, align 8
  %1880 = call ptr @__cxa_begin_catch(ptr %1879) #9
  %1881 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1882 unwind label %1916

1882:                                             ; preds = %1878
  %1883 = load ptr, ptr %1881, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #9
  %1884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1885 unwind label %1920

1885:                                             ; preds = %1882
  %1886 = load ptr, ptr %1884, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef nonnull align 8 dereferenceable(30) %1886, i32 noundef 1328)
          to label %1887 unwind label %1920

1887:                                             ; preds = %1885
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1883, ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef @.str.193)
          to label %1888 unwind label %1920

1888:                                             ; preds = %1887
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #9
  invoke void @__cxa_end_catch()
          to label %1889 unwind label %1529

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1915, %1889
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 16, ptr %162) #9
  %1893 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %1894 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %1895 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %1896 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1895)
          to label %1897 unwind label %1926

1897:                                             ; preds = %1892
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %162, ptr noundef nonnull align 8 dereferenceable(136) %1893, ptr noundef %1894, ptr noundef %163, ptr noundef nonnull align 8 dereferenceable(24) %1896, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1898 unwind label %1926

1898:                                             ; preds = %1897
  %1899 = 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) %162) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %162) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #9
  br label %1900

1900:                                             ; preds = %1898
  %1901 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1902 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1901) #9
  %1903 = icmp eq i64 %1902, 3
  %1904 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1903)
          to label %1905 unwind label %1930

1905:                                             ; preds = %1900
  br i1 %1904, label %2001, label %1906

1906:                                             ; preds = %1905
  %1907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1908 unwind label %1930

1908:                                             ; preds = %1906
  %1909 = load ptr, ptr %1907, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #9
  %1910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1911 unwind label %1934

1911:                                             ; preds = %1908
  %1912 = load ptr, ptr %1910, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %164, ptr noundef nonnull align 8 dereferenceable(30) %1912, i32 noundef 1330)
          to label %1913 unwind label %1934

1913:                                             ; preds = %1911
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1909, ptr noundef nonnull align 8 dereferenceable(30) %164, ptr noundef @.str.289)
          to label %1914 unwind label %1934

1914:                                             ; preds = %1913
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #9
  br label %2001

1915:                                             ; preds = %1793, %1783
  br label %1890

1916:                                             ; preds = %1878
  %1917 = landingpad { ptr, i32 }
          cleanup
  %1918 = extractvalue { ptr, i32 } %1917, 0
  store ptr %1918, ptr %4, align 8
  %1919 = extractvalue { ptr, i32 } %1917, 1
  store i32 %1919, ptr %5, align 4
  br label %1924

1920:                                             ; preds = %1887, %1885, %1882
  %1921 = landingpad { ptr, i32 }
          cleanup
  %1922 = extractvalue { ptr, i32 } %1921, 0
  store ptr %1922, ptr %4, align 8
  %1923 = extractvalue { ptr, i32 } %1921, 1
  store i32 %1923, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #9
  br label %1924

1924:                                             ; preds = %1920, %1916
  invoke void @__cxa_end_catch()
          to label %1925 unwind label %2943

1925:                                             ; preds = %1924
  br label %2931

1926:                                             ; preds = %1897, %1892
  %1927 = landingpad { ptr, i32 }
          cleanup
  %1928 = extractvalue { ptr, i32 } %1927, 0
  store ptr %1928, ptr %4, align 8
  %1929 = extractvalue { ptr, i32 } %1927, 1
  store i32 %1929, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #9
  br label %2931

1930:                                             ; preds = %1906, %1900
  %1931 = landingpad { ptr, i32 }
          catch ptr null
  %1932 = extractvalue { ptr, i32 } %1931, 0
  store ptr %1932, ptr %4, align 8
  %1933 = extractvalue { ptr, i32 } %1931, 1
  store i32 %1933, ptr %5, align 4
  br label %1938

1934:                                             ; preds = %1913, %1911, %1908
  %1935 = landingpad { ptr, i32 }
          catch ptr null
  %1936 = extractvalue { ptr, i32 } %1935, 0
  store ptr %1936, ptr %4, align 8
  %1937 = extractvalue { ptr, i32 } %1935, 1
  store i32 %1937, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #9
  br label %1938

1938:                                             ; preds = %1934, %1930
  %1939 = load ptr, ptr %4, align 8
  %1940 = call ptr @__cxa_begin_catch(ptr %1939) #9
  %1941 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1942 unwind label %2002

1942:                                             ; preds = %1938
  %1943 = load ptr, ptr %1941, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #9
  %1944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1945 unwind label %2006

1945:                                             ; preds = %1942
  %1946 = load ptr, ptr %1944, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %165, ptr noundef nonnull align 8 dereferenceable(30) %1946, i32 noundef 1330)
          to label %1947 unwind label %2006

1947:                                             ; preds = %1945
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1943, ptr noundef nonnull align 8 dereferenceable(30) %165, ptr noundef @.str.290)
          to label %1948 unwind label %2006

1948:                                             ; preds = %1947
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #9
  invoke void @__cxa_end_catch()
          to label %1949 unwind label %1529

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %2001, %1949
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #9
  %1953 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1954 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1953, i64 noundef 0) #9
  %1955 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1954) #9
  %1956 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1955, i32 0, i32 1
  %1957 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1956) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(144) %1957)
          to label %1958 unwind label %2012

1958:                                             ; preds = %1952
  %1959 = 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) %166) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #9
  %1960 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1961 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1960, i64 noundef 0) #9
  %1962 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1961) #9
  %1963 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1962, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef nonnull align 8 dereferenceable(24) %1963, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1964 unwind label %2016

1964:                                             ; preds = %1958
  %1965 = 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) %167) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #9
  %1966 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1967 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1966, i64 noundef 1) #9
  %1968 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1967) #9
  %1969 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1968, i32 0, i32 1
  %1970 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1969) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef nonnull align 8 dereferenceable(144) %1970)
          to label %1971 unwind label %2020

1971:                                             ; preds = %1964
  %1972 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %168) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #9
  %1973 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1974 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1973, i64 noundef 1) #9
  %1975 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1974) #9
  %1976 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1975, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %169, ptr noundef nonnull align 8 dereferenceable(24) %1976, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1977 unwind label %2024

1977:                                             ; preds = %1971
  %1978 = 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) %169) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #9
  %1979 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1980 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1979, i64 noundef 2) #9
  %1981 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1980) #9
  %1982 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1981, i32 0, i32 1
  %1983 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1982) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %170, ptr noundef nonnull align 8 dereferenceable(144) %1983)
          to label %1984 unwind label %2028

1984:                                             ; preds = %1977
  %1985 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #9
  %1986 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %1987 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1986, i64 noundef 2) #9
  %1988 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1987) #9
  %1989 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %1988, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %171, ptr noundef nonnull align 8 dereferenceable(24) %1989, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1990 unwind label %2032

1990:                                             ; preds = %1984
  %1991 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %171) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #9
  br label %1992

1992:                                             ; preds = %1990
  %1993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1994 unwind label %2036

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

1997:                                             ; preds = %1994
  %1998 = load ptr, ptr %1996, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %172, ptr noundef nonnull align 8 dereferenceable(30) %1998, i32 noundef 1337)
          to label %1999 unwind label %2040

1999:                                             ; preds = %1997
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1995, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %172)
          to label %2000 unwind label %2040

2000:                                             ; preds = %1999
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #9
  br label %2056

2001:                                             ; preds = %1914, %1905
  br label %1950

2002:                                             ; preds = %1938
  %2003 = landingpad { ptr, i32 }
          cleanup
  %2004 = extractvalue { ptr, i32 } %2003, 0
  store ptr %2004, ptr %4, align 8
  %2005 = extractvalue { ptr, i32 } %2003, 1
  store i32 %2005, ptr %5, align 4
  br label %2010

2006:                                             ; preds = %1947, %1945, %1942
  %2007 = landingpad { ptr, i32 }
          cleanup
  %2008 = extractvalue { ptr, i32 } %2007, 0
  store ptr %2008, ptr %4, align 8
  %2009 = extractvalue { ptr, i32 } %2007, 1
  store i32 %2009, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #9
  br label %2010

2010:                                             ; preds = %2006, %2002
  invoke void @__cxa_end_catch()
          to label %2011 unwind label %2943

2011:                                             ; preds = %2010
  br label %2931

2012:                                             ; preds = %1952
  %2013 = landingpad { ptr, i32 }
          cleanup
  %2014 = extractvalue { ptr, i32 } %2013, 0
  store ptr %2014, ptr %4, align 8
  %2015 = extractvalue { ptr, i32 } %2013, 1
  store i32 %2015, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #9
  br label %2931

2016:                                             ; preds = %1958
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %4, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #9
  br label %2931

2020:                                             ; preds = %1964
  %2021 = landingpad { ptr, i32 }
          cleanup
  %2022 = extractvalue { ptr, i32 } %2021, 0
  store ptr %2022, ptr %4, align 8
  %2023 = extractvalue { ptr, i32 } %2021, 1
  store i32 %2023, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #9
  br label %2931

2024:                                             ; preds = %1971
  %2025 = landingpad { ptr, i32 }
          cleanup
  %2026 = extractvalue { ptr, i32 } %2025, 0
  store ptr %2026, ptr %4, align 8
  %2027 = extractvalue { ptr, i32 } %2025, 1
  store i32 %2027, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #9
  br label %2931

2028:                                             ; preds = %1977
  %2029 = landingpad { ptr, i32 }
          cleanup
  %2030 = extractvalue { ptr, i32 } %2029, 0
  store ptr %2030, ptr %4, align 8
  %2031 = extractvalue { ptr, i32 } %2029, 1
  store i32 %2031, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #9
  br label %2931

2032:                                             ; preds = %1984
  %2033 = landingpad { ptr, i32 }
          cleanup
  %2034 = extractvalue { ptr, i32 } %2033, 0
  store ptr %2034, ptr %4, align 8
  %2035 = extractvalue { ptr, i32 } %2033, 1
  store i32 %2035, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #9
  br label %2931

2036:                                             ; preds = %1992
  %2037 = landingpad { ptr, i32 }
          catch ptr null
  %2038 = extractvalue { ptr, i32 } %2037, 0
  store ptr %2038, ptr %4, align 8
  %2039 = extractvalue { ptr, i32 } %2037, 1
  store i32 %2039, ptr %5, align 4
  br label %2044

2040:                                             ; preds = %1999, %1997, %1994
  %2041 = landingpad { ptr, i32 }
          catch ptr null
  %2042 = extractvalue { ptr, i32 } %2041, 0
  store ptr %2042, ptr %4, align 8
  %2043 = extractvalue { ptr, i32 } %2041, 1
  store i32 %2043, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #9
  br label %2044

2044:                                             ; preds = %2040, %2036
  %2045 = load ptr, ptr %4, align 8
  %2046 = call ptr @__cxa_begin_catch(ptr %2045) #9
  %2047 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2048 unwind label %2068

2048:                                             ; preds = %2044
  %2049 = load ptr, ptr %2047, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %173) #9
  %2050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2051 unwind label %2072

2051:                                             ; preds = %2048
  %2052 = load ptr, ptr %2050, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %173, ptr noundef nonnull align 8 dereferenceable(30) %2052, i32 noundef 1337)
          to label %2053 unwind label %2072

2053:                                             ; preds = %2051
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2049, ptr noundef nonnull align 8 dereferenceable(30) %173, ptr noundef @.str.284)
          to label %2054 unwind label %2072

2054:                                             ; preds = %2053
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #9
  invoke void @__cxa_end_catch()
          to label %2055 unwind label %1529

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055, %2000
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

2058:                                             ; preds = %2057
  br label %2059

2059:                                             ; preds = %2058
  %2060 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2061 unwind label %2078

2061:                                             ; preds = %2059
  %2062 = load ptr, ptr %2060, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #9
  %2063 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2064 unwind label %2082

2064:                                             ; preds = %2061
  %2065 = load ptr, ptr %2063, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %174, ptr noundef nonnull align 8 dereferenceable(30) %2065, i32 noundef 1338)
          to label %2066 unwind label %2082

2066:                                             ; preds = %2064
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA321_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2062, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(321) @.str.306, ptr noundef nonnull align 8 dereferenceable(30) %174)
          to label %2067 unwind label %2082

2067:                                             ; preds = %2066
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #9
  br label %2098

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

2072:                                             ; preds = %2053, %2051, %2048
  %2073 = landingpad { ptr, i32 }
          cleanup
  %2074 = extractvalue { ptr, i32 } %2073, 0
  store ptr %2074, ptr %4, align 8
  %2075 = extractvalue { ptr, i32 } %2073, 1
  store i32 %2075, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #9
  br label %2076

2076:                                             ; preds = %2072, %2068
  invoke void @__cxa_end_catch()
          to label %2077 unwind label %2943

2077:                                             ; preds = %2076
  br label %2931

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

2082:                                             ; preds = %2066, %2064, %2061
  %2083 = landingpad { ptr, i32 }
          catch ptr null
  %2084 = extractvalue { ptr, i32 } %2083, 0
  store ptr %2084, ptr %4, align 8
  %2085 = extractvalue { ptr, i32 } %2083, 1
  store i32 %2085, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #9
  br label %2086

2086:                                             ; preds = %2082, %2078
  %2087 = load ptr, ptr %4, align 8
  %2088 = call ptr @__cxa_begin_catch(ptr %2087) #9
  %2089 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2090 unwind label %2115

2090:                                             ; preds = %2086
  %2091 = load ptr, ptr %2089, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %175) #9
  %2092 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2093 unwind label %2119

2093:                                             ; preds = %2090
  %2094 = load ptr, ptr %2092, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef nonnull align 8 dereferenceable(30) %2094, i32 noundef 1338)
          to label %2095 unwind label %2119

2095:                                             ; preds = %2093
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2091, ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef @.str.307)
          to label %2096 unwind label %2119

2096:                                             ; preds = %2095
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #9
  invoke void @__cxa_end_catch()
          to label %2097 unwind label %1529

2097:                                             ; preds = %2096
  br label %2098

2098:                                             ; preds = %2097, %2067
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  %2102 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.308)
          to label %2103 unwind label %2125

2103:                                             ; preds = %2101
  %2104 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2102)
          to label %2105 unwind label %2125

2105:                                             ; preds = %2103
  br i1 %2104, label %2162, label %2106

2106:                                             ; preds = %2105
  %2107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2108 unwind label %2125

2108:                                             ; preds = %2106
  %2109 = load ptr, ptr %2107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #9
  %2110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2111 unwind label %2129

2111:                                             ; preds = %2108
  %2112 = load ptr, ptr %2110, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %176, ptr noundef nonnull align 8 dereferenceable(30) %2112, i32 noundef 1339)
          to label %2113 unwind label %2129

2113:                                             ; preds = %2111
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2109, ptr noundef nonnull align 8 dereferenceable(30) %176, ptr noundef @.str.309)
          to label %2114 unwind label %2129

2114:                                             ; preds = %2113
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #9
  br label %2162

2115:                                             ; preds = %2086
  %2116 = landingpad { ptr, i32 }
          cleanup
  %2117 = extractvalue { ptr, i32 } %2116, 0
  store ptr %2117, ptr %4, align 8
  %2118 = extractvalue { ptr, i32 } %2116, 1
  store i32 %2118, ptr %5, align 4
  br label %2123

2119:                                             ; preds = %2095, %2093, %2090
  %2120 = landingpad { ptr, i32 }
          cleanup
  %2121 = extractvalue { ptr, i32 } %2120, 0
  store ptr %2121, ptr %4, align 8
  %2122 = extractvalue { ptr, i32 } %2120, 1
  store i32 %2122, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #9
  br label %2123

2123:                                             ; preds = %2119, %2115
  invoke void @__cxa_end_catch()
          to label %2124 unwind label %2943

2124:                                             ; preds = %2123
  br label %2931

2125:                                             ; preds = %2106, %2103, %2101
  %2126 = landingpad { ptr, i32 }
          catch ptr null
  %2127 = extractvalue { ptr, i32 } %2126, 0
  store ptr %2127, ptr %4, align 8
  %2128 = extractvalue { ptr, i32 } %2126, 1
  store i32 %2128, ptr %5, align 4
  br label %2133

2129:                                             ; preds = %2113, %2111, %2108
  %2130 = landingpad { ptr, i32 }
          catch ptr null
  %2131 = extractvalue { ptr, i32 } %2130, 0
  store ptr %2131, ptr %4, align 8
  %2132 = extractvalue { ptr, i32 } %2130, 1
  store i32 %2132, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #9
  br label %2133

2133:                                             ; preds = %2129, %2125
  %2134 = load ptr, ptr %4, align 8
  %2135 = call ptr @__cxa_begin_catch(ptr %2134) #9
  %2136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2137 unwind label %2163

2137:                                             ; preds = %2133
  %2138 = load ptr, ptr %2136, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %177) #9
  %2139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2140 unwind label %2167

2140:                                             ; preds = %2137
  %2141 = load ptr, ptr %2139, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %177, ptr noundef nonnull align 8 dereferenceable(30) %2141, i32 noundef 1339)
          to label %2142 unwind label %2167

2142:                                             ; preds = %2140
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2138, ptr noundef nonnull align 8 dereferenceable(30) %177, ptr noundef @.str.310)
          to label %2143 unwind label %2167

2143:                                             ; preds = %2142
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #9
  invoke void @__cxa_end_catch()
          to label %2144 unwind label %1529

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2162, %2144
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146
  br label %2148

2148:                                             ; preds = %2147
  %2149 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.311)
          to label %2150 unwind label %2173

2150:                                             ; preds = %2148
  %2151 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2149)
          to label %2152 unwind label %2173

2152:                                             ; preds = %2150
  br i1 %2151, label %2210, label %2153

2153:                                             ; preds = %2152
  %2154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2155 unwind label %2173

2155:                                             ; preds = %2153
  %2156 = load ptr, ptr %2154, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #9
  %2157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2158 unwind label %2177

2158:                                             ; preds = %2155
  %2159 = load ptr, ptr %2157, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %178, ptr noundef nonnull align 8 dereferenceable(30) %2159, i32 noundef 1340)
          to label %2160 unwind label %2177

2160:                                             ; preds = %2158
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2156, ptr noundef nonnull align 8 dereferenceable(30) %178, ptr noundef @.str.312)
          to label %2161 unwind label %2177

2161:                                             ; preds = %2160
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #9
  br label %2210

2162:                                             ; preds = %2114, %2105
  br label %2145

2163:                                             ; preds = %2133
  %2164 = landingpad { ptr, i32 }
          cleanup
  %2165 = extractvalue { ptr, i32 } %2164, 0
  store ptr %2165, ptr %4, align 8
  %2166 = extractvalue { ptr, i32 } %2164, 1
  store i32 %2166, ptr %5, align 4
  br label %2171

2167:                                             ; preds = %2142, %2140, %2137
  %2168 = landingpad { ptr, i32 }
          cleanup
  %2169 = extractvalue { ptr, i32 } %2168, 0
  store ptr %2169, ptr %4, align 8
  %2170 = extractvalue { ptr, i32 } %2168, 1
  store i32 %2170, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #9
  br label %2171

2171:                                             ; preds = %2167, %2163
  invoke void @__cxa_end_catch()
          to label %2172 unwind label %2943

2172:                                             ; preds = %2171
  br label %2931

2173:                                             ; preds = %2153, %2150, %2148
  %2174 = landingpad { ptr, i32 }
          catch ptr null
  %2175 = extractvalue { ptr, i32 } %2174, 0
  store ptr %2175, ptr %4, align 8
  %2176 = extractvalue { ptr, i32 } %2174, 1
  store i32 %2176, ptr %5, align 4
  br label %2181

2177:                                             ; preds = %2160, %2158, %2155
  %2178 = landingpad { ptr, i32 }
          catch ptr null
  %2179 = extractvalue { ptr, i32 } %2178, 0
  store ptr %2179, ptr %4, align 8
  %2180 = extractvalue { ptr, i32 } %2178, 1
  store i32 %2180, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #9
  br label %2181

2181:                                             ; preds = %2177, %2173
  %2182 = load ptr, ptr %4, align 8
  %2183 = call ptr @__cxa_begin_catch(ptr %2182) #9
  %2184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2185 unwind label %2211

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

2188:                                             ; preds = %2185
  %2189 = load ptr, ptr %2187, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %179, ptr noundef nonnull align 8 dereferenceable(30) %2189, i32 noundef 1340)
          to label %2190 unwind label %2215

2190:                                             ; preds = %2188
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2186, ptr noundef nonnull align 8 dereferenceable(30) %179, ptr noundef @.str.313)
          to label %2191 unwind label %2215

2191:                                             ; preds = %2190
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #9
  invoke void @__cxa_end_catch()
          to label %2192 unwind label %1529

2192:                                             ; preds = %2191
  br label %2193

2193:                                             ; preds = %2210, %2192
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  %2197 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.314)
          to label %2198 unwind label %2221

2198:                                             ; preds = %2196
  %2199 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2197)
          to label %2200 unwind label %2221

2200:                                             ; preds = %2198
  br i1 %2199, label %2258, label %2201

2201:                                             ; preds = %2200
  %2202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2203 unwind label %2221

2203:                                             ; preds = %2201
  %2204 = load ptr, ptr %2202, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #9
  %2205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2206 unwind label %2225

2206:                                             ; preds = %2203
  %2207 = load ptr, ptr %2205, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %180, ptr noundef nonnull align 8 dereferenceable(30) %2207, i32 noundef 1341)
          to label %2208 unwind label %2225

2208:                                             ; preds = %2206
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2204, ptr noundef nonnull align 8 dereferenceable(30) %180, ptr noundef @.str.315)
          to label %2209 unwind label %2225

2209:                                             ; preds = %2208
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #9
  br label %2258

2210:                                             ; preds = %2161, %2152
  br label %2193

2211:                                             ; preds = %2181
  %2212 = landingpad { ptr, i32 }
          cleanup
  %2213 = extractvalue { ptr, i32 } %2212, 0
  store ptr %2213, ptr %4, align 8
  %2214 = extractvalue { ptr, i32 } %2212, 1
  store i32 %2214, ptr %5, align 4
  br label %2219

2215:                                             ; preds = %2190, %2188, %2185
  %2216 = landingpad { ptr, i32 }
          cleanup
  %2217 = extractvalue { ptr, i32 } %2216, 0
  store ptr %2217, ptr %4, align 8
  %2218 = extractvalue { ptr, i32 } %2216, 1
  store i32 %2218, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #9
  br label %2219

2219:                                             ; preds = %2215, %2211
  invoke void @__cxa_end_catch()
          to label %2220 unwind label %2943

2220:                                             ; preds = %2219
  br label %2931

2221:                                             ; preds = %2201, %2198, %2196
  %2222 = landingpad { ptr, i32 }
          catch ptr null
  %2223 = extractvalue { ptr, i32 } %2222, 0
  store ptr %2223, ptr %4, align 8
  %2224 = extractvalue { ptr, i32 } %2222, 1
  store i32 %2224, ptr %5, align 4
  br label %2229

2225:                                             ; preds = %2208, %2206, %2203
  %2226 = landingpad { ptr, i32 }
          catch ptr null
  %2227 = extractvalue { ptr, i32 } %2226, 0
  store ptr %2227, ptr %4, align 8
  %2228 = extractvalue { ptr, i32 } %2226, 1
  store i32 %2228, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #9
  br label %2229

2229:                                             ; preds = %2225, %2221
  %2230 = load ptr, ptr %4, align 8
  %2231 = call ptr @__cxa_begin_catch(ptr %2230) #9
  %2232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2233 unwind label %2259

2233:                                             ; preds = %2229
  %2234 = load ptr, ptr %2232, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %181) #9
  %2235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2236 unwind label %2263

2236:                                             ; preds = %2233
  %2237 = load ptr, ptr %2235, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %181, ptr noundef nonnull align 8 dereferenceable(30) %2237, i32 noundef 1341)
          to label %2238 unwind label %2263

2238:                                             ; preds = %2236
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2234, ptr noundef nonnull align 8 dereferenceable(30) %181, ptr noundef @.str.316)
          to label %2239 unwind label %2263

2239:                                             ; preds = %2238
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #9
  invoke void @__cxa_end_catch()
          to label %2240 unwind label %1529

2240:                                             ; preds = %2239
  br label %2241

2241:                                             ; preds = %2258, %2240
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

2243:                                             ; preds = %2242
  br label %2244

2244:                                             ; preds = %2243
  %2245 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.317)
          to label %2246 unwind label %2269

2246:                                             ; preds = %2244
  %2247 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2245)
          to label %2248 unwind label %2269

2248:                                             ; preds = %2246
  br i1 %2247, label %2337, label %2249

2249:                                             ; preds = %2248
  %2250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2251 unwind label %2269

2251:                                             ; preds = %2249
  %2252 = load ptr, ptr %2250, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #9
  %2253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2254 unwind label %2273

2254:                                             ; preds = %2251
  %2255 = load ptr, ptr %2253, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %182, ptr noundef nonnull align 8 dereferenceable(30) %2255, i32 noundef 1342)
          to label %2256 unwind label %2273

2256:                                             ; preds = %2254
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2252, ptr noundef nonnull align 8 dereferenceable(30) %182, ptr noundef @.str.318)
          to label %2257 unwind label %2273

2257:                                             ; preds = %2256
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #9
  br label %2337

2258:                                             ; preds = %2209, %2200
  br label %2241

2259:                                             ; preds = %2229
  %2260 = landingpad { ptr, i32 }
          cleanup
  %2261 = extractvalue { ptr, i32 } %2260, 0
  store ptr %2261, ptr %4, align 8
  %2262 = extractvalue { ptr, i32 } %2260, 1
  store i32 %2262, ptr %5, align 4
  br label %2267

2263:                                             ; preds = %2238, %2236, %2233
  %2264 = landingpad { ptr, i32 }
          cleanup
  %2265 = extractvalue { ptr, i32 } %2264, 0
  store ptr %2265, ptr %4, align 8
  %2266 = extractvalue { ptr, i32 } %2264, 1
  store i32 %2266, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #9
  br label %2267

2267:                                             ; preds = %2263, %2259
  invoke void @__cxa_end_catch()
          to label %2268 unwind label %2943

2268:                                             ; preds = %2267
  br label %2931

2269:                                             ; preds = %2249, %2246, %2244
  %2270 = landingpad { ptr, i32 }
          catch ptr null
  %2271 = extractvalue { ptr, i32 } %2270, 0
  store ptr %2271, ptr %4, align 8
  %2272 = extractvalue { ptr, i32 } %2270, 1
  store i32 %2272, ptr %5, align 4
  br label %2277

2273:                                             ; preds = %2256, %2254, %2251
  %2274 = landingpad { ptr, i32 }
          catch ptr null
  %2275 = extractvalue { ptr, i32 } %2274, 0
  store ptr %2275, ptr %4, align 8
  %2276 = extractvalue { ptr, i32 } %2274, 1
  store i32 %2276, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #9
  br label %2277

2277:                                             ; preds = %2273, %2269
  %2278 = load ptr, ptr %4, align 8
  %2279 = call ptr @__cxa_begin_catch(ptr %2278) #9
  %2280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2281 unwind label %2338

2281:                                             ; preds = %2277
  %2282 = load ptr, ptr %2280, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #9
  %2283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2284 unwind label %2342

2284:                                             ; preds = %2281
  %2285 = load ptr, ptr %2283, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %183, ptr noundef nonnull align 8 dereferenceable(30) %2285, i32 noundef 1342)
          to label %2286 unwind label %2342

2286:                                             ; preds = %2284
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2282, ptr noundef nonnull align 8 dereferenceable(30) %183, ptr noundef @.str.319)
          to label %2287 unwind label %2342

2287:                                             ; preds = %2286
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #9
  invoke void @__cxa_end_catch()
          to label %2288 unwind label %1529

2288:                                             ; preds = %2287
  br label %2289

2289:                                             ; preds = %2337, %2288
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 16, ptr %184) #9
  %2292 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %2293 unwind label %2348

2293:                                             ; preds = %2291
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %2292)
          to label %2294 unwind label %2352

2294:                                             ; preds = %2293
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef %2292)
          to label %2295 unwind label %2348

2295:                                             ; preds = %2294
  %2296 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %184) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #9
  %2297 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %2298 = load ptr, ptr %2297, align 8, !tbaa !9
  %2299 = getelementptr inbounds ptr, ptr %2298, i64 6
  %2300 = load ptr, ptr %2299, align 8
  invoke void %2300(ptr noundef nonnull align 8 dereferenceable(136) %2297)
          to label %2301 unwind label %1529

2301:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 16, ptr %185) #9
  %2302 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %2303 unwind label %2357

2303:                                             ; preds = %2301
  %2304 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %2305 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %2306 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %2302, ptr noundef %2304, ptr noundef %2305, ptr noundef %2306)
          to label %2307 unwind label %2361

2307:                                             ; preds = %2303
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %185, ptr noundef %2302)
          to label %2308 unwind label %2357

2308:                                             ; preds = %2307
  %2309 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %185) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %185) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %187) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %189) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %189, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef @.str.271)
          to label %2310 unwind label %2366

2310:                                             ; preds = %2308
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef @.str.272)
          to label %2311 unwind label %2370

2311:                                             ; preds = %2310
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %187, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.281)
          to label %2312 unwind label %2374

2312:                                             ; preds = %2311
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef @.str)
          to label %2313 unwind label %2378

2313:                                             ; preds = %2312
  %2314 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %191) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %193) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef @.str.320)
          to label %2315 unwind label %2385

2315:                                             ; preds = %2313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %191, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str)
          to label %2316 unwind label %2389

2316:                                             ; preds = %2315
  %2317 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #9
  br label %2318

2318:                                             ; preds = %2316
  %2319 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %195) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %196, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %2320 unwind label %2394

2320:                                             ; preds = %2318
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %195, ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2321 unwind label %2398

2321:                                             ; preds = %2320
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %194, ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %2322 unwind label %2402

2322:                                             ; preds = %2321
  %2323 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2319, ptr noundef %194)
          to label %2324 unwind label %2406

2324:                                             ; preds = %2322
  %2325 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2323)
          to label %2326 unwind label %2406

2326:                                             ; preds = %2324
  %2327 = xor i1 %2325, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  br i1 %2327, label %2328, label %2456

2328:                                             ; preds = %2326
  %2329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2330 unwind label %2413

2330:                                             ; preds = %2328
  %2331 = load ptr, ptr %2329, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %197) #9
  %2332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2333 unwind label %2417

2333:                                             ; preds = %2330
  %2334 = load ptr, ptr %2332, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %197, ptr noundef nonnull align 8 dereferenceable(30) %2334, i32 noundef 1362)
          to label %2335 unwind label %2417

2335:                                             ; preds = %2333
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2331, ptr noundef nonnull align 8 dereferenceable(30) %197, ptr noundef @.str.192)
          to label %2336 unwind label %2417

2336:                                             ; preds = %2335
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #9
  br label %2456

2337:                                             ; preds = %2257, %2248
  br label %2289

2338:                                             ; preds = %2277
  %2339 = landingpad { ptr, i32 }
          cleanup
  %2340 = extractvalue { ptr, i32 } %2339, 0
  store ptr %2340, ptr %4, align 8
  %2341 = extractvalue { ptr, i32 } %2339, 1
  store i32 %2341, ptr %5, align 4
  br label %2346

2342:                                             ; preds = %2286, %2284, %2281
  %2343 = landingpad { ptr, i32 }
          cleanup
  %2344 = extractvalue { ptr, i32 } %2343, 0
  store ptr %2344, ptr %4, align 8
  %2345 = extractvalue { ptr, i32 } %2343, 1
  store i32 %2345, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #9
  br label %2346

2346:                                             ; preds = %2342, %2338
  invoke void @__cxa_end_catch()
          to label %2347 unwind label %2943

2347:                                             ; preds = %2346
  br label %2931

2348:                                             ; preds = %2294, %2291
  %2349 = landingpad { ptr, i32 }
          cleanup
  %2350 = extractvalue { ptr, i32 } %2349, 0
  store ptr %2350, ptr %4, align 8
  %2351 = extractvalue { ptr, i32 } %2349, 1
  store i32 %2351, ptr %5, align 4
  br label %2356

2352:                                             ; preds = %2293
  %2353 = landingpad { ptr, i32 }
          cleanup
  %2354 = extractvalue { ptr, i32 } %2353, 0
  store ptr %2354, ptr %4, align 8
  %2355 = extractvalue { ptr, i32 } %2353, 1
  store i32 %2355, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %2292, i64 noundef 144) #11
  br label %2356

2356:                                             ; preds = %2352, %2348
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #9
  br label %2931

2357:                                             ; preds = %2307, %2301
  %2358 = landingpad { ptr, i32 }
          cleanup
  %2359 = extractvalue { ptr, i32 } %2358, 0
  store ptr %2359, ptr %4, align 8
  %2360 = extractvalue { ptr, i32 } %2358, 1
  store i32 %2360, ptr %5, align 4
  br label %2365

2361:                                             ; preds = %2303
  %2362 = landingpad { ptr, i32 }
          cleanup
  %2363 = extractvalue { ptr, i32 } %2362, 0
  store ptr %2363, ptr %4, align 8
  %2364 = extractvalue { ptr, i32 } %2362, 1
  store i32 %2364, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %2302, i64 noundef 96) #11
  br label %2365

2365:                                             ; preds = %2361, %2357
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #9
  br label %2931

2366:                                             ; preds = %2308
  %2367 = landingpad { ptr, i32 }
          cleanup
  %2368 = extractvalue { ptr, i32 } %2367, 0
  store ptr %2368, ptr %4, align 8
  %2369 = extractvalue { ptr, i32 } %2367, 1
  store i32 %2369, ptr %5, align 4
  br label %2384

2370:                                             ; preds = %2310
  %2371 = landingpad { ptr, i32 }
          cleanup
  %2372 = extractvalue { ptr, i32 } %2371, 0
  store ptr %2372, ptr %4, align 8
  %2373 = extractvalue { ptr, i32 } %2371, 1
  store i32 %2373, ptr %5, align 4
  br label %2383

2374:                                             ; preds = %2311
  %2375 = landingpad { ptr, i32 }
          cleanup
  %2376 = extractvalue { ptr, i32 } %2375, 0
  store ptr %2376, ptr %4, align 8
  %2377 = extractvalue { ptr, i32 } %2375, 1
  store i32 %2377, ptr %5, align 4
  br label %2382

2378:                                             ; preds = %2312
  %2379 = landingpad { ptr, i32 }
          cleanup
  %2380 = extractvalue { ptr, i32 } %2379, 0
  store ptr %2380, ptr %4, align 8
  %2381 = extractvalue { ptr, i32 } %2379, 1
  store i32 %2381, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  br label %2382

2382:                                             ; preds = %2378, %2374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #9
  br label %2383

2383:                                             ; preds = %2382, %2370
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  br label %2384

2384:                                             ; preds = %2383, %2366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #9
  br label %2931

2385:                                             ; preds = %2313
  %2386 = landingpad { ptr, i32 }
          cleanup
  %2387 = extractvalue { ptr, i32 } %2386, 0
  store ptr %2387, ptr %4, align 8
  %2388 = extractvalue { ptr, i32 } %2386, 1
  store i32 %2388, ptr %5, align 4
  br label %2393

2389:                                             ; preds = %2315
  %2390 = landingpad { ptr, i32 }
          cleanup
  %2391 = extractvalue { ptr, i32 } %2390, 0
  store ptr %2391, ptr %4, align 8
  %2392 = extractvalue { ptr, i32 } %2390, 1
  store i32 %2392, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %2393

2393:                                             ; preds = %2389, %2385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #9
  br label %2931

2394:                                             ; preds = %2318
  %2395 = landingpad { ptr, i32 }
          catch ptr null
  %2396 = extractvalue { ptr, i32 } %2395, 0
  store ptr %2396, ptr %4, align 8
  %2397 = extractvalue { ptr, i32 } %2395, 1
  store i32 %2397, ptr %5, align 4
  br label %2412

2398:                                             ; preds = %2320
  %2399 = landingpad { ptr, i32 }
          catch ptr null
  %2400 = extractvalue { ptr, i32 } %2399, 0
  store ptr %2400, ptr %4, align 8
  %2401 = extractvalue { ptr, i32 } %2399, 1
  store i32 %2401, ptr %5, align 4
  br label %2411

2402:                                             ; preds = %2321
  %2403 = landingpad { ptr, i32 }
          catch ptr null
  %2404 = extractvalue { ptr, i32 } %2403, 0
  store ptr %2404, ptr %4, align 8
  %2405 = extractvalue { ptr, i32 } %2403, 1
  store i32 %2405, ptr %5, align 4
  br label %2410

2406:                                             ; preds = %2324, %2322
  %2407 = landingpad { ptr, i32 }
          catch ptr null
  %2408 = extractvalue { ptr, i32 } %2407, 0
  store ptr %2408, ptr %4, align 8
  %2409 = extractvalue { ptr, i32 } %2407, 1
  store i32 %2409, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #9
  br label %2410

2410:                                             ; preds = %2406, %2402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  br label %2411

2411:                                             ; preds = %2410, %2398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #9
  br label %2412

2412:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  br label %2421

2413:                                             ; preds = %2328
  %2414 = landingpad { ptr, i32 }
          catch ptr null
  %2415 = extractvalue { ptr, i32 } %2414, 0
  store ptr %2415, ptr %4, align 8
  %2416 = extractvalue { ptr, i32 } %2414, 1
  store i32 %2416, ptr %5, align 4
  br label %2421

2417:                                             ; preds = %2335, %2333, %2330
  %2418 = landingpad { ptr, i32 }
          catch ptr null
  %2419 = extractvalue { ptr, i32 } %2418, 0
  store ptr %2419, ptr %4, align 8
  %2420 = extractvalue { ptr, i32 } %2418, 1
  store i32 %2420, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #9
  br label %2421

2421:                                             ; preds = %2417, %2413, %2412
  %2422 = load ptr, ptr %4, align 8
  %2423 = call ptr @__cxa_begin_catch(ptr %2422) #9
  %2424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2425 unwind label %2457

2425:                                             ; preds = %2421
  %2426 = load ptr, ptr %2424, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #9
  %2427 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2428 unwind label %2461

2428:                                             ; preds = %2425
  %2429 = load ptr, ptr %2427, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef nonnull align 8 dereferenceable(30) %2429, i32 noundef 1362)
          to label %2430 unwind label %2461

2430:                                             ; preds = %2428
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2426, ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef @.str.193)
          to label %2431 unwind label %2461

2431:                                             ; preds = %2430
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #9
  invoke void @__cxa_end_catch()
          to label %2432 unwind label %1529

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2456, %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  call void @llvm.lifetime.start.p0(i64 16, ptr %199) #9
  %2436 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %2437 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %2438 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %2439 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2438)
          to label %2440 unwind label %2467

2440:                                             ; preds = %2435
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %199, ptr noundef nonnull align 8 dereferenceable(136) %2436, ptr noundef %2437, ptr noundef %200, ptr noundef nonnull align 8 dereferenceable(24) %2439, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2441 unwind label %2467

2441:                                             ; preds = %2440
  %2442 = 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) %199) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %199) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #9
  br label %2443

2443:                                             ; preds = %2441
  %2444 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr null) #9
  %2445 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2444)
          to label %2446 unwind label %2471

2446:                                             ; preds = %2443
  br i1 %2445, label %2539, label %2447

2447:                                             ; preds = %2446
  %2448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2449 unwind label %2471

2449:                                             ; preds = %2447
  %2450 = load ptr, ptr %2448, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #9
  %2451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2452 unwind label %2475

2452:                                             ; preds = %2449
  %2453 = load ptr, ptr %2451, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %201, ptr noundef nonnull align 8 dereferenceable(30) %2453, i32 noundef 1364)
          to label %2454 unwind label %2475

2454:                                             ; preds = %2452
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2450, ptr noundef nonnull align 8 dereferenceable(30) %201, ptr noundef @.str.287)
          to label %2455 unwind label %2475

2455:                                             ; preds = %2454
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  br label %2539

2456:                                             ; preds = %2336, %2326
  br label %2433

2457:                                             ; preds = %2421
  %2458 = landingpad { ptr, i32 }
          cleanup
  %2459 = extractvalue { ptr, i32 } %2458, 0
  store ptr %2459, ptr %4, align 8
  %2460 = extractvalue { ptr, i32 } %2458, 1
  store i32 %2460, ptr %5, align 4
  br label %2465

2461:                                             ; preds = %2430, %2428, %2425
  %2462 = landingpad { ptr, i32 }
          cleanup
  %2463 = extractvalue { ptr, i32 } %2462, 0
  store ptr %2463, ptr %4, align 8
  %2464 = extractvalue { ptr, i32 } %2462, 1
  store i32 %2464, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #9
  br label %2465

2465:                                             ; preds = %2461, %2457
  invoke void @__cxa_end_catch()
          to label %2466 unwind label %2943

2466:                                             ; preds = %2465
  br label %2931

2467:                                             ; preds = %2440, %2435
  %2468 = landingpad { ptr, i32 }
          cleanup
  %2469 = extractvalue { ptr, i32 } %2468, 0
  store ptr %2469, ptr %4, align 8
  %2470 = extractvalue { ptr, i32 } %2468, 1
  store i32 %2470, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #9
  br label %2931

2471:                                             ; preds = %2447, %2443
  %2472 = landingpad { ptr, i32 }
          catch ptr null
  %2473 = extractvalue { ptr, i32 } %2472, 0
  store ptr %2473, ptr %4, align 8
  %2474 = extractvalue { ptr, i32 } %2472, 1
  store i32 %2474, ptr %5, align 4
  br label %2479

2475:                                             ; preds = %2454, %2452, %2449
  %2476 = landingpad { ptr, i32 }
          catch ptr null
  %2477 = extractvalue { ptr, i32 } %2476, 0
  store ptr %2477, ptr %4, align 8
  %2478 = extractvalue { ptr, i32 } %2476, 1
  store i32 %2478, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  br label %2479

2479:                                             ; preds = %2475, %2471
  %2480 = load ptr, ptr %4, align 8
  %2481 = call ptr @__cxa_begin_catch(ptr %2480) #9
  %2482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2483 unwind label %2540

2483:                                             ; preds = %2479
  %2484 = load ptr, ptr %2482, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #9
  %2485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2486 unwind label %2544

2486:                                             ; preds = %2483
  %2487 = load ptr, ptr %2485, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %202, ptr noundef nonnull align 8 dereferenceable(30) %2487, i32 noundef 1364)
          to label %2488 unwind label %2544

2488:                                             ; preds = %2486
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2484, ptr noundef nonnull align 8 dereferenceable(30) %202, ptr noundef @.str.288)
          to label %2489 unwind label %2544

2489:                                             ; preds = %2488
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #9
  invoke void @__cxa_end_catch()
          to label %2490 unwind label %1529

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2539, %2490
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

2493:                                             ; preds = %2492
  call void @llvm.lifetime.start.p0(i64 16, ptr %203) #9
  %2494 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %2495 unwind label %2550

2495:                                             ; preds = %2493
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %2494)
          to label %2496 unwind label %2554

2496:                                             ; preds = %2495
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef %2494)
          to label %2497 unwind label %2550

2497:                                             ; preds = %2496
  %2498 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %203) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #9
  %2499 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %2500 = load ptr, ptr %2499, align 8, !tbaa !9
  %2501 = getelementptr inbounds ptr, ptr %2500, i64 6
  %2502 = load ptr, ptr %2501, align 8
  invoke void %2502(ptr noundef nonnull align 8 dereferenceable(136) %2499)
          to label %2503 unwind label %1529

2503:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 16, ptr %204) #9
  %2504 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %2505 unwind label %2559

2505:                                             ; preds = %2503
  %2506 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %2507 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %2508 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %2504, ptr noundef %2506, ptr noundef %2507, ptr noundef %2508)
          to label %2509 unwind label %2563

2509:                                             ; preds = %2505
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef %2504)
          to label %2510 unwind label %2559

2510:                                             ; preds = %2509
  %2511 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %204) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %204) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %205) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %208) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %209) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef @.str.271)
          to label %2512 unwind label %2568

2512:                                             ; preds = %2510
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef @.str.272)
          to label %2513 unwind label %2572

2513:                                             ; preds = %2512
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %206, ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @.str.273)
          to label %2514 unwind label %2576

2514:                                             ; preds = %2513
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %205, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str)
          to label %2515 unwind label %2580

2515:                                             ; preds = %2514
  %2516 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %211) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %211, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef @.str.320)
          to label %2517 unwind label %2587

2517:                                             ; preds = %2515
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef @.str)
          to label %2518 unwind label %2591

2518:                                             ; preds = %2517
  %2519 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  br label %2520

2520:                                             ; preds = %2518
  %2521 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %214) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %215) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %215, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %2522 unwind label %2596

2522:                                             ; preds = %2520
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %214, ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2523 unwind label %2600

2523:                                             ; preds = %2522
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %213, ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %2524 unwind label %2604

2524:                                             ; preds = %2523
  %2525 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2521, ptr noundef %213)
          to label %2526 unwind label %2608

2526:                                             ; preds = %2524
  %2527 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2525)
          to label %2528 unwind label %2608

2528:                                             ; preds = %2526
  %2529 = xor i1 %2527, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #9
  br i1 %2529, label %2530, label %2660

2530:                                             ; preds = %2528
  %2531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2532 unwind label %2615

2532:                                             ; preds = %2530
  %2533 = load ptr, ptr %2531, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %216) #9
  %2534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2535 unwind label %2619

2535:                                             ; preds = %2532
  %2536 = load ptr, ptr %2534, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %216, ptr noundef nonnull align 8 dereferenceable(30) %2536, i32 noundef 1383)
          to label %2537 unwind label %2619

2537:                                             ; preds = %2535
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2533, ptr noundef nonnull align 8 dereferenceable(30) %216, ptr noundef @.str.192)
          to label %2538 unwind label %2619

2538:                                             ; preds = %2537
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #9
  br label %2660

2539:                                             ; preds = %2455, %2446
  br label %2491

2540:                                             ; preds = %2479
  %2541 = landingpad { ptr, i32 }
          cleanup
  %2542 = extractvalue { ptr, i32 } %2541, 0
  store ptr %2542, ptr %4, align 8
  %2543 = extractvalue { ptr, i32 } %2541, 1
  store i32 %2543, ptr %5, align 4
  br label %2548

2544:                                             ; preds = %2488, %2486, %2483
  %2545 = landingpad { ptr, i32 }
          cleanup
  %2546 = extractvalue { ptr, i32 } %2545, 0
  store ptr %2546, ptr %4, align 8
  %2547 = extractvalue { ptr, i32 } %2545, 1
  store i32 %2547, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #9
  br label %2548

2548:                                             ; preds = %2544, %2540
  invoke void @__cxa_end_catch()
          to label %2549 unwind label %2943

2549:                                             ; preds = %2548
  br label %2931

2550:                                             ; preds = %2496, %2493
  %2551 = landingpad { ptr, i32 }
          cleanup
  %2552 = extractvalue { ptr, i32 } %2551, 0
  store ptr %2552, ptr %4, align 8
  %2553 = extractvalue { ptr, i32 } %2551, 1
  store i32 %2553, ptr %5, align 4
  br label %2558

2554:                                             ; preds = %2495
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %4, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %2494, i64 noundef 144) #11
  br label %2558

2558:                                             ; preds = %2554, %2550
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #9
  br label %2931

2559:                                             ; preds = %2509, %2503
  %2560 = landingpad { ptr, i32 }
          cleanup
  %2561 = extractvalue { ptr, i32 } %2560, 0
  store ptr %2561, ptr %4, align 8
  %2562 = extractvalue { ptr, i32 } %2560, 1
  store i32 %2562, ptr %5, align 4
  br label %2567

2563:                                             ; preds = %2505
  %2564 = landingpad { ptr, i32 }
          cleanup
  %2565 = extractvalue { ptr, i32 } %2564, 0
  store ptr %2565, ptr %4, align 8
  %2566 = extractvalue { ptr, i32 } %2564, 1
  store i32 %2566, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %2504, i64 noundef 96) #11
  br label %2567

2567:                                             ; preds = %2563, %2559
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #9
  br label %2931

2568:                                             ; preds = %2510
  %2569 = landingpad { ptr, i32 }
          cleanup
  %2570 = extractvalue { ptr, i32 } %2569, 0
  store ptr %2570, ptr %4, align 8
  %2571 = extractvalue { ptr, i32 } %2569, 1
  store i32 %2571, ptr %5, align 4
  br label %2586

2572:                                             ; preds = %2512
  %2573 = landingpad { ptr, i32 }
          cleanup
  %2574 = extractvalue { ptr, i32 } %2573, 0
  store ptr %2574, ptr %4, align 8
  %2575 = extractvalue { ptr, i32 } %2573, 1
  store i32 %2575, ptr %5, align 4
  br label %2585

2576:                                             ; preds = %2513
  %2577 = landingpad { ptr, i32 }
          cleanup
  %2578 = extractvalue { ptr, i32 } %2577, 0
  store ptr %2578, ptr %4, align 8
  %2579 = extractvalue { ptr, i32 } %2577, 1
  store i32 %2579, ptr %5, align 4
  br label %2584

2580:                                             ; preds = %2514
  %2581 = landingpad { ptr, i32 }
          cleanup
  %2582 = extractvalue { ptr, i32 } %2581, 0
  store ptr %2582, ptr %4, align 8
  %2583 = extractvalue { ptr, i32 } %2581, 1
  store i32 %2583, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  br label %2584

2584:                                             ; preds = %2580, %2576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  br label %2585

2585:                                             ; preds = %2584, %2572
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  br label %2586

2586:                                             ; preds = %2585, %2568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #9
  br label %2931

2587:                                             ; preds = %2515
  %2588 = landingpad { ptr, i32 }
          cleanup
  %2589 = extractvalue { ptr, i32 } %2588, 0
  store ptr %2589, ptr %4, align 8
  %2590 = extractvalue { ptr, i32 } %2588, 1
  store i32 %2590, ptr %5, align 4
  br label %2595

2591:                                             ; preds = %2517
  %2592 = landingpad { ptr, i32 }
          cleanup
  %2593 = extractvalue { ptr, i32 } %2592, 0
  store ptr %2593, ptr %4, align 8
  %2594 = extractvalue { ptr, i32 } %2592, 1
  store i32 %2594, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #9
  br label %2595

2595:                                             ; preds = %2591, %2587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  br label %2931

2596:                                             ; preds = %2520
  %2597 = landingpad { ptr, i32 }
          catch ptr null
  %2598 = extractvalue { ptr, i32 } %2597, 0
  store ptr %2598, ptr %4, align 8
  %2599 = extractvalue { ptr, i32 } %2597, 1
  store i32 %2599, ptr %5, align 4
  br label %2614

2600:                                             ; preds = %2522
  %2601 = landingpad { ptr, i32 }
          catch ptr null
  %2602 = extractvalue { ptr, i32 } %2601, 0
  store ptr %2602, ptr %4, align 8
  %2603 = extractvalue { ptr, i32 } %2601, 1
  store i32 %2603, ptr %5, align 4
  br label %2613

2604:                                             ; preds = %2523
  %2605 = landingpad { ptr, i32 }
          catch ptr null
  %2606 = extractvalue { ptr, i32 } %2605, 0
  store ptr %2606, ptr %4, align 8
  %2607 = extractvalue { ptr, i32 } %2605, 1
  store i32 %2607, ptr %5, align 4
  br label %2612

2608:                                             ; preds = %2526, %2524
  %2609 = landingpad { ptr, i32 }
          catch ptr null
  %2610 = extractvalue { ptr, i32 } %2609, 0
  store ptr %2610, ptr %4, align 8
  %2611 = extractvalue { ptr, i32 } %2609, 1
  store i32 %2611, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  br label %2612

2612:                                             ; preds = %2608, %2604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #9
  br label %2613

2613:                                             ; preds = %2612, %2600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #9
  br label %2614

2614:                                             ; preds = %2613, %2596
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #9
  br label %2623

2615:                                             ; preds = %2530
  %2616 = landingpad { ptr, i32 }
          catch ptr null
  %2617 = extractvalue { ptr, i32 } %2616, 0
  store ptr %2617, ptr %4, align 8
  %2618 = extractvalue { ptr, i32 } %2616, 1
  store i32 %2618, ptr %5, align 4
  br label %2623

2619:                                             ; preds = %2537, %2535, %2532
  %2620 = landingpad { ptr, i32 }
          catch ptr null
  %2621 = extractvalue { ptr, i32 } %2620, 0
  store ptr %2621, ptr %4, align 8
  %2622 = extractvalue { ptr, i32 } %2620, 1
  store i32 %2622, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #9
  br label %2623

2623:                                             ; preds = %2619, %2615, %2614
  %2624 = load ptr, ptr %4, align 8
  %2625 = call ptr @__cxa_begin_catch(ptr %2624) #9
  %2626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2627 unwind label %2661

2627:                                             ; preds = %2623
  %2628 = load ptr, ptr %2626, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #9
  %2629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2630 unwind label %2665

2630:                                             ; preds = %2627
  %2631 = load ptr, ptr %2629, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %217, ptr noundef nonnull align 8 dereferenceable(30) %2631, i32 noundef 1383)
          to label %2632 unwind label %2665

2632:                                             ; preds = %2630
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2628, ptr noundef nonnull align 8 dereferenceable(30) %217, ptr noundef @.str.193)
          to label %2633 unwind label %2665

2633:                                             ; preds = %2632
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #9
  invoke void @__cxa_end_catch()
          to label %2634 unwind label %1529

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2660, %2634
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636
  call void @llvm.lifetime.start.p0(i64 16, ptr %218) #9
  %2638 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %2639 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %2640 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %2641 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %2640)
          to label %2642 unwind label %2671

2642:                                             ; preds = %2637
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.76") align 8 %218, ptr noundef nonnull align 8 dereferenceable(136) %2638, ptr noundef %2639, ptr noundef %219, ptr noundef nonnull align 8 dereferenceable(24) %2641, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2643 unwind label %2671

2643:                                             ; preds = %2642
  %2644 = 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) %218) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %219) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #9
  br label %2645

2645:                                             ; preds = %2643
  %2646 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %2647 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2646) #9
  %2648 = icmp eq i64 %2647, 2
  %2649 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2648)
          to label %2650 unwind label %2675

2650:                                             ; preds = %2645
  br i1 %2649, label %2733, label %2651

2651:                                             ; preds = %2650
  %2652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2653 unwind label %2675

2653:                                             ; preds = %2651
  %2654 = load ptr, ptr %2652, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %220) #9
  %2655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2656 unwind label %2679

2656:                                             ; preds = %2653
  %2657 = load ptr, ptr %2655, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %220, ptr noundef nonnull align 8 dereferenceable(30) %2657, i32 noundef 1385)
          to label %2658 unwind label %2679

2658:                                             ; preds = %2656
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2654, ptr noundef nonnull align 8 dereferenceable(30) %220, ptr noundef @.str.321)
          to label %2659 unwind label %2679

2659:                                             ; preds = %2658
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #9
  br label %2733

2660:                                             ; preds = %2538, %2528
  br label %2635

2661:                                             ; preds = %2623
  %2662 = landingpad { ptr, i32 }
          cleanup
  %2663 = extractvalue { ptr, i32 } %2662, 0
  store ptr %2663, ptr %4, align 8
  %2664 = extractvalue { ptr, i32 } %2662, 1
  store i32 %2664, ptr %5, align 4
  br label %2669

2665:                                             ; preds = %2632, %2630, %2627
  %2666 = landingpad { ptr, i32 }
          cleanup
  %2667 = extractvalue { ptr, i32 } %2666, 0
  store ptr %2667, ptr %4, align 8
  %2668 = extractvalue { ptr, i32 } %2666, 1
  store i32 %2668, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #9
  br label %2669

2669:                                             ; preds = %2665, %2661
  invoke void @__cxa_end_catch()
          to label %2670 unwind label %2943

2670:                                             ; preds = %2669
  br label %2931

2671:                                             ; preds = %2642, %2637
  %2672 = landingpad { ptr, i32 }
          cleanup
  %2673 = extractvalue { ptr, i32 } %2672, 0
  store ptr %2673, ptr %4, align 8
  %2674 = extractvalue { ptr, i32 } %2672, 1
  store i32 %2674, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %219) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #9
  br label %2931

2675:                                             ; preds = %2651, %2645
  %2676 = landingpad { ptr, i32 }
          catch ptr null
  %2677 = extractvalue { ptr, i32 } %2676, 0
  store ptr %2677, ptr %4, align 8
  %2678 = extractvalue { ptr, i32 } %2676, 1
  store i32 %2678, ptr %5, align 4
  br label %2683

2679:                                             ; preds = %2658, %2656, %2653
  %2680 = landingpad { ptr, i32 }
          catch ptr null
  %2681 = extractvalue { ptr, i32 } %2680, 0
  store ptr %2681, ptr %4, align 8
  %2682 = extractvalue { ptr, i32 } %2680, 1
  store i32 %2682, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #9
  br label %2683

2683:                                             ; preds = %2679, %2675
  %2684 = load ptr, ptr %4, align 8
  %2685 = call ptr @__cxa_begin_catch(ptr %2684) #9
  %2686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2687 unwind label %2734

2687:                                             ; preds = %2683
  %2688 = load ptr, ptr %2686, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #9
  %2689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2690 unwind label %2738

2690:                                             ; preds = %2687
  %2691 = load ptr, ptr %2689, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %221, ptr noundef nonnull align 8 dereferenceable(30) %2691, i32 noundef 1385)
          to label %2692 unwind label %2738

2692:                                             ; preds = %2690
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2688, ptr noundef nonnull align 8 dereferenceable(30) %221, ptr noundef @.str.322)
          to label %2693 unwind label %2738

2693:                                             ; preds = %2692
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #9
  invoke void @__cxa_end_catch()
          to label %2694 unwind label %1529

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2733, %2694
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #9
  %2698 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %2699 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2698, i64 noundef 0) #9
  %2700 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2699) #9
  %2701 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %2700, i32 0, i32 1
  %2702 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2701) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %222, ptr noundef nonnull align 8 dereferenceable(144) %2702)
          to label %2703 unwind label %2744

2703:                                             ; preds = %2697
  %2704 = 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) %222) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %223) #9
  %2705 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %2706 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2705, i64 noundef 0) #9
  %2707 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2706) #9
  %2708 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %2707, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %223, ptr noundef nonnull align 8 dereferenceable(24) %2708, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %2709 unwind label %2748

2709:                                             ; preds = %2703
  %2710 = 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) %223) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #9
  %2711 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %2712 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2711, i64 noundef 1) #9
  %2713 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2712) #9
  %2714 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %2713, i32 0, i32 1
  %2715 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2714) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(144) %2715)
          to label %2716 unwind label %2752

2716:                                             ; preds = %2709
  %2717 = 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) %224) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %225) #9
  %2718 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  %2719 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2718, i64 noundef 1) #9
  %2720 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2719) #9
  %2721 = getelementptr inbounds %"class.HtnPlanner::SolutionType", ptr %2720, i32 0, i32 0
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %225, ptr noundef nonnull align 8 dereferenceable(24) %2721, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %2722 unwind label %2756

2722:                                             ; preds = %2716
  %2723 = 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) %225) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #9
  br label %2724

2724:                                             ; preds = %2722
  %2725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2726 unwind label %2760

2726:                                             ; preds = %2724
  %2727 = load ptr, ptr %2725, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #9
  %2728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2729 unwind label %2764

2729:                                             ; preds = %2726
  %2730 = load ptr, ptr %2728, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %226, ptr noundef nonnull align 8 dereferenceable(30) %2730, i32 noundef 1390)
          to label %2731 unwind label %2764

2731:                                             ; preds = %2729
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA78_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2727, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(78) @.str.323, ptr noundef nonnull align 8 dereferenceable(30) %226)
          to label %2732 unwind label %2764

2732:                                             ; preds = %2731
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #9
  br label %2780

2733:                                             ; preds = %2659, %2650
  br label %2695

2734:                                             ; preds = %2683
  %2735 = landingpad { ptr, i32 }
          cleanup
  %2736 = extractvalue { ptr, i32 } %2735, 0
  store ptr %2736, ptr %4, align 8
  %2737 = extractvalue { ptr, i32 } %2735, 1
  store i32 %2737, ptr %5, align 4
  br label %2742

2738:                                             ; preds = %2692, %2690, %2687
  %2739 = landingpad { ptr, i32 }
          cleanup
  %2740 = extractvalue { ptr, i32 } %2739, 0
  store ptr %2740, ptr %4, align 8
  %2741 = extractvalue { ptr, i32 } %2739, 1
  store i32 %2741, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #9
  br label %2742

2742:                                             ; preds = %2738, %2734
  invoke void @__cxa_end_catch()
          to label %2743 unwind label %2943

2743:                                             ; preds = %2742
  br label %2931

2744:                                             ; preds = %2697
  %2745 = landingpad { ptr, i32 }
          cleanup
  %2746 = extractvalue { ptr, i32 } %2745, 0
  store ptr %2746, ptr %4, align 8
  %2747 = extractvalue { ptr, i32 } %2745, 1
  store i32 %2747, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #9
  br label %2931

2748:                                             ; preds = %2703
  %2749 = landingpad { ptr, i32 }
          cleanup
  %2750 = extractvalue { ptr, i32 } %2749, 0
  store ptr %2750, ptr %4, align 8
  %2751 = extractvalue { ptr, i32 } %2749, 1
  store i32 %2751, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #9
  br label %2931

2752:                                             ; preds = %2709
  %2753 = landingpad { ptr, i32 }
          cleanup
  %2754 = extractvalue { ptr, i32 } %2753, 0
  store ptr %2754, ptr %4, align 8
  %2755 = extractvalue { ptr, i32 } %2753, 1
  store i32 %2755, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #9
  br label %2931

2756:                                             ; preds = %2716
  %2757 = landingpad { ptr, i32 }
          cleanup
  %2758 = extractvalue { ptr, i32 } %2757, 0
  store ptr %2758, ptr %4, align 8
  %2759 = extractvalue { ptr, i32 } %2757, 1
  store i32 %2759, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #9
  br label %2931

2760:                                             ; preds = %2724
  %2761 = landingpad { ptr, i32 }
          catch ptr null
  %2762 = extractvalue { ptr, i32 } %2761, 0
  store ptr %2762, ptr %4, align 8
  %2763 = extractvalue { ptr, i32 } %2761, 1
  store i32 %2763, ptr %5, align 4
  br label %2768

2764:                                             ; preds = %2731, %2729, %2726
  %2765 = landingpad { ptr, i32 }
          catch ptr null
  %2766 = extractvalue { ptr, i32 } %2765, 0
  store ptr %2766, ptr %4, align 8
  %2767 = extractvalue { ptr, i32 } %2765, 1
  store i32 %2767, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #9
  br label %2768

2768:                                             ; preds = %2764, %2760
  %2769 = load ptr, ptr %4, align 8
  %2770 = call ptr @__cxa_begin_catch(ptr %2769) #9
  %2771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2772 unwind label %2792

2772:                                             ; preds = %2768
  %2773 = load ptr, ptr %2771, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #9
  %2774 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2775 unwind label %2796

2775:                                             ; preds = %2772
  %2776 = load ptr, ptr %2774, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %227, ptr noundef nonnull align 8 dereferenceable(30) %2776, i32 noundef 1390)
          to label %2777 unwind label %2796

2777:                                             ; preds = %2775
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2773, ptr noundef nonnull align 8 dereferenceable(30) %227, ptr noundef @.str.324)
          to label %2778 unwind label %2796

2778:                                             ; preds = %2777
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #9
  invoke void @__cxa_end_catch()
          to label %2779 unwind label %1529

2779:                                             ; preds = %2778
  br label %2780

2780:                                             ; preds = %2779, %2732
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  %2784 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2785 unwind label %2802

2785:                                             ; preds = %2783
  %2786 = load ptr, ptr %2784, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %228) #9
  %2787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2788 unwind label %2806

2788:                                             ; preds = %2785
  %2789 = load ptr, ptr %2787, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %228, ptr noundef nonnull align 8 dereferenceable(30) %2789, i32 noundef 1391)
          to label %2790 unwind label %2806

2790:                                             ; preds = %2788
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA353_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %2786, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(353) @.str.325, ptr noundef nonnull align 8 dereferenceable(30) %228)
          to label %2791 unwind label %2806

2791:                                             ; preds = %2790
  call void @llvm.lifetime.end.p0(i64 32, ptr %228) #9
  br label %2822

2792:                                             ; preds = %2768
  %2793 = landingpad { ptr, i32 }
          cleanup
  %2794 = extractvalue { ptr, i32 } %2793, 0
  store ptr %2794, ptr %4, align 8
  %2795 = extractvalue { ptr, i32 } %2793, 1
  store i32 %2795, ptr %5, align 4
  br label %2800

2796:                                             ; preds = %2777, %2775, %2772
  %2797 = landingpad { ptr, i32 }
          cleanup
  %2798 = extractvalue { ptr, i32 } %2797, 0
  store ptr %2798, ptr %4, align 8
  %2799 = extractvalue { ptr, i32 } %2797, 1
  store i32 %2799, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #9
  br label %2800

2800:                                             ; preds = %2796, %2792
  invoke void @__cxa_end_catch()
          to label %2801 unwind label %2943

2801:                                             ; preds = %2800
  br label %2931

2802:                                             ; preds = %2783
  %2803 = landingpad { ptr, i32 }
          catch ptr null
  %2804 = extractvalue { ptr, i32 } %2803, 0
  store ptr %2804, ptr %4, align 8
  %2805 = extractvalue { ptr, i32 } %2803, 1
  store i32 %2805, ptr %5, align 4
  br label %2810

2806:                                             ; preds = %2790, %2788, %2785
  %2807 = landingpad { ptr, i32 }
          catch ptr null
  %2808 = extractvalue { ptr, i32 } %2807, 0
  store ptr %2808, ptr %4, align 8
  %2809 = extractvalue { ptr, i32 } %2807, 1
  store i32 %2809, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %228) #9
  br label %2810

2810:                                             ; preds = %2806, %2802
  %2811 = load ptr, ptr %4, align 8
  %2812 = call ptr @__cxa_begin_catch(ptr %2811) #9
  %2813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2814 unwind label %2839

2814:                                             ; preds = %2810
  %2815 = load ptr, ptr %2813, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #9
  %2816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2817 unwind label %2843

2817:                                             ; preds = %2814
  %2818 = load ptr, ptr %2816, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %229, ptr noundef nonnull align 8 dereferenceable(30) %2818, i32 noundef 1391)
          to label %2819 unwind label %2843

2819:                                             ; preds = %2817
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2815, ptr noundef nonnull align 8 dereferenceable(30) %229, ptr noundef @.str.326)
          to label %2820 unwind label %2843

2820:                                             ; preds = %2819
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #9
  invoke void @__cxa_end_catch()
          to label %2821 unwind label %1529

2821:                                             ; preds = %2820
  br label %2822

2822:                                             ; preds = %2821, %2791
  br label %2823

2823:                                             ; preds = %2822
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  %2826 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.327)
          to label %2827 unwind label %2849

2827:                                             ; preds = %2825
  %2828 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2826)
          to label %2829 unwind label %2849

2829:                                             ; preds = %2827
  br i1 %2828, label %2886, label %2830

2830:                                             ; preds = %2829
  %2831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2832 unwind label %2849

2832:                                             ; preds = %2830
  %2833 = load ptr, ptr %2831, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #9
  %2834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2835 unwind label %2853

2835:                                             ; preds = %2832
  %2836 = load ptr, ptr %2834, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %230, ptr noundef nonnull align 8 dereferenceable(30) %2836, i32 noundef 1392)
          to label %2837 unwind label %2853

2837:                                             ; preds = %2835
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2833, ptr noundef nonnull align 8 dereferenceable(30) %230, ptr noundef @.str.328)
          to label %2838 unwind label %2853

2838:                                             ; preds = %2837
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #9
  br label %2886

2839:                                             ; preds = %2810
  %2840 = landingpad { ptr, i32 }
          cleanup
  %2841 = extractvalue { ptr, i32 } %2840, 0
  store ptr %2841, ptr %4, align 8
  %2842 = extractvalue { ptr, i32 } %2840, 1
  store i32 %2842, ptr %5, align 4
  br label %2847

2843:                                             ; preds = %2819, %2817, %2814
  %2844 = landingpad { ptr, i32 }
          cleanup
  %2845 = extractvalue { ptr, i32 } %2844, 0
  store ptr %2845, ptr %4, align 8
  %2846 = extractvalue { ptr, i32 } %2844, 1
  store i32 %2846, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #9
  br label %2847

2847:                                             ; preds = %2843, %2839
  invoke void @__cxa_end_catch()
          to label %2848 unwind label %2943

2848:                                             ; preds = %2847
  br label %2931

2849:                                             ; preds = %2830, %2827, %2825
  %2850 = landingpad { ptr, i32 }
          catch ptr null
  %2851 = extractvalue { ptr, i32 } %2850, 0
  store ptr %2851, ptr %4, align 8
  %2852 = extractvalue { ptr, i32 } %2850, 1
  store i32 %2852, ptr %5, align 4
  br label %2857

2853:                                             ; preds = %2837, %2835, %2832
  %2854 = landingpad { ptr, i32 }
          catch ptr null
  %2855 = extractvalue { ptr, i32 } %2854, 0
  store ptr %2855, ptr %4, align 8
  %2856 = extractvalue { ptr, i32 } %2854, 1
  store i32 %2856, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #9
  br label %2857

2857:                                             ; preds = %2853, %2849
  %2858 = load ptr, ptr %4, align 8
  %2859 = call ptr @__cxa_begin_catch(ptr %2858) #9
  %2860 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2861 unwind label %2887

2861:                                             ; preds = %2857
  %2862 = load ptr, ptr %2860, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #9
  %2863 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2864 unwind label %2891

2864:                                             ; preds = %2861
  %2865 = load ptr, ptr %2863, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %231, ptr noundef nonnull align 8 dereferenceable(30) %2865, i32 noundef 1392)
          to label %2866 unwind label %2891

2866:                                             ; preds = %2864
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2862, ptr noundef nonnull align 8 dereferenceable(30) %231, ptr noundef @.str.329)
          to label %2867 unwind label %2891

2867:                                             ; preds = %2866
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #9
  invoke void @__cxa_end_catch()
          to label %2868 unwind label %1529

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2886, %2868
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  %2873 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.330)
          to label %2874 unwind label %2897

2874:                                             ; preds = %2872
  %2875 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2873)
          to label %2876 unwind label %2897

2876:                                             ; preds = %2874
  br i1 %2875, label %2920, label %2877

2877:                                             ; preds = %2876
  %2878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2879 unwind label %2897

2879:                                             ; preds = %2877
  %2880 = load ptr, ptr %2878, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %232) #9
  %2881 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2882 unwind label %2901

2882:                                             ; preds = %2879
  %2883 = load ptr, ptr %2881, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %232, ptr noundef nonnull align 8 dereferenceable(30) %2883, i32 noundef 1393)
          to label %2884 unwind label %2901

2884:                                             ; preds = %2882
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2880, ptr noundef nonnull align 8 dereferenceable(30) %232, ptr noundef @.str.331)
          to label %2885 unwind label %2901

2885:                                             ; preds = %2884
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #9
  br label %2920

2886:                                             ; preds = %2838, %2829
  br label %2869

2887:                                             ; preds = %2857
  %2888 = landingpad { ptr, i32 }
          cleanup
  %2889 = extractvalue { ptr, i32 } %2888, 0
  store ptr %2889, ptr %4, align 8
  %2890 = extractvalue { ptr, i32 } %2888, 1
  store i32 %2890, ptr %5, align 4
  br label %2895

2891:                                             ; preds = %2866, %2864, %2861
  %2892 = landingpad { ptr, i32 }
          cleanup
  %2893 = extractvalue { ptr, i32 } %2892, 0
  store ptr %2893, ptr %4, align 8
  %2894 = extractvalue { ptr, i32 } %2892, 1
  store i32 %2894, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #9
  br label %2895

2895:                                             ; preds = %2891, %2887
  invoke void @__cxa_end_catch()
          to label %2896 unwind label %2943

2896:                                             ; preds = %2895
  br label %2931

2897:                                             ; preds = %2877, %2874, %2872
  %2898 = landingpad { ptr, i32 }
          catch ptr null
  %2899 = extractvalue { ptr, i32 } %2898, 0
  store ptr %2899, ptr %4, align 8
  %2900 = extractvalue { ptr, i32 } %2898, 1
  store i32 %2900, ptr %5, align 4
  br label %2905

2901:                                             ; preds = %2884, %2882, %2879
  %2902 = landingpad { ptr, i32 }
          catch ptr null
  %2903 = extractvalue { ptr, i32 } %2902, 0
  store ptr %2903, ptr %4, align 8
  %2904 = extractvalue { ptr, i32 } %2902, 1
  store i32 %2904, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #9
  br label %2905

2905:                                             ; preds = %2901, %2897
  %2906 = load ptr, ptr %4, align 8
  %2907 = call ptr @__cxa_begin_catch(ptr %2906) #9
  %2908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2909 unwind label %2921

2909:                                             ; preds = %2905
  %2910 = load ptr, ptr %2908, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %233) #9
  %2911 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2912 unwind label %2925

2912:                                             ; preds = %2909
  %2913 = load ptr, ptr %2911, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %233, ptr noundef nonnull align 8 dereferenceable(30) %2913, i32 noundef 1393)
          to label %2914 unwind label %2925

2914:                                             ; preds = %2912
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2910, ptr noundef nonnull align 8 dereferenceable(30) %233, ptr noundef @.str.332)
          to label %2915 unwind label %2925

2915:                                             ; preds = %2914
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #9
  invoke void @__cxa_end_catch()
          to label %2916 unwind label %1529

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2920, %2916
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #9
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #9
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #9
  ret void

2920:                                             ; preds = %2885, %2876
  br label %2917

2921:                                             ; preds = %2905
  %2922 = landingpad { ptr, i32 }
          cleanup
  %2923 = extractvalue { ptr, i32 } %2922, 0
  store ptr %2923, ptr %4, align 8
  %2924 = extractvalue { ptr, i32 } %2922, 1
  store i32 %2924, ptr %5, align 4
  br label %2929

2925:                                             ; preds = %2914, %2912, %2909
  %2926 = landingpad { ptr, i32 }
          cleanup
  %2927 = extractvalue { ptr, i32 } %2926, 0
  store ptr %2927, ptr %4, align 8
  %2928 = extractvalue { ptr, i32 } %2926, 1
  store i32 %2928, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #9
  br label %2929

2929:                                             ; preds = %2925, %2921
  invoke void @__cxa_end_catch()
          to label %2930 unwind label %2943

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930, %2896, %2848, %2801, %2756, %2752, %2748, %2744, %2743, %2671, %2670, %2595, %2586, %2567, %2558, %2549, %2467, %2466, %2393, %2384, %2365, %2356, %2347, %2268, %2220, %2172, %2124, %2077, %2032, %2028, %2024, %2020, %2016, %2012, %2011, %1926, %1925, %1850, %1841, %1822, %1813, %1804, %1725, %1677, %1629, %1581, %1534, %1529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #9
  br label %2932

2932:                                             ; preds = %2931, %1485
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #9
  br label %2933

2933:                                             ; preds = %2932, %1481
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #9
  br label %2934

2934:                                             ; preds = %2933, %1477, %1473, %1469, %1465, %1464, %1381, %1380, %1305, %1296, %1277, %1268, %1259, %1177, %1176, %1103, %1094, %1080, %1071, %1062, %985, %940, %936, %935, %876, %875, %800, %791, %772, %763, %754, %676, %631, %627, %626, %567, %566, %491, %482, %463, %451, %450, %441, %397
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #9
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #9
  br label %2935

2935:                                             ; preds = %2934, %330, %326
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  br label %2936

2936:                                             ; preds = %2935, %322, %318
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #9
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  br label %2937

2937:                                             ; preds = %2936, %314
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #9
  br label %2938

2938:                                             ; preds = %2937
  %2939 = load ptr, ptr %4, align 8
  %2940 = load i32, ptr %5, align 4
  %2941 = insertvalue { ptr, i32 } poison, ptr %2939, 0
  %2942 = insertvalue { ptr, i32 } %2941, i32 %2940, 1
  resume { ptr, i32 } %2942

2943:                                             ; preds = %2929, %2895, %2847, %2800, %2742, %2669, %2548, %2465, %2346, %2267, %2219, %2171, %2123, %2076, %2010, %1924, %1803, %1724, %1676, %1628, %1580, %1533, %1463, %1379, %1258, %1175, %1061, %984, %934, %874, %753, %675, %625, %565
  %2944 = landingpad { ptr, i32 }
          catch ptr null
  %2945 = extractvalue { ptr, i32 } %2944, 0
  call void @__clang_call_terminate(ptr %2945) #12
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA78_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(78), 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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin nounwind }
attributes #12 = { 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" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"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.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.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>

@.str = external hidden unnamed_addr constant [1 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.251 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [403 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [320 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [370 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [321 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [371 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [321 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [371 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [350 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [367 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [397 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [349 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [366 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [396 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [403 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [353 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [370 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [400 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: 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 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 @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #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

; 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_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 uwtable
define dso_local void @_ZN20SuiteHtnPlannerTests41TestPlannerShopTransportationScenarioTest7RunImplEv(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::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::shared_ptr.29", align 8
  %40 = alloca %"class.std::shared_ptr.65", 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.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.UnitTest::TestDetails", align 8
  %53 = alloca %"class.UnitTest::TestDetails", align 8
  %54 = alloca %"class.std::shared_ptr.76", align 8
  %55 = alloca %"class.std::shared_ptr.29", align 8
  %56 = alloca %"class.UnitTest::TestDetails", align 8
  %57 = alloca %"class.UnitTest::TestDetails", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.UnitTest::TestDetails", align 8
  %61 = alloca %"class.UnitTest::TestDetails", align 8
  %62 = alloca %"class.UnitTest::TestDetails", align 8
  %63 = alloca %"class.UnitTest::TestDetails", align 8
  %64 = alloca %"class.std::shared_ptr.29", align 8
  %65 = alloca %"class.std::shared_ptr.65", 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.UnitTest::TestDetails", align 8
  %82 = alloca %"class.UnitTest::TestDetails", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.UnitTest::TestDetails", align 8
  %86 = alloca %"class.UnitTest::TestDetails", align 8
  %87 = alloca %"class.UnitTest::TestDetails", align 8
  %88 = alloca %"class.UnitTest::TestDetails", align 8
  %89 = alloca %"class.std::shared_ptr.29", align 8
  %90 = alloca %"class.std::shared_ptr.65", 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.UnitTest::TestDetails", align 8
  %106 = alloca %"class.UnitTest::TestDetails", align 8
  %107 = alloca %"class.std::shared_ptr.29", align 8
  %108 = alloca %"class.std::shared_ptr.65", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.UnitTest::TestDetails", align 8
  %121 = alloca %"class.UnitTest::TestDetails", align 8
  %122 = alloca %"class.std::shared_ptr.76", align 8
  %123 = alloca %"class.std::shared_ptr.29", align 8
  %124 = alloca %"class.UnitTest::TestDetails", align 8
  %125 = alloca %"class.UnitTest::TestDetails", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.UnitTest::TestDetails", align 8
  %133 = alloca %"class.UnitTest::TestDetails", align 8
  %134 = alloca %"class.UnitTest::TestDetails", align 8
  %135 = alloca %"class.UnitTest::TestDetails", align 8
  %136 = alloca %"class.UnitTest::TestDetails", align 8
  %137 = alloca %"class.UnitTest::TestDetails", align 8
  %138 = alloca %"class.UnitTest::TestDetails", align 8
  %139 = alloca %"class.UnitTest::TestDetails", align 8
  %140 = alloca %"class.UnitTest::TestDetails", align 8
  %141 = alloca %"class.UnitTest::TestDetails", align 8
  %142 = alloca %"class.UnitTest::TestDetails", align 8
  %143 = alloca %"class.UnitTest::TestDetails", align 8
  %144 = alloca %"class.std::shared_ptr.29", align 8
  %145 = alloca %"class.std::shared_ptr.65", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.UnitTest::TestDetails", align 8
  %158 = alloca %"class.UnitTest::TestDetails", align 8
  %159 = alloca %"class.std::shared_ptr.76", align 8
  %160 = alloca %"class.std::shared_ptr.29", align 8
  %161 = alloca %"class.UnitTest::TestDetails", align 8
  %162 = alloca %"class.UnitTest::TestDetails", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.UnitTest::TestDetails", align 8
  %170 = alloca %"class.UnitTest::TestDetails", align 8
  %171 = alloca %"class.UnitTest::TestDetails", align 8
  %172 = alloca %"class.UnitTest::TestDetails", align 8
  %173 = alloca %"class.UnitTest::TestDetails", align 8
  %174 = alloca %"class.UnitTest::TestDetails", align 8
  %175 = alloca %"class.UnitTest::TestDetails", align 8
  %176 = alloca %"class.UnitTest::TestDetails", align 8
  %177 = alloca %"class.UnitTest::TestDetails", align 8
  %178 = alloca %"class.UnitTest::TestDetails", align 8
  %179 = alloca %"class.UnitTest::TestDetails", align 8
  %180 = alloca %"class.UnitTest::TestDetails", align 8
  %181 = alloca %"class.std::shared_ptr.29", align 8
  %182 = alloca %"class.std::shared_ptr.65", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.UnitTest::TestDetails", align 8
  %195 = alloca %"class.UnitTest::TestDetails", align 8
  %196 = alloca %"class.std::shared_ptr.76", align 8
  %197 = alloca %"class.std::shared_ptr.29", align 8
  %198 = alloca %"class.UnitTest::TestDetails", align 8
  %199 = alloca %"class.UnitTest::TestDetails", align 8
  %200 = alloca %"class.std::shared_ptr.29", align 8
  %201 = alloca %"class.std::shared_ptr.65", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.UnitTest::TestDetails", align 8
  %214 = alloca %"class.UnitTest::TestDetails", align 8
  %215 = alloca %"class.std::shared_ptr.76", align 8
  %216 = alloca %"class.std::shared_ptr.29", align 8
  %217 = alloca %"class.UnitTest::TestDetails", align 8
  %218 = alloca %"class.UnitTest::TestDetails", align 8
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.UnitTest::TestDetails", align 8
  %224 = alloca %"class.UnitTest::TestDetails", align 8
  %225 = alloca %"class.UnitTest::TestDetails", align 8
  %226 = alloca %"class.UnitTest::TestDetails", align 8
  %227 = alloca %"class.UnitTest::TestDetails", align 8
  %228 = alloca %"class.UnitTest::TestDetails", align 8
  %229 = alloca %"class.UnitTest::TestDetails", align 8
  %230 = alloca %"class.UnitTest::TestDetails", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #9
  %231 = tail call noalias noundef nonnull dereferenceable(33088) ptr @_Znwm(i64 noundef 33088) #10
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %231)
          to label %232 unwind label %307

232:                                              ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull %231)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #9
  %233 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %234 unwind label %309

234:                                              ; preds = %232
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %233)
          to label %235 unwind label %311

235:                                              ; preds = %234
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull %233)
          to label %236 unwind label %309

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #9
  %237 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #10
          to label %238 unwind label %313

238:                                              ; preds = %236
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %237)
          to label %239 unwind label %315

239:                                              ; preds = %238
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull %237)
          to label %240 unwind label %313

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  call void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #9
  call void @_ZNSt10shared_ptrISt6vectorIS_IN10HtnPlanner12SolutionTypeEESaIS3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.251)
          to label %241 unwind label %317

241:                                              ; preds = %240
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.252)
          to label %242 unwind label %319

242:                                              ; preds = %241
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.253)
          to label %243 unwind label %321

243:                                              ; preds = %242
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.254)
          to label %244 unwind label %323

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

245:                                              ; preds = %244
  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.256)
          to label %246 unwind label %327

246:                                              ; preds = %245
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.257)
          to label %247 unwind label %329

247:                                              ; preds = %246
  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.258)
          to label %248 unwind label %331

248:                                              ; preds = %247
  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.259)
          to label %249 unwind label %333

249:                                              ; preds = %248
  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.260)
          to label %250 unwind label %335

250:                                              ; preds = %249
  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.261)
          to label %251 unwind label %337

251:                                              ; preds = %250
  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.262)
          to label %252 unwind label %339

252:                                              ; preds = %251
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str)
          to label %253 unwind label %341

253:                                              ; preds = %252
  %254 = 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) %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.263)
          to label %255 unwind label %355

255:                                              ; preds = %253
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.264)
          to label %256 unwind label %357

256:                                              ; preds = %255
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.265)
          to label %257 unwind label %359

257:                                              ; preds = %256
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.266)
          to label %258 unwind label %361

258:                                              ; preds = %257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.267)
          to label %259 unwind label %363

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.268)
          to label %260 unwind label %365

260:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.269)
          to label %261 unwind label %367

261:                                              ; preds = %260
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.270)
          to label %262 unwind label %369

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

263:                                              ; preds = %262
  %264 = 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) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #9
  %265 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %266 unwind label %381

266:                                              ; preds = %263
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %265)
          to label %267 unwind label %383

267:                                              ; preds = %266
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull %265)
          to label %268 unwind label %381

268:                                              ; preds = %267
  %269 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %39) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #9
  %270 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %271 = load ptr, ptr %270, align 8, !tbaa !5
  %272 = getelementptr inbounds i8, ptr %271, i64 48
  %273 = load ptr, ptr %272, align 8
  invoke void %273(ptr noundef nonnull align 8 dereferenceable(136) %270)
          to label %274 unwind label %386

274:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #9
  %275 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %276 unwind label %388

276:                                              ; preds = %274
  %277 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %278 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %279 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %275, ptr noundef %277, ptr noundef %278, ptr noundef %279)
          to label %280 unwind label %390

280:                                              ; preds = %276
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull %275)
          to label %281 unwind label %388

281:                                              ; preds = %280
  %282 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %40) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.271)
          to label %283 unwind label %393

283:                                              ; preds = %281
  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.272)
          to label %284 unwind label %395

284:                                              ; preds = %283
  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.273)
          to label %285 unwind label %397

285:                                              ; preds = %284
  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)
          to label %286 unwind label %399

286:                                              ; preds = %285
  %287 = 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) %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.274)
          to label %288 unwind label %404

288:                                              ; preds = %286
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str)
          to label %289 unwind label %406

289:                                              ; preds = %288
  %290 = 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) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  %291 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %292 unwind label %409

292:                                              ; preds = %289
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull 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) %12)
          to label %293 unwind label %411

293:                                              ; preds = %292
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %294 unwind label %413

294:                                              ; preds = %293
  %295 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull %49)
          to label %296 unwind label %415

296:                                              ; preds = %294
  %297 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %295)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br i1 %297, label %434, label %298

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %300 unwind label %420

300:                                              ; preds = %298
  %301 = load ptr, ptr %299, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #9
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %303 unwind label %422

303:                                              ; preds = %300
  %304 = load ptr, ptr %302, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %52, ptr noundef nonnull align 8 dereferenceable(30) %304, i32 noundef 1225)
          to label %305 unwind label %422

305:                                              ; preds = %303
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %301, ptr noundef nonnull align 8 dereferenceable(30) %52, ptr noundef nonnull @.str.192)
          to label %306 unwind label %422

306:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  br label %434

307:                                              ; preds = %1
  %308 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %231, i64 noundef 33088) #11
  br label %2069

309:                                              ; preds = %235, %232
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %2068

311:                                              ; preds = %234
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %233, i64 noundef 144) #11
  br label %2068

313:                                              ; preds = %239, %236
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %2067

315:                                              ; preds = %238
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %237, i64 noundef 136) #11
  br label %2067

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

319:                                              ; preds = %241
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %353

321:                                              ; preds = %242
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %352

323:                                              ; preds = %243
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %351

325:                                              ; preds = %244
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %350

327:                                              ; preds = %245
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %349

329:                                              ; preds = %246
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %348

331:                                              ; preds = %247
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %347

333:                                              ; preds = %248
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %346

335:                                              ; preds = %249
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %345

337:                                              ; preds = %250
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %344

339:                                              ; preds = %251
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %343

341:                                              ; preds = %252
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %343

343:                                              ; preds = %341, %339
  %.pn = phi { ptr, i32 } [ %342, %341 ], [ %340, %339 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %344

344:                                              ; preds = %343, %337
  %.pn.pn = phi { ptr, i32 } [ %.pn, %343 ], [ %338, %337 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %345

345:                                              ; preds = %344, %335
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %344 ], [ %336, %335 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %346

346:                                              ; preds = %345, %333
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %345 ], [ %334, %333 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %347

347:                                              ; preds = %346, %331
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %346 ], [ %332, %331 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %348

348:                                              ; preds = %347, %329
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %347 ], [ %330, %329 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %349

349:                                              ; preds = %348, %327
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %348 ], [ %328, %327 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %350

350:                                              ; preds = %349, %325
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %349 ], [ %326, %325 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %351

351:                                              ; preds = %350, %323
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %350 ], [ %324, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %352

352:                                              ; preds = %351, %321
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %351 ], [ %322, %321 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %353

353:                                              ; preds = %352, %319
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %352 ], [ %320, %319 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %354

354:                                              ; preds = %353, %317
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %353 ], [ %318, %317 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %2066

355:                                              ; preds = %253
  %356 = landingpad { ptr, i32 }
          cleanup
  br label %380

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

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

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

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

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

367:                                              ; preds = %260
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %374

369:                                              ; preds = %261
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %262
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %373

373:                                              ; preds = %371, %369
  %.pn151 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %374

374:                                              ; preds = %373, %367
  %.pn151.pn = phi { ptr, i32 } [ %.pn151, %373 ], [ %368, %367 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %375

375:                                              ; preds = %374, %365
  %.pn151.pn.pn = phi { ptr, i32 } [ %.pn151.pn, %374 ], [ %366, %365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %376

376:                                              ; preds = %375, %363
  %.pn151.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn, %375 ], [ %364, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %377

377:                                              ; preds = %376, %361
  %.pn151.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn, %376 ], [ %362, %361 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %378

378:                                              ; preds = %377, %359
  %.pn151.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn, %377 ], [ %360, %359 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %379

379:                                              ; preds = %378, %357
  %.pn151.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn.pn, %378 ], [ %358, %357 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %380

380:                                              ; preds = %379, %355
  %.pn151.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn.pn.pn, %379 ], [ %356, %355 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %2066

381:                                              ; preds = %267, %263
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %385

383:                                              ; preds = %266
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %265, i64 noundef 144) #11
  br label %385

385:                                              ; preds = %383, %381
  %.pn160 = phi { ptr, i32 } [ %382, %381 ], [ %384, %383 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #9
  br label %2066

386:                                              ; preds = %1032, %991, %897, %892, %853, %763, %758, %730, %686, %645, %551, %546, %518, %474, %433, %268
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %2066

388:                                              ; preds = %280, %274
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %392

390:                                              ; preds = %276
  %391 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %275, i64 noundef 96) #11
  br label %392

392:                                              ; preds = %390, %388
  %.pn162 = phi { ptr, i32 } [ %389, %388 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #9
  br label %2066

393:                                              ; preds = %281
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %403

395:                                              ; preds = %283
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %402

397:                                              ; preds = %284
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %401

399:                                              ; preds = %285
  %400 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %401

401:                                              ; preds = %399, %397
  %.pn164 = phi { ptr, i32 } [ %400, %399 ], [ %398, %397 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %402

402:                                              ; preds = %401, %395
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %401 ], [ %396, %395 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %403

403:                                              ; preds = %402, %393
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %402 ], [ %394, %393 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  br label %2066

404:                                              ; preds = %286
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %408

406:                                              ; preds = %288
  %407 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %408

408:                                              ; preds = %406, %404
  %.pn168 = phi { ptr, i32 } [ %407, %406 ], [ %405, %404 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  br label %2066

409:                                              ; preds = %289
  %410 = landingpad { ptr, i32 }
          catch ptr null
  br label %419

411:                                              ; preds = %292
  %412 = landingpad { ptr, i32 }
          catch ptr null
  br label %418

413:                                              ; preds = %293
  %414 = landingpad { ptr, i32 }
          catch ptr null
  br label %417

415:                                              ; preds = %294
  %416 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %417

417:                                              ; preds = %415, %413
  %.pn170 = phi { ptr, i32 } [ %416, %415 ], [ %414, %413 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %418

418:                                              ; preds = %417, %411
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %417 ], [ %412, %411 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %419

419:                                              ; preds = %418, %409
  %.pn170.pn.pn = phi { ptr, i32 } [ %.pn170.pn, %418 ], [ %410, %409 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br label %424

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

422:                                              ; preds = %305, %303, %300
  %423 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  br label %424

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

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

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

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

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

434:                                              ; preds = %296, %306, %433
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #9
  %435 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %436 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %437 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %438 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %437)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %54, ptr noundef nonnull align 8 dereferenceable(136) %435, ptr noundef %436, ptr noundef nonnull %55, ptr noundef nonnull align 8 dereferenceable(24) %438, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %439 unwind label %459

439:                                              ; preds = %434
  %440 = 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) %54) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #9
  %441 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %442 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %441) #9
  %443 = icmp eq i64 %442, 1
  %444 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %443)
  br i1 %444, label %475, label %445

445:                                              ; preds = %439
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %447 unwind label %461

447:                                              ; preds = %445
  %448 = load ptr, ptr %446, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #9
  %449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %450 unwind label %463

450:                                              ; preds = %447
  %451 = load ptr, ptr %449, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull align 8 dereferenceable(30) %451, i32 noundef 1227)
          to label %452 unwind label %463

452:                                              ; preds = %450
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %448, ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull @.str.275)
          to label %453 unwind label %463

453:                                              ; preds = %452
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #9
  br label %475

454:                                              ; preds = %424
  %455 = landingpad { ptr, i32 }
          cleanup
  br label %458

456:                                              ; preds = %432, %430, %427
  %457 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  br label %458

458:                                              ; preds = %456, %454
  %.pn172 = phi { ptr, i32 } [ %457, %456 ], [ %455, %454 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

459:                                              ; preds = %434
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %55) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #9
  br label %2066

461:                                              ; preds = %445
  %462 = landingpad { ptr, i32 }
          catch ptr null
  br label %465

463:                                              ; preds = %452, %450, %447
  %464 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #9
  br label %465

465:                                              ; preds = %463, %461
  %.pn174 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  %.3167 = extractvalue { ptr, i32 } %.pn174, 0
  %466 = call ptr @__cxa_begin_catch(ptr %.3167) #9
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %468 unwind label %496

468:                                              ; preds = %465
  %469 = load ptr, ptr %467, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #9
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %471 unwind label %498

471:                                              ; preds = %468
  %472 = load ptr, ptr %470, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %57, ptr noundef nonnull align 8 dereferenceable(30) %472, i32 noundef 1227)
          to label %473 unwind label %498

473:                                              ; preds = %471
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %469, ptr noundef nonnull align 8 dereferenceable(30) %57, ptr noundef nonnull @.str.276)
          to label %474 unwind label %498

474:                                              ; preds = %473
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  invoke void @__cxa_end_catch()
          to label %475 unwind label %386

475:                                              ; preds = %439, %453, %474
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #9
  %476 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %477 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %476, i64 noundef 0) #9
  %478 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %477) #9
  %479 = getelementptr inbounds i8, ptr %478, i64 24
  %480 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %479) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(144) %480)
          to label %481 unwind label %501

481:                                              ; preds = %475
  %482 = 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) %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #9
  %483 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %484 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef 0) #9
  %485 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %484) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(24) %485, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %486 unwind label %503

486:                                              ; preds = %481
  %487 = 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) %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  %488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %489 unwind label %505

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

492:                                              ; preds = %489
  %493 = load ptr, ptr %491, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %60, ptr noundef nonnull align 8 dereferenceable(30) %493, i32 noundef 1230)
          to label %494 unwind label %507

494:                                              ; preds = %492
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA81_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %490, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(81) @.str.277, ptr noundef nonnull align 8 dereferenceable(30) %60)
          to label %495 unwind label %507

495:                                              ; preds = %494
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  br label %519

496:                                              ; preds = %465
  %497 = landingpad { ptr, i32 }
          cleanup
  br label %500

498:                                              ; preds = %473, %471, %468
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  br label %500

500:                                              ; preds = %498, %496
  %.pn175 = phi { ptr, i32 } [ %499, %498 ], [ %497, %496 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

501:                                              ; preds = %475
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  br label %2066

503:                                              ; preds = %481
  %504 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  br label %2066

505:                                              ; preds = %486
  %506 = landingpad { ptr, i32 }
          catch ptr null
  br label %509

507:                                              ; preds = %494, %492, %489
  %508 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  br label %509

509:                                              ; preds = %507, %505
  %.pn177 = phi { ptr, i32 } [ %508, %507 ], [ %506, %505 ]
  %.3369 = extractvalue { ptr, i32 } %.pn177, 0
  %510 = call ptr @__cxa_begin_catch(ptr %.3369) #9
  %511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %512 unwind label %528

512:                                              ; preds = %509
  %513 = load ptr, ptr %511, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #9
  %514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %515 unwind label %530

515:                                              ; preds = %512
  %516 = load ptr, ptr %514, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef nonnull align 8 dereferenceable(30) %516, i32 noundef 1230)
          to label %517 unwind label %530

517:                                              ; preds = %515
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %513, ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef nonnull @.str.278)
          to label %518 unwind label %530

518:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #9
  invoke void @__cxa_end_catch()
          to label %519 unwind label %386

519:                                              ; preds = %495, %518
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %521 unwind label %533

521:                                              ; preds = %519
  %522 = load ptr, ptr %520, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %524 unwind label %535

524:                                              ; preds = %521
  %525 = load ptr, ptr %523, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %62, ptr noundef nonnull align 8 dereferenceable(30) %525, i32 noundef 1231)
          to label %526 unwind label %535

526:                                              ; preds = %524
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA353_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %522, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(353) @.str.279, ptr noundef nonnull align 8 dereferenceable(30) %62)
          to label %527 unwind label %535

527:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  br label %547

528:                                              ; preds = %509
  %529 = landingpad { ptr, i32 }
          cleanup
  br label %532

530:                                              ; preds = %517, %515, %512
  %531 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #9
  br label %532

532:                                              ; preds = %530, %528
  %.pn178 = phi { ptr, i32 } [ %531, %530 ], [ %529, %528 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

533:                                              ; preds = %519
  %534 = landingpad { ptr, i32 }
          catch ptr null
  br label %537

535:                                              ; preds = %526, %524, %521
  %536 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  br label %537

537:                                              ; preds = %535, %533
  %.pn180 = phi { ptr, i32 } [ %536, %535 ], [ %534, %533 ]
  %.3571 = extractvalue { ptr, i32 } %.pn180, 0
  %538 = call ptr @__cxa_begin_catch(ptr %.3571) #9
  %539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %540 unwind label %590

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

543:                                              ; preds = %540
  %544 = load ptr, ptr %542, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef nonnull align 8 dereferenceable(30) %544, i32 noundef 1231)
          to label %545 unwind label %592

545:                                              ; preds = %543
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %541, ptr noundef nonnull align 8 dereferenceable(30) %63, ptr noundef nonnull @.str.280)
          to label %546 unwind label %592

546:                                              ; preds = %545
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #9
  invoke void @__cxa_end_catch()
          to label %547 unwind label %386

547:                                              ; preds = %546, %527
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #9
  %548 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %549 unwind label %595

549:                                              ; preds = %547
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %548)
          to label %550 unwind label %597

550:                                              ; preds = %549
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull %548)
          to label %551 unwind label %595

551:                                              ; preds = %550
  %552 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #9
  %553 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %554 = load ptr, ptr %553, align 8, !tbaa !5
  %555 = getelementptr inbounds i8, ptr %554, i64 48
  %556 = load ptr, ptr %555, align 8
  invoke void %556(ptr noundef nonnull align 8 dereferenceable(136) %553)
          to label %557 unwind label %386

557:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #9
  %558 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %559 unwind label %600

559:                                              ; preds = %557
  %560 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %561 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %562 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %558, ptr noundef %560, ptr noundef %561, ptr noundef %562)
          to label %563 unwind label %602

563:                                              ; preds = %559
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull %558)
          to label %564 unwind label %600

564:                                              ; preds = %563
  %565 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  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.271)
          to label %566 unwind label %605

566:                                              ; preds = %564
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.272)
          to label %567 unwind label %607

567:                                              ; preds = %566
  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.281)
          to label %568 unwind label %609

568:                                              ; preds = %567
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str)
          to label %569 unwind label %611

569:                                              ; preds = %568
  %570 = 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) %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.282)
          to label %571 unwind label %616

571:                                              ; preds = %569
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str)
          to label %572 unwind label %618

572:                                              ; preds = %571
  %573 = 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) %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #9
  %574 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %575 unwind label %621

575:                                              ; preds = %572
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %576 unwind label %623

576:                                              ; preds = %575
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %577 unwind label %625

577:                                              ; preds = %576
  %578 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull %74)
          to label %579 unwind label %627

579:                                              ; preds = %577
  %580 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %578)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #9
  br i1 %580, label %646, label %581

581:                                              ; preds = %579
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %583 unwind label %632

583:                                              ; preds = %581
  %584 = load ptr, ptr %582, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #9
  %585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %586 unwind label %634

586:                                              ; preds = %583
  %587 = load ptr, ptr %585, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %77, ptr noundef nonnull align 8 dereferenceable(30) %587, i32 noundef 1249)
          to label %588 unwind label %634

588:                                              ; preds = %586
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %584, ptr noundef nonnull align 8 dereferenceable(30) %77, ptr noundef nonnull @.str.192)
          to label %589 unwind label %634

589:                                              ; preds = %588
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  br label %646

590:                                              ; preds = %537
  %591 = landingpad { ptr, i32 }
          cleanup
  br label %594

592:                                              ; preds = %545, %543, %540
  %593 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #9
  br label %594

594:                                              ; preds = %592, %590
  %.pn181 = phi { ptr, i32 } [ %593, %592 ], [ %591, %590 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

595:                                              ; preds = %550, %547
  %596 = landingpad { ptr, i32 }
          cleanup
  br label %599

597:                                              ; preds = %549
  %598 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %548, i64 noundef 144) #11
  br label %599

599:                                              ; preds = %597, %595
  %.pn183 = phi { ptr, i32 } [ %596, %595 ], [ %598, %597 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #9
  br label %2066

600:                                              ; preds = %563, %557
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %559
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %558, i64 noundef 96) #11
  br label %604

604:                                              ; preds = %602, %600
  %.pn185 = phi { ptr, i32 } [ %601, %600 ], [ %603, %602 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  br label %2066

605:                                              ; preds = %564
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %615

607:                                              ; preds = %566
  %608 = landingpad { ptr, i32 }
          cleanup
  br label %614

609:                                              ; preds = %567
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %613

611:                                              ; preds = %568
  %612 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  br label %613

613:                                              ; preds = %611, %609
  %.pn187 = phi { ptr, i32 } [ %612, %611 ], [ %610, %609 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %614

614:                                              ; preds = %613, %607
  %.pn187.pn = phi { ptr, i32 } [ %.pn187, %613 ], [ %608, %607 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %615

615:                                              ; preds = %614, %605
  %.pn187.pn.pn = phi { ptr, i32 } [ %.pn187.pn, %614 ], [ %606, %605 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  br label %2066

616:                                              ; preds = %569
  %617 = landingpad { ptr, i32 }
          cleanup
  br label %620

618:                                              ; preds = %571
  %619 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %620

620:                                              ; preds = %618, %616
  %.pn191 = phi { ptr, i32 } [ %619, %618 ], [ %617, %616 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #9
  br label %2066

621:                                              ; preds = %572
  %622 = landingpad { ptr, i32 }
          catch ptr null
  br label %631

623:                                              ; preds = %575
  %624 = landingpad { ptr, i32 }
          catch ptr null
  br label %630

625:                                              ; preds = %576
  %626 = landingpad { ptr, i32 }
          catch ptr null
  br label %629

627:                                              ; preds = %577
  %628 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %629

629:                                              ; preds = %627, %625
  %.pn193 = phi { ptr, i32 } [ %628, %627 ], [ %626, %625 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  br label %630

630:                                              ; preds = %629, %623
  %.pn193.pn = phi { ptr, i32 } [ %.pn193, %629 ], [ %624, %623 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %631

631:                                              ; preds = %630, %621
  %.pn193.pn.pn = phi { ptr, i32 } [ %.pn193.pn, %630 ], [ %622, %621 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #9
  br label %636

632:                                              ; preds = %581
  %633 = landingpad { ptr, i32 }
          catch ptr null
  br label %636

634:                                              ; preds = %588, %586, %583
  %635 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  br label %636

636:                                              ; preds = %634, %632, %631
  %.pn194 = phi { ptr, i32 } [ %635, %634 ], [ %633, %632 ], [ %.pn193.pn.pn, %631 ]
  %.4682 = extractvalue { ptr, i32 } %.pn194, 0
  %637 = call ptr @__cxa_begin_catch(ptr %.4682) #9
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %639 unwind label %666

639:                                              ; preds = %636
  %640 = load ptr, ptr %638, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  %641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %642 unwind label %668

642:                                              ; preds = %639
  %643 = load ptr, ptr %641, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef nonnull align 8 dereferenceable(30) %643, i32 noundef 1249)
          to label %644 unwind label %668

644:                                              ; preds = %642
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %640, ptr noundef nonnull align 8 dereferenceable(30) %78, ptr noundef nonnull @.str.193)
          to label %645 unwind label %668

645:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  invoke void @__cxa_end_catch()
          to label %646 unwind label %386

646:                                              ; preds = %579, %589, %645
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #9
  %647 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %648 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %649 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %650 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %649)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %79, ptr noundef nonnull align 8 dereferenceable(136) %647, ptr noundef %648, ptr noundef nonnull %80, ptr noundef nonnull align 8 dereferenceable(24) %650, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %651 unwind label %671

651:                                              ; preds = %646
  %652 = 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) %79) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #9
  %653 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %654 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %653) #9
  %655 = icmp eq i64 %654, 1
  %656 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %655)
  br i1 %656, label %687, label %657

657:                                              ; preds = %651
  %658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %659 unwind label %673

659:                                              ; preds = %657
  %660 = load ptr, ptr %658, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #9
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %662 unwind label %675

662:                                              ; preds = %659
  %663 = load ptr, ptr %661, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull align 8 dereferenceable(30) %663, i32 noundef 1251)
          to label %664 unwind label %675

664:                                              ; preds = %662
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %660, ptr noundef nonnull align 8 dereferenceable(30) %81, ptr noundef nonnull @.str.275)
          to label %665 unwind label %675

665:                                              ; preds = %664
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #9
  br label %687

666:                                              ; preds = %636
  %667 = landingpad { ptr, i32 }
          cleanup
  br label %670

668:                                              ; preds = %644, %642, %639
  %669 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  br label %670

670:                                              ; preds = %668, %666
  %.pn195 = phi { ptr, i32 } [ %669, %668 ], [ %667, %666 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

671:                                              ; preds = %646
  %672 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #9
  br label %2066

673:                                              ; preds = %657
  %674 = landingpad { ptr, i32 }
          catch ptr null
  br label %677

675:                                              ; preds = %664, %662, %659
  %676 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #9
  br label %677

677:                                              ; preds = %675, %673
  %.pn197 = phi { ptr, i32 } [ %676, %675 ], [ %674, %673 ]
  %.4884 = extractvalue { ptr, i32 } %.pn197, 0
  %678 = call ptr @__cxa_begin_catch(ptr %.4884) #9
  %679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %680 unwind label %708

680:                                              ; preds = %677
  %681 = load ptr, ptr %679, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #9
  %682 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %683 unwind label %710

683:                                              ; preds = %680
  %684 = load ptr, ptr %682, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %82, ptr noundef nonnull align 8 dereferenceable(30) %684, i32 noundef 1251)
          to label %685 unwind label %710

685:                                              ; preds = %683
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %681, ptr noundef nonnull align 8 dereferenceable(30) %82, ptr noundef nonnull @.str.276)
          to label %686 unwind label %710

686:                                              ; preds = %685
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #9
  invoke void @__cxa_end_catch()
          to label %687 unwind label %386

687:                                              ; preds = %651, %665, %686
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #9
  %688 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %689 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %688, i64 noundef 0) #9
  %690 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %689) #9
  %691 = getelementptr inbounds i8, ptr %690, i64 24
  %692 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %691) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(144) %692)
          to label %693 unwind label %713

693:                                              ; preds = %687
  %694 = 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) %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #9
  %695 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %696 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %695, i64 noundef 0) #9
  %697 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %696) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(24) %697, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %698 unwind label %715

698:                                              ; preds = %693
  %699 = 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) %84) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #9
  %700 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %701 unwind label %717

701:                                              ; preds = %698
  %702 = load ptr, ptr %700, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #9
  %703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %704 unwind label %719

704:                                              ; preds = %701
  %705 = load ptr, ptr %703, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %85, ptr noundef nonnull align 8 dereferenceable(30) %705, i32 noundef 1254)
          to label %706 unwind label %719

706:                                              ; preds = %704
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %702, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %85)
          to label %707 unwind label %719

707:                                              ; preds = %706
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  br label %731

708:                                              ; preds = %677
  %709 = landingpad { ptr, i32 }
          cleanup
  br label %712

710:                                              ; preds = %685, %683, %680
  %711 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #9
  br label %712

712:                                              ; preds = %710, %708
  %.pn198 = phi { ptr, i32 } [ %711, %710 ], [ %709, %708 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

713:                                              ; preds = %687
  %714 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #9
  br label %2066

715:                                              ; preds = %693
  %716 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #9
  br label %2066

717:                                              ; preds = %698
  %718 = landingpad { ptr, i32 }
          catch ptr null
  br label %721

719:                                              ; preds = %706, %704, %701
  %720 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  br label %721

721:                                              ; preds = %719, %717
  %.pn200 = phi { ptr, i32 } [ %720, %719 ], [ %718, %717 ]
  %.5086 = extractvalue { ptr, i32 } %.pn200, 0
  %722 = call ptr @__cxa_begin_catch(ptr %.5086) #9
  %723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %724 unwind label %740

724:                                              ; preds = %721
  %725 = load ptr, ptr %723, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #9
  %726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %727 unwind label %742

727:                                              ; preds = %724
  %728 = load ptr, ptr %726, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %86, ptr noundef nonnull align 8 dereferenceable(30) %728, i32 noundef 1254)
          to label %729 unwind label %742

729:                                              ; preds = %727
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %725, ptr noundef nonnull align 8 dereferenceable(30) %86, ptr noundef nonnull @.str.284)
          to label %730 unwind label %742

730:                                              ; preds = %729
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #9
  invoke void @__cxa_end_catch()
          to label %731 unwind label %386

731:                                              ; preds = %707, %730
  %732 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %733 unwind label %745

733:                                              ; preds = %731
  %734 = load ptr, ptr %732, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #9
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %736 unwind label %747

736:                                              ; preds = %733
  %737 = load ptr, ptr %735, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %87, ptr noundef nonnull align 8 dereferenceable(30) %737, i32 noundef 1255)
          to label %738 unwind label %747

738:                                              ; preds = %736
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA320_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %734, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(320) @.str.285, ptr noundef nonnull align 8 dereferenceable(30) %87)
          to label %739 unwind label %747

739:                                              ; preds = %738
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  br label %759

740:                                              ; preds = %721
  %741 = landingpad { ptr, i32 }
          cleanup
  br label %744

742:                                              ; preds = %729, %727, %724
  %743 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #9
  br label %744

744:                                              ; preds = %742, %740
  %.pn201 = phi { ptr, i32 } [ %743, %742 ], [ %741, %740 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

745:                                              ; preds = %731
  %746 = landingpad { ptr, i32 }
          catch ptr null
  br label %749

747:                                              ; preds = %738, %736, %733
  %748 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  br label %749

749:                                              ; preds = %747, %745
  %.pn203 = phi { ptr, i32 } [ %748, %747 ], [ %746, %745 ]
  %.5288 = extractvalue { ptr, i32 } %.pn203, 0
  %750 = call ptr @__cxa_begin_catch(ptr %.5288) #9
  %751 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %752 unwind label %801

752:                                              ; preds = %749
  %753 = load ptr, ptr %751, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #9
  %754 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %755 unwind label %803

755:                                              ; preds = %752
  %756 = load ptr, ptr %754, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %88, ptr noundef nonnull align 8 dereferenceable(30) %756, i32 noundef 1255)
          to label %757 unwind label %803

757:                                              ; preds = %755
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %753, ptr noundef nonnull align 8 dereferenceable(30) %88, ptr noundef nonnull @.str.286)
          to label %758 unwind label %803

758:                                              ; preds = %757
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #9
  invoke void @__cxa_end_catch()
          to label %759 unwind label %386

759:                                              ; preds = %758, %739
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %89) #9
  %760 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %761 unwind label %806

761:                                              ; preds = %759
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %760)
          to label %762 unwind label %808

762:                                              ; preds = %761
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull %760)
          to label %763 unwind label %806

763:                                              ; preds = %762
  %764 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %89) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #9
  %765 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %766 = load ptr, ptr %765, align 8, !tbaa !5
  %767 = getelementptr inbounds i8, ptr %766, i64 48
  %768 = load ptr, ptr %767, align 8
  invoke void %768(ptr noundef nonnull align 8 dereferenceable(136) %765)
          to label %769 unwind label %386

769:                                              ; preds = %763
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #9
  %770 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %771 unwind label %811

771:                                              ; preds = %769
  %772 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %773 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %774 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %770, ptr noundef %772, ptr noundef %773, ptr noundef %774)
          to label %775 unwind label %813

775:                                              ; preds = %771
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull %770)
          to label %776 unwind label %811

776:                                              ; preds = %775
  %777 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  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.271)
          to label %778 unwind label %816

778:                                              ; 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 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.281)
          to label %779 unwind label %818

779:                                              ; preds = %778
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str)
          to label %780 unwind label %820

780:                                              ; preds = %779
  %781 = 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) %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.282)
          to label %782 unwind label %824

782:                                              ; preds = %780
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str)
          to label %783 unwind label %826

783:                                              ; preds = %782
  %784 = 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) %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  %785 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %786 unwind label %829

786:                                              ; preds = %783
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull 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) %12)
          to label %787 unwind label %831

787:                                              ; preds = %786
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull 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) %14)
          to label %788 unwind label %833

788:                                              ; preds = %787
  %789 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %785, ptr noundef nonnull %98)
          to label %790 unwind label %835

790:                                              ; preds = %788
  %791 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %789)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  br i1 %791, label %854, label %792

792:                                              ; preds = %790
  %793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %794 unwind label %840

794:                                              ; preds = %792
  %795 = load ptr, ptr %793, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #9
  %796 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %797 unwind label %842

797:                                              ; preds = %794
  %798 = load ptr, ptr %796, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef nonnull align 8 dereferenceable(30) %798, i32 noundef 1274)
          to label %799 unwind label %842

799:                                              ; preds = %797
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %795, ptr noundef nonnull align 8 dereferenceable(30) %101, ptr noundef nonnull @.str.192)
          to label %800 unwind label %842

800:                                              ; preds = %799
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #9
  br label %854

801:                                              ; preds = %749
  %802 = landingpad { ptr, i32 }
          cleanup
  br label %805

803:                                              ; preds = %757, %755, %752
  %804 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #9
  br label %805

805:                                              ; preds = %803, %801
  %.pn204 = phi { ptr, i32 } [ %804, %803 ], [ %802, %801 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

806:                                              ; preds = %762, %759
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %810

808:                                              ; preds = %761
  %809 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %760, i64 noundef 144) #11
  br label %810

810:                                              ; preds = %808, %806
  %.pn206 = phi { ptr, i32 } [ %807, %806 ], [ %809, %808 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #9
  br label %2066

811:                                              ; preds = %775, %769
  %812 = landingpad { ptr, i32 }
          cleanup
  br label %815

813:                                              ; preds = %771
  %814 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %770, i64 noundef 96) #11
  br label %815

815:                                              ; preds = %813, %811
  %.pn208 = phi { ptr, i32 } [ %812, %811 ], [ %814, %813 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #9
  br label %2066

816:                                              ; preds = %776
  %817 = landingpad { ptr, i32 }
          cleanup
  br label %823

818:                                              ; preds = %778
  %819 = landingpad { ptr, i32 }
          cleanup
  br label %822

820:                                              ; preds = %779
  %821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %822

822:                                              ; preds = %820, %818
  %.pn210 = phi { ptr, i32 } [ %821, %820 ], [ %819, %818 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  br label %823

823:                                              ; preds = %822, %816
  %.pn210.pn = phi { ptr, i32 } [ %.pn210, %822 ], [ %817, %816 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #9
  br label %2066

824:                                              ; preds = %780
  %825 = landingpad { ptr, i32 }
          cleanup
  br label %828

826:                                              ; preds = %782
  %827 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %828

828:                                              ; preds = %826, %824
  %.pn213 = phi { ptr, i32 } [ %827, %826 ], [ %825, %824 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  br label %2066

829:                                              ; preds = %783
  %830 = landingpad { ptr, i32 }
          catch ptr null
  br label %839

831:                                              ; preds = %786
  %832 = landingpad { ptr, i32 }
          catch ptr null
  br label %838

833:                                              ; preds = %787
  %834 = landingpad { ptr, i32 }
          catch ptr null
  br label %837

835:                                              ; preds = %788
  %836 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  br label %837

837:                                              ; preds = %835, %833
  %.pn215 = phi { ptr, i32 } [ %836, %835 ], [ %834, %833 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %838

838:                                              ; preds = %837, %831
  %.pn215.pn = phi { ptr, i32 } [ %.pn215, %837 ], [ %832, %831 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  br label %839

839:                                              ; preds = %838, %829
  %.pn215.pn.pn = phi { ptr, i32 } [ %.pn215.pn, %838 ], [ %830, %829 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  br label %844

840:                                              ; preds = %792
  %841 = landingpad { ptr, i32 }
          catch ptr null
  br label %844

842:                                              ; preds = %799, %797, %794
  %843 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #9
  br label %844

844:                                              ; preds = %842, %840, %839
  %.pn216 = phi { ptr, i32 } [ %843, %842 ], [ %841, %840 ], [ %.pn215.pn.pn, %839 ]
  %.6298 = extractvalue { ptr, i32 } %.pn216, 0
  %845 = call ptr @__cxa_begin_catch(ptr %.6298) #9
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %847 unwind label %872

847:                                              ; preds = %844
  %848 = load ptr, ptr %846, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #9
  %849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %850 unwind label %874

850:                                              ; preds = %847
  %851 = load ptr, ptr %849, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %102, ptr noundef nonnull align 8 dereferenceable(30) %851, i32 noundef 1274)
          to label %852 unwind label %874

852:                                              ; preds = %850
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %848, ptr noundef nonnull align 8 dereferenceable(30) %102, ptr noundef nonnull @.str.193)
          to label %853 unwind label %874

853:                                              ; preds = %852
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  invoke void @__cxa_end_catch()
          to label %854 unwind label %386

854:                                              ; preds = %790, %800, %853
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #9
  %855 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %856 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %857 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %858 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %857)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %103, ptr noundef nonnull align 8 dereferenceable(136) %855, ptr noundef %856, ptr noundef nonnull %104, ptr noundef nonnull align 8 dereferenceable(24) %858, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %859 unwind label %877

859:                                              ; preds = %854
  %860 = 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) %103) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #9
  %861 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr null) #9
  %862 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %861)
  br i1 %862, label %893, label %863

863:                                              ; preds = %859
  %864 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %865 unwind label %879

865:                                              ; preds = %863
  %866 = load ptr, ptr %864, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #9
  %867 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %868 unwind label %881

868:                                              ; preds = %865
  %869 = load ptr, ptr %867, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull align 8 dereferenceable(30) %869, i32 noundef 1276)
          to label %870 unwind label %881

870:                                              ; preds = %868
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %866, ptr noundef nonnull align 8 dereferenceable(30) %105, ptr noundef nonnull @.str.287)
          to label %871 unwind label %881

871:                                              ; preds = %870
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %893

872:                                              ; preds = %844
  %873 = landingpad { ptr, i32 }
          cleanup
  br label %876

874:                                              ; preds = %852, %850, %847
  %875 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  br label %876

876:                                              ; preds = %874, %872
  %.pn217 = phi { ptr, i32 } [ %875, %874 ], [ %873, %872 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

877:                                              ; preds = %854
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #9
  br label %2066

879:                                              ; preds = %863
  %880 = landingpad { ptr, i32 }
          catch ptr null
  br label %883

881:                                              ; preds = %870, %868, %865
  %882 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %883

883:                                              ; preds = %881, %879
  %.pn219 = phi { ptr, i32 } [ %882, %881 ], [ %880, %879 ]
  %.64100 = extractvalue { ptr, i32 } %.pn219, 0
  %884 = call ptr @__cxa_begin_catch(ptr %.64100) #9
  %885 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %886 unwind label %936

886:                                              ; preds = %883
  %887 = load ptr, ptr %885, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #9
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %889 unwind label %938

889:                                              ; preds = %886
  %890 = load ptr, ptr %888, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %106, ptr noundef nonnull align 8 dereferenceable(30) %890, i32 noundef 1276)
          to label %891 unwind label %938

891:                                              ; preds = %889
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %887, ptr noundef nonnull align 8 dereferenceable(30) %106, ptr noundef nonnull @.str.288)
          to label %892 unwind label %938

892:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  invoke void @__cxa_end_catch()
          to label %893 unwind label %386

893:                                              ; preds = %859, %871, %892
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %107) #9
  %894 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %895 unwind label %941

895:                                              ; preds = %893
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %894)
          to label %896 unwind label %943

896:                                              ; preds = %895
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull %894)
          to label %897 unwind label %941

897:                                              ; preds = %896
  %898 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %107) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  %899 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %900 = load ptr, ptr %899, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i64 48
  %902 = load ptr, ptr %901, align 8
  invoke void %902(ptr noundef nonnull align 8 dereferenceable(136) %899)
          to label %903 unwind label %386

903:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %108) #9
  %904 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %905 unwind label %946

905:                                              ; preds = %903
  %906 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %907 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %908 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %904, ptr noundef %906, ptr noundef %907, ptr noundef %908)
          to label %909 unwind label %948

909:                                              ; preds = %905
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %108, ptr noundef nonnull %904)
          to label %910 unwind label %946

910:                                              ; preds = %909
  %911 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %108) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  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.271)
          to label %912 unwind label %951

912:                                              ; preds = %910
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @.str.272)
          to label %913 unwind label %953

913:                                              ; preds = %912
  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.273)
          to label %914 unwind label %955

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

915:                                              ; preds = %914
  %916 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  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.282)
          to label %917 unwind label %962

917:                                              ; preds = %915
  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)
          to label %918 unwind label %964

918:                                              ; preds = %917
  %919 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  %920 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %921 unwind label %967

921:                                              ; preds = %918
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(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 align 8 dereferenceable(32) %12)
          to label %922 unwind label %969

922:                                              ; preds = %921
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(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 align 8 dereferenceable(32) %14)
          to label %923 unwind label %971

923:                                              ; preds = %922
  %924 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %920, ptr noundef nonnull %117)
          to label %925 unwind label %973

925:                                              ; preds = %923
  %926 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %924)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #9
  br i1 %926, label %992, label %927

927:                                              ; preds = %925
  %928 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %929 unwind label %978

929:                                              ; preds = %927
  %930 = load ptr, ptr %928, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #9
  %931 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %932 unwind label %980

932:                                              ; preds = %929
  %933 = load ptr, ptr %931, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %120, ptr noundef nonnull align 8 dereferenceable(30) %933, i32 noundef 1295)
          to label %934 unwind label %980

934:                                              ; preds = %932
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %930, ptr noundef nonnull align 8 dereferenceable(30) %120, ptr noundef nonnull @.str.192)
          to label %935 unwind label %980

935:                                              ; preds = %934
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #9
  br label %992

936:                                              ; preds = %883
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %940

938:                                              ; preds = %891, %889, %886
  %939 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  br label %940

940:                                              ; preds = %938, %936
  %.pn220 = phi { ptr, i32 } [ %939, %938 ], [ %937, %936 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

941:                                              ; preds = %896, %893
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %945

943:                                              ; preds = %895
  %944 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %894, i64 noundef 144) #11
  br label %945

945:                                              ; preds = %943, %941
  %.pn222 = phi { ptr, i32 } [ %942, %941 ], [ %944, %943 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  br label %2066

946:                                              ; preds = %909, %903
  %947 = landingpad { ptr, i32 }
          cleanup
  br label %950

948:                                              ; preds = %905
  %949 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %904, i64 noundef 96) #11
  br label %950

950:                                              ; preds = %948, %946
  %.pn224 = phi { ptr, i32 } [ %947, %946 ], [ %949, %948 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #9
  br label %2066

951:                                              ; preds = %910
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %961

953:                                              ; preds = %912
  %954 = landingpad { ptr, i32 }
          cleanup
  br label %960

955:                                              ; preds = %913
  %956 = landingpad { ptr, i32 }
          cleanup
  br label %959

957:                                              ; preds = %914
  %958 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  br label %959

959:                                              ; preds = %957, %955
  %.pn226 = phi { ptr, i32 } [ %958, %957 ], [ %956, %955 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  br label %960

960:                                              ; preds = %959, %953
  %.pn226.pn = phi { ptr, i32 } [ %.pn226, %959 ], [ %954, %953 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  br label %961

961:                                              ; preds = %960, %951
  %.pn226.pn.pn = phi { ptr, i32 } [ %.pn226.pn, %960 ], [ %952, %951 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  br label %2066

962:                                              ; preds = %915
  %963 = landingpad { ptr, i32 }
          cleanup
  br label %966

964:                                              ; preds = %917
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  br label %966

966:                                              ; preds = %964, %962
  %.pn230 = phi { ptr, i32 } [ %965, %964 ], [ %963, %962 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  br label %2066

967:                                              ; preds = %918
  %968 = landingpad { ptr, i32 }
          catch ptr null
  br label %977

969:                                              ; preds = %921
  %970 = landingpad { ptr, i32 }
          catch ptr null
  br label %976

971:                                              ; preds = %922
  %972 = landingpad { ptr, i32 }
          catch ptr null
  br label %975

973:                                              ; preds = %923
  %974 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  br label %975

975:                                              ; preds = %973, %971
  %.pn232 = phi { ptr, i32 } [ %974, %973 ], [ %972, %971 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %976

976:                                              ; preds = %975, %969
  %.pn232.pn = phi { ptr, i32 } [ %.pn232, %975 ], [ %970, %969 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  br label %977

977:                                              ; preds = %976, %967
  %.pn232.pn.pn = phi { ptr, i32 } [ %.pn232.pn, %976 ], [ %968, %967 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #9
  br label %982

978:                                              ; preds = %927
  %979 = landingpad { ptr, i32 }
          catch ptr null
  br label %982

980:                                              ; preds = %934, %932, %929
  %981 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #9
  br label %982

982:                                              ; preds = %980, %978, %977
  %.pn233 = phi { ptr, i32 } [ %981, %980 ], [ %979, %978 ], [ %.pn232.pn.pn, %977 ]
  %.75111 = extractvalue { ptr, i32 } %.pn233, 0
  %983 = call ptr @__cxa_begin_catch(ptr %.75111) #9
  %984 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %985 unwind label %1012

985:                                              ; preds = %982
  %986 = load ptr, ptr %984, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #9
  %987 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %988 unwind label %1014

988:                                              ; preds = %985
  %989 = load ptr, ptr %987, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %121, ptr noundef nonnull align 8 dereferenceable(30) %989, i32 noundef 1295)
          to label %990 unwind label %1014

990:                                              ; preds = %988
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %986, ptr noundef nonnull align 8 dereferenceable(30) %121, ptr noundef nonnull @.str.193)
          to label %991 unwind label %1014

991:                                              ; preds = %990
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #9
  invoke void @__cxa_end_catch()
          to label %992 unwind label %386

992:                                              ; preds = %925, %935, %991
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %122) #9
  %993 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %994 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %995 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %996 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %995)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %122, ptr noundef nonnull align 8 dereferenceable(136) %993, ptr noundef %994, ptr noundef nonnull %123, ptr noundef nonnull align 8 dereferenceable(24) %996, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %997 unwind label %1017

997:                                              ; preds = %992
  %998 = 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) %122) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #9
  %999 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1000 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %999) #9
  %1001 = icmp eq i64 %1000, 3
  %1002 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1001)
  br i1 %1002, label %1033, label %1003

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

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

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

1010:                                             ; preds = %1008
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1006, ptr noundef nonnull align 8 dereferenceable(30) %124, ptr noundef nonnull @.str.289)
          to label %1011 unwind label %1021

1011:                                             ; preds = %1010
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #9
  br label %1033

1012:                                             ; preds = %982
  %1013 = landingpad { ptr, i32 }
          cleanup
  br label %1016

1014:                                             ; preds = %990, %988, %985
  %1015 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #9
  br label %1016

1016:                                             ; preds = %1014, %1012
  %.pn234 = phi { ptr, i32 } [ %1015, %1014 ], [ %1013, %1012 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

1017:                                             ; preds = %992
  %1018 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #9
  br label %2066

1019:                                             ; preds = %1003
  %1020 = landingpad { ptr, i32 }
          catch ptr null
  br label %1023

1021:                                             ; preds = %1010, %1008, %1005
  %1022 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #9
  br label %1023

1023:                                             ; preds = %1021, %1019
  %.pn236 = phi { ptr, i32 } [ %1022, %1021 ], [ %1020, %1019 ]
  %.77113 = extractvalue { ptr, i32 } %.pn236, 0
  %1024 = call ptr @__cxa_begin_catch(ptr %.77113) #9
  %1025 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1026 unwind label %1076

1026:                                             ; preds = %1023
  %1027 = load ptr, ptr %1025, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #9
  %1028 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1029 unwind label %1078

1029:                                             ; preds = %1026
  %1030 = load ptr, ptr %1028, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %125, ptr noundef nonnull align 8 dereferenceable(30) %1030, i32 noundef 1297)
          to label %1031 unwind label %1078

1031:                                             ; preds = %1029
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1027, ptr noundef nonnull align 8 dereferenceable(30) %125, ptr noundef nonnull @.str.290)
          to label %1032 unwind label %1078

1032:                                             ; preds = %1031
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #9
  invoke void @__cxa_end_catch()
          to label %1033 unwind label %386

1033:                                             ; preds = %997, %1011, %1032
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #9
  %1034 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1035 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1034, i64 noundef 0) #9
  %1036 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1035) #9
  %1037 = getelementptr inbounds i8, ptr %1036, i64 24
  %1038 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1037) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(144) %1038)
          to label %1039 unwind label %1081

1039:                                             ; preds = %1033
  %1040 = 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) %126) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #9
  %1041 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1042 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1041, i64 noundef 0) #9
  %1043 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1042) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(24) %1043, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1044 unwind label %1083

1044:                                             ; preds = %1039
  %1045 = 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) %127) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #9
  %1046 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1047 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1046, i64 noundef 1) #9
  %1048 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1047) #9
  %1049 = getelementptr inbounds i8, ptr %1048, i64 24
  %1050 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1049) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(144) %1050)
          to label %1051 unwind label %1085

1051:                                             ; preds = %1044
  %1052 = 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) %128) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #9
  %1053 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1054 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1053, i64 noundef 1) #9
  %1055 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1054) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(24) %1055, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1056 unwind label %1087

1056:                                             ; preds = %1051
  %1057 = 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) %129) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #9
  %1058 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1059 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1058, i64 noundef 2) #9
  %1060 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1059) #9
  %1061 = getelementptr inbounds i8, ptr %1060, i64 24
  %1062 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1061) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(144) %1062)
          to label %1063 unwind label %1089

1063:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #9
  %1064 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1065 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1064, i64 noundef 2) #9
  %1066 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1065) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(24) %1066, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1067 unwind label %1091

1067:                                             ; preds = %1063
  %1068 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1069 unwind label %1093

1069:                                             ; preds = %1067
  %1070 = load ptr, ptr %1068, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #9
  %1071 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1072 unwind label %1095

1072:                                             ; preds = %1069
  %1073 = load ptr, ptr %1071, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %132, ptr noundef nonnull align 8 dereferenceable(30) %1073, i32 noundef 1304)
          to label %1074 unwind label %1095

1074:                                             ; preds = %1072
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1070, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %132)
          to label %1075 unwind label %1095

1075:                                             ; preds = %1074
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #9
  br label %1107

1076:                                             ; preds = %1023
  %1077 = landingpad { ptr, i32 }
          cleanup
  br label %1080

1078:                                             ; preds = %1031, %1029, %1026
  %1079 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #9
  br label %1080

1080:                                             ; preds = %1078, %1076
  %.pn237 = phi { ptr, i32 } [ %1079, %1078 ], [ %1077, %1076 ]
  invoke void @__cxa_end_catch()
          to label %2066 unwind label %2070

1081:                                             ; preds = %1033
  %1082 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #9
  br label %2066

1083:                                             ; preds = %1039
  %1084 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #9
  br label %2066

1085:                                             ; preds = %1044
  %1086 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  br label %2066

1087:                                             ; preds = %1051
  %1088 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  br label %2066

1089:                                             ; preds = %1056
  %1090 = landingpad { ptr, i32 }
          cleanup
  br label %2065

1091:                                             ; preds = %1063
  %1092 = landingpad { ptr, i32 }
          cleanup
  br label %2064

1093:                                             ; preds = %1067
  %1094 = landingpad { ptr, i32 }
          catch ptr null
  br label %1097

1095:                                             ; preds = %1074, %1072, %1069
  %1096 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #9
  br label %1097

1097:                                             ; preds = %1095, %1093
  %.pn239 = phi { ptr, i32 } [ %1096, %1095 ], [ %1094, %1093 ]
  %.79115 = extractvalue { ptr, i32 } %.pn239, 0
  %1098 = call ptr @__cxa_begin_catch(ptr %.79115) #9
  %1099 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1100 unwind label %1116

1100:                                             ; preds = %1097
  %1101 = load ptr, ptr %1099, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #9
  %1102 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1103 unwind label %1118

1103:                                             ; preds = %1100
  %1104 = load ptr, ptr %1102, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %133, ptr noundef nonnull align 8 dereferenceable(30) %1104, i32 noundef 1304)
          to label %1105 unwind label %1118

1105:                                             ; preds = %1103
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1101, ptr noundef nonnull align 8 dereferenceable(30) %133, ptr noundef nonnull @.str.284)
          to label %1106 unwind label %1118

1106:                                             ; preds = %1105
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #9
  invoke void @__cxa_end_catch()
          to label %1107 unwind label %1120

1107:                                             ; preds = %1075, %1106
  %1108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1109 unwind label %1123

1109:                                             ; preds = %1107
  %1110 = load ptr, ptr %1108, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #9
  %1111 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1112 unwind label %1125

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %1111, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %134, ptr noundef nonnull align 8 dereferenceable(30) %1113, i32 noundef 1305)
          to label %1114 unwind label %1125

1114:                                             ; preds = %1112
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA321_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1110, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(321) @.str.291, ptr noundef nonnull align 8 dereferenceable(30) %134)
          to label %1115 unwind label %1125

1115:                                             ; preds = %1114
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #9
  br label %1137

1116:                                             ; preds = %1097
  %1117 = landingpad { ptr, i32 }
          cleanup
  br label %1122

1118:                                             ; preds = %1105, %1103, %1100
  %1119 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #9
  br label %1122

1120:                                             ; preds = %2056, %2025, %1994, %1966, %1906, %1865, %1771, %1766, %1727, %1633, %1628, %1597, %1566, %1535, %1504, %1476, %1400, %1359, %1265, %1260, %1229, %1198, %1167, %1136, %1106
  %1121 = landingpad { ptr, i32 }
          cleanup
  br label %2063

1122:                                             ; preds = %1118, %1116
  %.pn240 = phi { ptr, i32 } [ %1119, %1118 ], [ %1117, %1116 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1123:                                             ; preds = %1107
  %1124 = landingpad { ptr, i32 }
          catch ptr null
  br label %1127

1125:                                             ; preds = %1114, %1112, %1109
  %1126 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #9
  br label %1127

1127:                                             ; preds = %1125, %1123
  %.pn242 = phi { ptr, i32 } [ %1126, %1125 ], [ %1124, %1123 ]
  %.81117 = extractvalue { ptr, i32 } %.pn242, 0
  %1128 = call ptr @__cxa_begin_catch(ptr %.81117) #9
  %1129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1130 unwind label %1149

1130:                                             ; preds = %1127
  %1131 = load ptr, ptr %1129, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #9
  %1132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1133 unwind label %1151

1133:                                             ; preds = %1130
  %1134 = load ptr, ptr %1132, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef nonnull align 8 dereferenceable(30) %1134, i32 noundef 1305)
          to label %1135 unwind label %1151

1135:                                             ; preds = %1133
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1131, ptr noundef nonnull align 8 dereferenceable(30) %135, ptr noundef nonnull @.str.292)
          to label %1136 unwind label %1151

1136:                                             ; preds = %1135
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #9
  invoke void @__cxa_end_catch()
          to label %1137 unwind label %1120

1137:                                             ; preds = %1115, %1136
  %1138 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.293)
  %1139 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1138)
  br i1 %1139, label %1168, label %1140

1140:                                             ; preds = %1137
  %1141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1142 unwind label %1154

1142:                                             ; preds = %1140
  %1143 = load ptr, ptr %1141, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #9
  %1144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1145 unwind label %1156

1145:                                             ; preds = %1142
  %1146 = load ptr, ptr %1144, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef nonnull align 8 dereferenceable(30) %1146, i32 noundef 1306)
          to label %1147 unwind label %1156

1147:                                             ; preds = %1145
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1143, ptr noundef nonnull align 8 dereferenceable(30) %136, ptr noundef nonnull @.str.294)
          to label %1148 unwind label %1156

1148:                                             ; preds = %1147
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #9
  br label %1168

1149:                                             ; preds = %1127
  %1150 = landingpad { ptr, i32 }
          cleanup
  br label %1153

1151:                                             ; preds = %1135, %1133, %1130
  %1152 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #9
  br label %1153

1153:                                             ; preds = %1151, %1149
  %.pn243 = phi { ptr, i32 } [ %1152, %1151 ], [ %1150, %1149 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1154:                                             ; preds = %1140
  %1155 = landingpad { ptr, i32 }
          catch ptr null
  br label %1158

1156:                                             ; preds = %1147, %1145, %1142
  %1157 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #9
  br label %1158

1158:                                             ; preds = %1156, %1154
  %.pn245 = phi { ptr, i32 } [ %1157, %1156 ], [ %1155, %1154 ]
  %.83119 = extractvalue { ptr, i32 } %.pn245, 0
  %1159 = call ptr @__cxa_begin_catch(ptr %.83119) #9
  %1160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1161 unwind label %1180

1161:                                             ; preds = %1158
  %1162 = load ptr, ptr %1160, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #9
  %1163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1164 unwind label %1182

1164:                                             ; preds = %1161
  %1165 = load ptr, ptr %1163, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %137, ptr noundef nonnull align 8 dereferenceable(30) %1165, i32 noundef 1306)
          to label %1166 unwind label %1182

1166:                                             ; preds = %1164
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1162, ptr noundef nonnull align 8 dereferenceable(30) %137, ptr noundef nonnull @.str.295)
          to label %1167 unwind label %1182

1167:                                             ; preds = %1166
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #9
  invoke void @__cxa_end_catch()
          to label %1168 unwind label %1120

1168:                                             ; preds = %1137, %1148, %1167
  %1169 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.296)
  %1170 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1169)
  br i1 %1170, label %1199, label %1171

1171:                                             ; preds = %1168
  %1172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1173 unwind label %1185

1173:                                             ; preds = %1171
  %1174 = load ptr, ptr %1172, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #9
  %1175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1176 unwind label %1187

1176:                                             ; preds = %1173
  %1177 = load ptr, ptr %1175, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull align 8 dereferenceable(30) %1177, i32 noundef 1307)
          to label %1178 unwind label %1187

1178:                                             ; preds = %1176
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1174, ptr noundef nonnull align 8 dereferenceable(30) %138, ptr noundef nonnull @.str.297)
          to label %1179 unwind label %1187

1179:                                             ; preds = %1178
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #9
  br label %1199

1180:                                             ; preds = %1158
  %1181 = landingpad { ptr, i32 }
          cleanup
  br label %1184

1182:                                             ; preds = %1166, %1164, %1161
  %1183 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #9
  br label %1184

1184:                                             ; preds = %1182, %1180
  %.pn246 = phi { ptr, i32 } [ %1183, %1182 ], [ %1181, %1180 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1185:                                             ; preds = %1171
  %1186 = landingpad { ptr, i32 }
          catch ptr null
  br label %1189

1187:                                             ; preds = %1178, %1176, %1173
  %1188 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #9
  br label %1189

1189:                                             ; preds = %1187, %1185
  %.pn248 = phi { ptr, i32 } [ %1188, %1187 ], [ %1186, %1185 ]
  %.85121 = extractvalue { ptr, i32 } %.pn248, 0
  %1190 = call ptr @__cxa_begin_catch(ptr %.85121) #9
  %1191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1192 unwind label %1211

1192:                                             ; preds = %1189
  %1193 = load ptr, ptr %1191, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #9
  %1194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1195 unwind label %1213

1195:                                             ; preds = %1192
  %1196 = load ptr, ptr %1194, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull align 8 dereferenceable(30) %1196, i32 noundef 1307)
          to label %1197 unwind label %1213

1197:                                             ; preds = %1195
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1193, ptr noundef nonnull align 8 dereferenceable(30) %139, ptr noundef nonnull @.str.298)
          to label %1198 unwind label %1213

1198:                                             ; preds = %1197
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #9
  invoke void @__cxa_end_catch()
          to label %1199 unwind label %1120

1199:                                             ; preds = %1168, %1179, %1198
  %1200 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.299)
  %1201 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1200)
  br i1 %1201, label %1230, label %1202

1202:                                             ; preds = %1199
  %1203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1204 unwind label %1216

1204:                                             ; preds = %1202
  %1205 = load ptr, ptr %1203, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #9
  %1206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1207 unwind label %1218

1207:                                             ; preds = %1204
  %1208 = load ptr, ptr %1206, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %140, ptr noundef nonnull align 8 dereferenceable(30) %1208, i32 noundef 1308)
          to label %1209 unwind label %1218

1209:                                             ; preds = %1207
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1205, ptr noundef nonnull align 8 dereferenceable(30) %140, ptr noundef nonnull @.str.300)
          to label %1210 unwind label %1218

1210:                                             ; preds = %1209
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #9
  br label %1230

1211:                                             ; preds = %1189
  %1212 = landingpad { ptr, i32 }
          cleanup
  br label %1215

1213:                                             ; preds = %1197, %1195, %1192
  %1214 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #9
  br label %1215

1215:                                             ; preds = %1213, %1211
  %.pn249 = phi { ptr, i32 } [ %1214, %1213 ], [ %1212, %1211 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1216:                                             ; preds = %1202
  %1217 = landingpad { ptr, i32 }
          catch ptr null
  br label %1220

1218:                                             ; preds = %1209, %1207, %1204
  %1219 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #9
  br label %1220

1220:                                             ; preds = %1218, %1216
  %.pn251 = phi { ptr, i32 } [ %1219, %1218 ], [ %1217, %1216 ]
  %.87123 = extractvalue { ptr, i32 } %.pn251, 0
  %1221 = call ptr @__cxa_begin_catch(ptr %.87123) #9
  %1222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1223 unwind label %1242

1223:                                             ; preds = %1220
  %1224 = load ptr, ptr %1222, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #9
  %1225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1226 unwind label %1244

1226:                                             ; preds = %1223
  %1227 = load ptr, ptr %1225, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef nonnull align 8 dereferenceable(30) %1227, i32 noundef 1308)
          to label %1228 unwind label %1244

1228:                                             ; preds = %1226
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1224, ptr noundef nonnull align 8 dereferenceable(30) %141, ptr noundef nonnull @.str.301)
          to label %1229 unwind label %1244

1229:                                             ; preds = %1228
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  invoke void @__cxa_end_catch()
          to label %1230 unwind label %1120

1230:                                             ; preds = %1199, %1210, %1229
  %1231 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.302)
  %1232 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1231)
  br i1 %1232, label %1261, label %1233

1233:                                             ; preds = %1230
  %1234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1235 unwind label %1247

1235:                                             ; preds = %1233
  %1236 = load ptr, ptr %1234, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #9
  %1237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1238 unwind label %1249

1238:                                             ; preds = %1235
  %1239 = load ptr, ptr %1237, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef nonnull align 8 dereferenceable(30) %1239, i32 noundef 1309)
          to label %1240 unwind label %1249

1240:                                             ; preds = %1238
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1236, ptr noundef nonnull align 8 dereferenceable(30) %142, ptr noundef nonnull @.str.303)
          to label %1241 unwind label %1249

1241:                                             ; preds = %1240
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #9
  br label %1261

1242:                                             ; preds = %1220
  %1243 = landingpad { ptr, i32 }
          cleanup
  br label %1246

1244:                                             ; preds = %1228, %1226, %1223
  %1245 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  br label %1246

1246:                                             ; preds = %1244, %1242
  %.pn252 = phi { ptr, i32 } [ %1245, %1244 ], [ %1243, %1242 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1247:                                             ; preds = %1233
  %1248 = landingpad { ptr, i32 }
          catch ptr null
  br label %1251

1249:                                             ; preds = %1240, %1238, %1235
  %1250 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #9
  br label %1251

1251:                                             ; preds = %1249, %1247
  %.pn254 = phi { ptr, i32 } [ %1250, %1249 ], [ %1248, %1247 ]
  %.89125 = extractvalue { ptr, i32 } %.pn254, 0
  %1252 = call ptr @__cxa_begin_catch(ptr %.89125) #9
  %1253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1254 unwind label %1304

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

1257:                                             ; preds = %1254
  %1258 = load ptr, ptr %1256, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %143, ptr noundef nonnull align 8 dereferenceable(30) %1258, i32 noundef 1309)
          to label %1259 unwind label %1306

1259:                                             ; preds = %1257
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1255, ptr noundef nonnull align 8 dereferenceable(30) %143, ptr noundef nonnull @.str.304)
          to label %1260 unwind label %1306

1260:                                             ; preds = %1259
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #9
  invoke void @__cxa_end_catch()
          to label %1261 unwind label %1120

1261:                                             ; preds = %1230, %1241, %1260
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %144) #9
  %1262 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %1263 unwind label %1309

1263:                                             ; preds = %1261
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1262)
          to label %1264 unwind label %1311

1264:                                             ; preds = %1263
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %144, ptr noundef nonnull %1262)
          to label %1265 unwind label %1309

1265:                                             ; preds = %1264
  %1266 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %144) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %144) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %144) #9
  %1267 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1268 = load ptr, ptr %1267, align 8, !tbaa !5
  %1269 = getelementptr inbounds i8, ptr %1268, i64 48
  %1270 = load ptr, ptr %1269, align 8
  invoke void %1270(ptr noundef nonnull align 8 dereferenceable(136) %1267)
          to label %1271 unwind label %1120

1271:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %145) #9
  %1272 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %1273 unwind label %1314

1273:                                             ; preds = %1271
  %1274 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %1275 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1276 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1272, ptr noundef %1274, ptr noundef %1275, ptr noundef %1276)
          to label %1277 unwind label %1316

1277:                                             ; preds = %1273
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef nonnull %1272)
          to label %1278 unwind label %1314

1278:                                             ; preds = %1277
  %1279 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %145) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %145) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.271)
          to label %1280 unwind label %1319

1280:                                             ; preds = %1278
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.272)
          to label %1281 unwind label %1321

1281:                                             ; preds = %1280
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %147, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull @.str.305)
          to label %1282 unwind label %1323

1282:                                             ; preds = %1281
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull @.str)
          to label %1283 unwind label %1325

1283:                                             ; preds = %1282
  %1284 = 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) %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %152, ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull @.str.282)
          to label %1285 unwind label %1330

1285:                                             ; preds = %1283
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @.str)
          to label %1286 unwind label %1332

1286:                                             ; preds = %1285
  %1287 = 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) %151) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  %1288 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %1289 unwind label %1335

1289:                                             ; preds = %1286
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1290 unwind label %1337

1290:                                             ; preds = %1289
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1291 unwind label %1339

1291:                                             ; preds = %1290
  %1292 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1288, ptr noundef nonnull %154)
          to label %1293 unwind label %1341

1293:                                             ; preds = %1291
  %1294 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1292)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #9
  br i1 %1294, label %1360, label %1295

1295:                                             ; preds = %1293
  %1296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1297 unwind label %1346

1297:                                             ; preds = %1295
  %1298 = load ptr, ptr %1296, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %157) #9
  %1299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1300 unwind label %1348

1300:                                             ; preds = %1297
  %1301 = load ptr, ptr %1299, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %157, ptr noundef nonnull align 8 dereferenceable(30) %1301, i32 noundef 1328)
          to label %1302 unwind label %1348

1302:                                             ; preds = %1300
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1298, ptr noundef nonnull align 8 dereferenceable(30) %157, ptr noundef nonnull @.str.192)
          to label %1303 unwind label %1348

1303:                                             ; preds = %1302
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #9
  br label %1360

1304:                                             ; preds = %1251
  %1305 = landingpad { ptr, i32 }
          cleanup
  br label %1308

1306:                                             ; preds = %1259, %1257, %1254
  %1307 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #9
  br label %1308

1308:                                             ; preds = %1306, %1304
  %.pn255 = phi { ptr, i32 } [ %1307, %1306 ], [ %1305, %1304 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1309:                                             ; preds = %1264, %1261
  %1310 = landingpad { ptr, i32 }
          cleanup
  br label %1313

1311:                                             ; preds = %1263
  %1312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1262, i64 noundef 144) #11
  br label %1313

1313:                                             ; preds = %1311, %1309
  %.pn257 = phi { ptr, i32 } [ %1310, %1309 ], [ %1312, %1311 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %144) #9
  br label %2063

1314:                                             ; preds = %1277, %1271
  %1315 = landingpad { ptr, i32 }
          cleanup
  br label %1318

1316:                                             ; preds = %1273
  %1317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1272, i64 noundef 96) #11
  br label %1318

1318:                                             ; preds = %1316, %1314
  %.pn259 = phi { ptr, i32 } [ %1315, %1314 ], [ %1317, %1316 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #9
  br label %2063

1319:                                             ; preds = %1278
  %1320 = landingpad { ptr, i32 }
          cleanup
  br label %1329

1321:                                             ; preds = %1280
  %1322 = landingpad { ptr, i32 }
          cleanup
  br label %1328

1323:                                             ; preds = %1281
  %1324 = landingpad { ptr, i32 }
          cleanup
  br label %1327

1325:                                             ; preds = %1282
  %1326 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  br label %1327

1327:                                             ; preds = %1325, %1323
  %.pn261 = phi { ptr, i32 } [ %1326, %1325 ], [ %1324, %1323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #9
  br label %1328

1328:                                             ; preds = %1327, %1321
  %.pn261.pn = phi { ptr, i32 } [ %.pn261, %1327 ], [ %1322, %1321 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  br label %1329

1329:                                             ; preds = %1328, %1319
  %.pn261.pn.pn = phi { ptr, i32 } [ %.pn261.pn, %1328 ], [ %1320, %1319 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  br label %2063

1330:                                             ; preds = %1283
  %1331 = landingpad { ptr, i32 }
          cleanup
  br label %1334

1332:                                             ; preds = %1285
  %1333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #9
  br label %1334

1334:                                             ; preds = %1332, %1330
  %.pn265 = phi { ptr, i32 } [ %1333, %1332 ], [ %1331, %1330 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  br label %2063

1335:                                             ; preds = %1286
  %1336 = landingpad { ptr, i32 }
          catch ptr null
  br label %1345

1337:                                             ; preds = %1289
  %1338 = landingpad { ptr, i32 }
          catch ptr null
  br label %1344

1339:                                             ; preds = %1290
  %1340 = landingpad { ptr, i32 }
          catch ptr null
  br label %1343

1341:                                             ; preds = %1291
  %1342 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  br label %1343

1343:                                             ; preds = %1341, %1339
  %.pn267 = phi { ptr, i32 } [ %1342, %1341 ], [ %1340, %1339 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  br label %1344

1344:                                             ; preds = %1343, %1337
  %.pn267.pn = phi { ptr, i32 } [ %.pn267, %1343 ], [ %1338, %1337 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  br label %1345

1345:                                             ; preds = %1344, %1335
  %.pn267.pn.pn = phi { ptr, i32 } [ %.pn267.pn, %1344 ], [ %1336, %1335 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #9
  br label %1350

1346:                                             ; preds = %1295
  %1347 = landingpad { ptr, i32 }
          catch ptr null
  br label %1350

1348:                                             ; preds = %1302, %1300, %1297
  %1349 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #9
  br label %1350

1350:                                             ; preds = %1348, %1346, %1345
  %.pn268 = phi { ptr, i32 } [ %1349, %1348 ], [ %1347, %1346 ], [ %.pn267.pn.pn, %1345 ]
  %.100136 = extractvalue { ptr, i32 } %.pn268, 0
  %1351 = call ptr @__cxa_begin_catch(ptr %.100136) #9
  %1352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1353 unwind label %1380

1353:                                             ; preds = %1350
  %1354 = load ptr, ptr %1352, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #9
  %1355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1356 unwind label %1382

1356:                                             ; preds = %1353
  %1357 = load ptr, ptr %1355, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %158, ptr noundef nonnull align 8 dereferenceable(30) %1357, i32 noundef 1328)
          to label %1358 unwind label %1382

1358:                                             ; preds = %1356
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1354, ptr noundef nonnull align 8 dereferenceable(30) %158, ptr noundef nonnull @.str.193)
          to label %1359 unwind label %1382

1359:                                             ; preds = %1358
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #9
  invoke void @__cxa_end_catch()
          to label %1360 unwind label %1120

1360:                                             ; preds = %1293, %1303, %1359
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %159) #9
  %1361 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1362 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1363 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %1364 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1363)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %159, ptr noundef nonnull align 8 dereferenceable(136) %1361, ptr noundef %1362, ptr noundef nonnull %160, ptr noundef nonnull align 8 dereferenceable(24) %1364, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1365 unwind label %1385

1365:                                             ; preds = %1360
  %1366 = 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) %159) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %159) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %159) #9
  %1367 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1368 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1367) #9
  %1369 = icmp eq i64 %1368, 3
  %1370 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1369)
  br i1 %1370, label %1401, label %1371

1371:                                             ; preds = %1365
  %1372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1373 unwind label %1387

1373:                                             ; preds = %1371
  %1374 = load ptr, ptr %1372, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #9
  %1375 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1376 unwind label %1389

1376:                                             ; preds = %1373
  %1377 = load ptr, ptr %1375, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef nonnull align 8 dereferenceable(30) %1377, i32 noundef 1330)
          to label %1378 unwind label %1389

1378:                                             ; preds = %1376
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1374, ptr noundef nonnull align 8 dereferenceable(30) %161, ptr noundef nonnull @.str.289)
          to label %1379 unwind label %1389

1379:                                             ; preds = %1378
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #9
  br label %1401

1380:                                             ; preds = %1350
  %1381 = landingpad { ptr, i32 }
          cleanup
  br label %1384

1382:                                             ; preds = %1358, %1356, %1353
  %1383 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #9
  br label %1384

1384:                                             ; preds = %1382, %1380
  %.pn269 = phi { ptr, i32 } [ %1383, %1382 ], [ %1381, %1380 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1385:                                             ; preds = %1360
  %1386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %159) #9
  br label %2063

1387:                                             ; preds = %1371
  %1388 = landingpad { ptr, i32 }
          catch ptr null
  br label %1391

1389:                                             ; preds = %1378, %1376, %1373
  %1390 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #9
  br label %1391

1391:                                             ; preds = %1389, %1387
  %.pn271 = phi { ptr, i32 } [ %1390, %1389 ], [ %1388, %1387 ]
  %.102 = extractvalue { ptr, i32 } %.pn271, 0
  %1392 = call ptr @__cxa_begin_catch(ptr %.102) #9
  %1393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1394 unwind label %1446

1394:                                             ; preds = %1391
  %1395 = load ptr, ptr %1393, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #9
  %1396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1397 unwind label %1448

1397:                                             ; preds = %1394
  %1398 = load ptr, ptr %1396, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %162, ptr noundef nonnull align 8 dereferenceable(30) %1398, i32 noundef 1330)
          to label %1399 unwind label %1448

1399:                                             ; preds = %1397
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1395, ptr noundef nonnull align 8 dereferenceable(30) %162, ptr noundef nonnull @.str.290)
          to label %1400 unwind label %1448

1400:                                             ; preds = %1399
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #9
  invoke void @__cxa_end_catch()
          to label %1401 unwind label %1120

1401:                                             ; preds = %1365, %1379, %1400
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %163) #9
  %1402 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1403 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1402, i64 noundef 0) #9
  %1404 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1403) #9
  %1405 = getelementptr inbounds i8, ptr %1404, i64 24
  %1406 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1405) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr noundef nonnull align 8 dereferenceable(144) %1406)
          to label %1407 unwind label %1451

1407:                                             ; preds = %1401
  %1408 = 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) %163) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #9
  %1409 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1410 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1409, i64 noundef 0) #9
  %1411 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1410) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %164, ptr noundef nonnull align 8 dereferenceable(24) %1411, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1412 unwind label %1453

1412:                                             ; preds = %1407
  %1413 = 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) %164) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #9
  %1414 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1415 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1414, i64 noundef 1) #9
  %1416 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1415) #9
  %1417 = getelementptr inbounds i8, ptr %1416, i64 24
  %1418 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1417) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(144) %1418)
          to label %1419 unwind label %1455

1419:                                             ; preds = %1412
  %1420 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %165) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %166) #9
  %1421 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1422 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1421, i64 noundef 1) #9
  %1423 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1422) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(24) %1423, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1424 unwind label %1457

1424:                                             ; preds = %1419
  %1425 = 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) %166) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #9
  %1426 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1427 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1426, i64 noundef 2) #9
  %1428 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1427) #9
  %1429 = getelementptr inbounds i8, ptr %1428, i64 24
  %1430 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1429) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef nonnull align 8 dereferenceable(144) %1430)
          to label %1431 unwind label %1459

1431:                                             ; preds = %1424
  %1432 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %167) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %168) #9
  %1433 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1434 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1433, i64 noundef 2) #9
  %1435 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1434) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef nonnull align 8 dereferenceable(24) %1435, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1436 unwind label %1461

1436:                                             ; preds = %1431
  %1437 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull align 8 dereferenceable(32) %168) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #9
  %1438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1439 unwind label %1463

1439:                                             ; preds = %1436
  %1440 = load ptr, ptr %1438, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #9
  %1441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1442 unwind label %1465

1442:                                             ; preds = %1439
  %1443 = load ptr, ptr %1441, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %169, ptr noundef nonnull align 8 dereferenceable(30) %1443, i32 noundef 1337)
          to label %1444 unwind label %1465

1444:                                             ; preds = %1442
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA22_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1440, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(22) @.str.283, ptr noundef nonnull align 8 dereferenceable(30) %169)
          to label %1445 unwind label %1465

1445:                                             ; preds = %1444
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #9
  br label %1477

1446:                                             ; preds = %1391
  %1447 = landingpad { ptr, i32 }
          cleanup
  br label %1450

1448:                                             ; preds = %1399, %1397, %1394
  %1449 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #9
  br label %1450

1450:                                             ; preds = %1448, %1446
  %.pn272 = phi { ptr, i32 } [ %1449, %1448 ], [ %1447, %1446 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1451:                                             ; preds = %1401
  %1452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #9
  br label %2063

1453:                                             ; preds = %1407
  %1454 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #9
  br label %2063

1455:                                             ; preds = %1412
  %1456 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #9
  br label %2063

1457:                                             ; preds = %1419
  %1458 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #9
  br label %2063

1459:                                             ; preds = %1424
  %1460 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #9
  br label %2063

1461:                                             ; preds = %1431
  %1462 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #9
  br label %2063

1463:                                             ; preds = %1436
  %1464 = landingpad { ptr, i32 }
          catch ptr null
  br label %1467

1465:                                             ; preds = %1444, %1442, %1439
  %1466 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #9
  br label %1467

1467:                                             ; preds = %1465, %1463
  %.pn274 = phi { ptr, i32 } [ %1466, %1465 ], [ %1464, %1463 ]
  %.104 = extractvalue { ptr, i32 } %.pn274, 0
  %1468 = call ptr @__cxa_begin_catch(ptr %.104) #9
  %1469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1470 unwind label %1486

1470:                                             ; preds = %1467
  %1471 = load ptr, ptr %1469, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %170) #9
  %1472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1473 unwind label %1488

1473:                                             ; preds = %1470
  %1474 = load ptr, ptr %1472, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %170, ptr noundef nonnull align 8 dereferenceable(30) %1474, i32 noundef 1337)
          to label %1475 unwind label %1488

1475:                                             ; preds = %1473
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1471, ptr noundef nonnull align 8 dereferenceable(30) %170, ptr noundef nonnull @.str.284)
          to label %1476 unwind label %1488

1476:                                             ; preds = %1475
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %170) #9
  invoke void @__cxa_end_catch()
          to label %1477 unwind label %1120

1477:                                             ; preds = %1445, %1476
  %1478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1479 unwind label %1491

1479:                                             ; preds = %1477
  %1480 = load ptr, ptr %1478, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #9
  %1481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1482 unwind label %1493

1482:                                             ; preds = %1479
  %1483 = load ptr, ptr %1481, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %171, ptr noundef nonnull align 8 dereferenceable(30) %1483, i32 noundef 1338)
          to label %1484 unwind label %1493

1484:                                             ; preds = %1482
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA321_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1480, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(321) @.str.306, ptr noundef nonnull align 8 dereferenceable(30) %171)
          to label %1485 unwind label %1493

1485:                                             ; preds = %1484
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #9
  br label %1505

1486:                                             ; preds = %1467
  %1487 = landingpad { ptr, i32 }
          cleanup
  br label %1490

1488:                                             ; preds = %1475, %1473, %1470
  %1489 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %170) #9
  br label %1490

1490:                                             ; preds = %1488, %1486
  %.pn275 = phi { ptr, i32 } [ %1489, %1488 ], [ %1487, %1486 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1491:                                             ; preds = %1477
  %1492 = landingpad { ptr, i32 }
          catch ptr null
  br label %1495

1493:                                             ; preds = %1484, %1482, %1479
  %1494 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #9
  br label %1495

1495:                                             ; preds = %1493, %1491
  %.pn277 = phi { ptr, i32 } [ %1494, %1493 ], [ %1492, %1491 ]
  %.106 = extractvalue { ptr, i32 } %.pn277, 0
  %1496 = call ptr @__cxa_begin_catch(ptr %.106) #9
  %1497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1498 unwind label %1517

1498:                                             ; preds = %1495
  %1499 = load ptr, ptr %1497, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #9
  %1500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1501 unwind label %1519

1501:                                             ; preds = %1498
  %1502 = load ptr, ptr %1500, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %172, ptr noundef nonnull align 8 dereferenceable(30) %1502, i32 noundef 1338)
          to label %1503 unwind label %1519

1503:                                             ; preds = %1501
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1499, ptr noundef nonnull align 8 dereferenceable(30) %172, ptr noundef nonnull @.str.307)
          to label %1504 unwind label %1519

1504:                                             ; preds = %1503
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #9
  invoke void @__cxa_end_catch()
          to label %1505 unwind label %1120

1505:                                             ; preds = %1485, %1504
  %1506 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.308)
  %1507 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1506)
  br i1 %1507, label %1536, label %1508

1508:                                             ; preds = %1505
  %1509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1510 unwind label %1522

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

1513:                                             ; preds = %1510
  %1514 = load ptr, ptr %1512, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %173, ptr noundef nonnull align 8 dereferenceable(30) %1514, i32 noundef 1339)
          to label %1515 unwind label %1524

1515:                                             ; preds = %1513
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1511, ptr noundef nonnull align 8 dereferenceable(30) %173, ptr noundef nonnull @.str.309)
          to label %1516 unwind label %1524

1516:                                             ; preds = %1515
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #9
  br label %1536

1517:                                             ; preds = %1495
  %1518 = landingpad { ptr, i32 }
          cleanup
  br label %1521

1519:                                             ; preds = %1503, %1501, %1498
  %1520 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #9
  br label %1521

1521:                                             ; preds = %1519, %1517
  %.pn278 = phi { ptr, i32 } [ %1520, %1519 ], [ %1518, %1517 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1522:                                             ; preds = %1508
  %1523 = landingpad { ptr, i32 }
          catch ptr null
  br label %1526

1524:                                             ; preds = %1515, %1513, %1510
  %1525 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #9
  br label %1526

1526:                                             ; preds = %1524, %1522
  %.pn280 = phi { ptr, i32 } [ %1525, %1524 ], [ %1523, %1522 ]
  %.108 = extractvalue { ptr, i32 } %.pn280, 0
  %1527 = call ptr @__cxa_begin_catch(ptr %.108) #9
  %1528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1529 unwind label %1548

1529:                                             ; preds = %1526
  %1530 = load ptr, ptr %1528, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #9
  %1531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1532 unwind label %1550

1532:                                             ; preds = %1529
  %1533 = load ptr, ptr %1531, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %174, ptr noundef nonnull align 8 dereferenceable(30) %1533, i32 noundef 1339)
          to label %1534 unwind label %1550

1534:                                             ; preds = %1532
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1530, ptr noundef nonnull align 8 dereferenceable(30) %174, ptr noundef nonnull @.str.310)
          to label %1535 unwind label %1550

1535:                                             ; preds = %1534
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #9
  invoke void @__cxa_end_catch()
          to label %1536 unwind label %1120

1536:                                             ; preds = %1505, %1516, %1535
  %1537 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.311)
  %1538 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1537)
  br i1 %1538, label %1567, label %1539

1539:                                             ; preds = %1536
  %1540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1541 unwind label %1553

1541:                                             ; preds = %1539
  %1542 = load ptr, ptr %1540, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #9
  %1543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1544 unwind label %1555

1544:                                             ; preds = %1541
  %1545 = load ptr, ptr %1543, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef nonnull align 8 dereferenceable(30) %1545, i32 noundef 1340)
          to label %1546 unwind label %1555

1546:                                             ; preds = %1544
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1542, ptr noundef nonnull align 8 dereferenceable(30) %175, ptr noundef nonnull @.str.312)
          to label %1547 unwind label %1555

1547:                                             ; preds = %1546
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #9
  br label %1567

1548:                                             ; preds = %1526
  %1549 = landingpad { ptr, i32 }
          cleanup
  br label %1552

1550:                                             ; preds = %1534, %1532, %1529
  %1551 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #9
  br label %1552

1552:                                             ; preds = %1550, %1548
  %.pn281 = phi { ptr, i32 } [ %1551, %1550 ], [ %1549, %1548 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1553:                                             ; preds = %1539
  %1554 = landingpad { ptr, i32 }
          catch ptr null
  br label %1557

1555:                                             ; preds = %1546, %1544, %1541
  %1556 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #9
  br label %1557

1557:                                             ; preds = %1555, %1553
  %.pn283 = phi { ptr, i32 } [ %1556, %1555 ], [ %1554, %1553 ]
  %.110 = extractvalue { ptr, i32 } %.pn283, 0
  %1558 = call ptr @__cxa_begin_catch(ptr %.110) #9
  %1559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1560 unwind label %1579

1560:                                             ; preds = %1557
  %1561 = load ptr, ptr %1559, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #9
  %1562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1563 unwind label %1581

1563:                                             ; preds = %1560
  %1564 = load ptr, ptr %1562, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %176, ptr noundef nonnull align 8 dereferenceable(30) %1564, i32 noundef 1340)
          to label %1565 unwind label %1581

1565:                                             ; preds = %1563
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1561, ptr noundef nonnull align 8 dereferenceable(30) %176, ptr noundef nonnull @.str.313)
          to label %1566 unwind label %1581

1566:                                             ; preds = %1565
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #9
  invoke void @__cxa_end_catch()
          to label %1567 unwind label %1120

1567:                                             ; preds = %1536, %1547, %1566
  %1568 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.314)
  %1569 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1568)
  br i1 %1569, label %1598, label %1570

1570:                                             ; preds = %1567
  %1571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1572 unwind label %1584

1572:                                             ; preds = %1570
  %1573 = load ptr, ptr %1571, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %177) #9
  %1574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1575 unwind label %1586

1575:                                             ; preds = %1572
  %1576 = load ptr, ptr %1574, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %177, ptr noundef nonnull align 8 dereferenceable(30) %1576, i32 noundef 1341)
          to label %1577 unwind label %1586

1577:                                             ; preds = %1575
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1573, ptr noundef nonnull align 8 dereferenceable(30) %177, ptr noundef nonnull @.str.315)
          to label %1578 unwind label %1586

1578:                                             ; preds = %1577
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #9
  br label %1598

1579:                                             ; preds = %1557
  %1580 = landingpad { ptr, i32 }
          cleanup
  br label %1583

1581:                                             ; preds = %1565, %1563, %1560
  %1582 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #9
  br label %1583

1583:                                             ; preds = %1581, %1579
  %.pn284 = phi { ptr, i32 } [ %1582, %1581 ], [ %1580, %1579 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1584:                                             ; preds = %1570
  %1585 = landingpad { ptr, i32 }
          catch ptr null
  br label %1588

1586:                                             ; preds = %1577, %1575, %1572
  %1587 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #9
  br label %1588

1588:                                             ; preds = %1586, %1584
  %.pn286 = phi { ptr, i32 } [ %1587, %1586 ], [ %1585, %1584 ]
  %.112 = extractvalue { ptr, i32 } %.pn286, 0
  %1589 = call ptr @__cxa_begin_catch(ptr %.112) #9
  %1590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1591 unwind label %1610

1591:                                             ; preds = %1588
  %1592 = load ptr, ptr %1590, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #9
  %1593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1594 unwind label %1612

1594:                                             ; preds = %1591
  %1595 = load ptr, ptr %1593, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %178, ptr noundef nonnull align 8 dereferenceable(30) %1595, i32 noundef 1341)
          to label %1596 unwind label %1612

1596:                                             ; preds = %1594
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1592, ptr noundef nonnull align 8 dereferenceable(30) %178, ptr noundef nonnull @.str.316)
          to label %1597 unwind label %1612

1597:                                             ; preds = %1596
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #9
  invoke void @__cxa_end_catch()
          to label %1598 unwind label %1120

1598:                                             ; preds = %1567, %1578, %1597
  %1599 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.317)
  %1600 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1599)
  br i1 %1600, label %1629, label %1601

1601:                                             ; preds = %1598
  %1602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1603 unwind label %1615

1603:                                             ; preds = %1601
  %1604 = load ptr, ptr %1602, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #9
  %1605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1606 unwind label %1617

1606:                                             ; preds = %1603
  %1607 = load ptr, ptr %1605, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %179, ptr noundef nonnull align 8 dereferenceable(30) %1607, i32 noundef 1342)
          to label %1608 unwind label %1617

1608:                                             ; preds = %1606
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1604, ptr noundef nonnull align 8 dereferenceable(30) %179, ptr noundef nonnull @.str.318)
          to label %1609 unwind label %1617

1609:                                             ; preds = %1608
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #9
  br label %1629

1610:                                             ; preds = %1588
  %1611 = landingpad { ptr, i32 }
          cleanup
  br label %1614

1612:                                             ; preds = %1596, %1594, %1591
  %1613 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #9
  br label %1614

1614:                                             ; preds = %1612, %1610
  %.pn287 = phi { ptr, i32 } [ %1613, %1612 ], [ %1611, %1610 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1615:                                             ; preds = %1601
  %1616 = landingpad { ptr, i32 }
          catch ptr null
  br label %1619

1617:                                             ; preds = %1608, %1606, %1603
  %1618 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #9
  br label %1619

1619:                                             ; preds = %1617, %1615
  %.pn289 = phi { ptr, i32 } [ %1618, %1617 ], [ %1616, %1615 ]
  %.114 = extractvalue { ptr, i32 } %.pn289, 0
  %1620 = call ptr @__cxa_begin_catch(ptr %.114) #9
  %1621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1622 unwind label %1672

1622:                                             ; preds = %1619
  %1623 = load ptr, ptr %1621, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #9
  %1624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1625 unwind label %1674

1625:                                             ; preds = %1622
  %1626 = load ptr, ptr %1624, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %180, ptr noundef nonnull align 8 dereferenceable(30) %1626, i32 noundef 1342)
          to label %1627 unwind label %1674

1627:                                             ; preds = %1625
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1623, ptr noundef nonnull align 8 dereferenceable(30) %180, ptr noundef nonnull @.str.319)
          to label %1628 unwind label %1674

1628:                                             ; preds = %1627
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #9
  invoke void @__cxa_end_catch()
          to label %1629 unwind label %1120

1629:                                             ; preds = %1598, %1609, %1628
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %181) #9
  %1630 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %1631 unwind label %1677

1631:                                             ; preds = %1629
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1630)
          to label %1632 unwind label %1679

1632:                                             ; preds = %1631
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull %1630)
          to label %1633 unwind label %1677

1633:                                             ; preds = %1632
  %1634 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %181) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %181) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %181) #9
  %1635 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1636 = load ptr, ptr %1635, align 8, !tbaa !5
  %1637 = getelementptr inbounds i8, ptr %1636, i64 48
  %1638 = load ptr, ptr %1637, align 8
  invoke void %1638(ptr noundef nonnull align 8 dereferenceable(136) %1635)
          to label %1639 unwind label %1120

1639:                                             ; preds = %1633
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %182) #9
  %1640 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %1641 unwind label %1682

1641:                                             ; preds = %1639
  %1642 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %1643 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1644 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1640, ptr noundef %1642, ptr noundef %1643, ptr noundef %1644)
          to label %1645 unwind label %1684

1645:                                             ; preds = %1641
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull %1640)
          to label %1646 unwind label %1682

1646:                                             ; preds = %1645
  %1647 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %182) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %182) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %186) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %187) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull @.str.271)
          to label %1648 unwind label %1687

1648:                                             ; preds = %1646
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull @.str.272)
          to label %1649 unwind label %1689

1649:                                             ; preds = %1648
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %184, ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull @.str.281)
          to label %1650 unwind label %1691

1650:                                             ; preds = %1649
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %183, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull @.str)
          to label %1651 unwind label %1693

1651:                                             ; preds = %1650
  %1652 = 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) %183) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %188) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %189) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %189, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull @.str.320)
          to label %1653 unwind label %1698

1653:                                             ; preds = %1651
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull @.str)
          to label %1654 unwind label %1700

1654:                                             ; preds = %1653
  %1655 = 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) %188) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #9
  %1656 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %193) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %193, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %1657 unwind label %1703

1657:                                             ; preds = %1654
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1658 unwind label %1705

1658:                                             ; preds = %1657
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %191, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1659 unwind label %1707

1659:                                             ; preds = %1658
  %1660 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1656, ptr noundef nonnull %191)
          to label %1661 unwind label %1709

1661:                                             ; preds = %1659
  %1662 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1660)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #9
  br i1 %1662, label %1728, label %1663

1663:                                             ; preds = %1661
  %1664 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1665 unwind label %1714

1665:                                             ; preds = %1663
  %1666 = load ptr, ptr %1664, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #9
  %1667 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1668 unwind label %1716

1668:                                             ; preds = %1665
  %1669 = load ptr, ptr %1667, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %194, ptr noundef nonnull align 8 dereferenceable(30) %1669, i32 noundef 1362)
          to label %1670 unwind label %1716

1670:                                             ; preds = %1668
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1666, ptr noundef nonnull align 8 dereferenceable(30) %194, ptr noundef nonnull @.str.192)
          to label %1671 unwind label %1716

1671:                                             ; preds = %1670
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #9
  br label %1728

1672:                                             ; preds = %1619
  %1673 = landingpad { ptr, i32 }
          cleanup
  br label %1676

1674:                                             ; preds = %1627, %1625, %1622
  %1675 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #9
  br label %1676

1676:                                             ; preds = %1674, %1672
  %.pn290 = phi { ptr, i32 } [ %1675, %1674 ], [ %1673, %1672 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1677:                                             ; preds = %1632, %1629
  %1678 = landingpad { ptr, i32 }
          cleanup
  br label %1681

1679:                                             ; preds = %1631
  %1680 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1630, i64 noundef 144) #11
  br label %1681

1681:                                             ; preds = %1679, %1677
  %.pn292 = phi { ptr, i32 } [ %1678, %1677 ], [ %1680, %1679 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %181) #9
  br label %2063

1682:                                             ; preds = %1645, %1639
  %1683 = landingpad { ptr, i32 }
          cleanup
  br label %1686

1684:                                             ; preds = %1641
  %1685 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1640, i64 noundef 96) #11
  br label %1686

1686:                                             ; preds = %1684, %1682
  %.pn294 = phi { ptr, i32 } [ %1683, %1682 ], [ %1685, %1684 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #9
  br label %2063

1687:                                             ; preds = %1646
  %1688 = landingpad { ptr, i32 }
          cleanup
  br label %1697

1689:                                             ; preds = %1648
  %1690 = landingpad { ptr, i32 }
          cleanup
  br label %1696

1691:                                             ; preds = %1649
  %1692 = landingpad { ptr, i32 }
          cleanup
  br label %1695

1693:                                             ; preds = %1650
  %1694 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #9
  br label %1695

1695:                                             ; preds = %1693, %1691
  %.pn296 = phi { ptr, i32 } [ %1694, %1693 ], [ %1692, %1691 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  br label %1696

1696:                                             ; preds = %1695, %1689
  %.pn296.pn = phi { ptr, i32 } [ %.pn296, %1695 ], [ %1690, %1689 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  br label %1697

1697:                                             ; preds = %1696, %1687
  %.pn296.pn.pn = phi { ptr, i32 } [ %.pn296.pn, %1696 ], [ %1688, %1687 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #9
  br label %2063

1698:                                             ; preds = %1651
  %1699 = landingpad { ptr, i32 }
          cleanup
  br label %1702

1700:                                             ; preds = %1653
  %1701 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  br label %1702

1702:                                             ; preds = %1700, %1698
  %.pn300 = phi { ptr, i32 } [ %1701, %1700 ], [ %1699, %1698 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #9
  br label %2063

1703:                                             ; preds = %1654
  %1704 = landingpad { ptr, i32 }
          catch ptr null
  br label %1713

1705:                                             ; preds = %1657
  %1706 = landingpad { ptr, i32 }
          catch ptr null
  br label %1712

1707:                                             ; preds = %1658
  %1708 = landingpad { ptr, i32 }
          catch ptr null
  br label %1711

1709:                                             ; preds = %1659
  %1710 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  br label %1711

1711:                                             ; preds = %1709, %1707
  %.pn302 = phi { ptr, i32 } [ %1710, %1709 ], [ %1708, %1707 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1712

1712:                                             ; preds = %1711, %1705
  %.pn302.pn = phi { ptr, i32 } [ %.pn302, %1711 ], [ %1706, %1705 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  br label %1713

1713:                                             ; preds = %1712, %1703
  %.pn302.pn.pn = phi { ptr, i32 } [ %.pn302.pn, %1712 ], [ %1704, %1703 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #9
  br label %1718

1714:                                             ; preds = %1663
  %1715 = landingpad { ptr, i32 }
          catch ptr null
  br label %1718

1716:                                             ; preds = %1670, %1668, %1665
  %1717 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #9
  br label %1718

1718:                                             ; preds = %1716, %1714, %1713
  %.pn303 = phi { ptr, i32 } [ %1717, %1716 ], [ %1715, %1714 ], [ %.pn302.pn.pn, %1713 ]
  %.125 = extractvalue { ptr, i32 } %.pn303, 0
  %1719 = call ptr @__cxa_begin_catch(ptr %.125) #9
  %1720 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1721 unwind label %1746

1721:                                             ; preds = %1718
  %1722 = load ptr, ptr %1720, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #9
  %1723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1724 unwind label %1748

1724:                                             ; preds = %1721
  %1725 = load ptr, ptr %1723, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %195, ptr noundef nonnull align 8 dereferenceable(30) %1725, i32 noundef 1362)
          to label %1726 unwind label %1748

1726:                                             ; preds = %1724
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1722, ptr noundef nonnull align 8 dereferenceable(30) %195, ptr noundef nonnull @.str.193)
          to label %1727 unwind label %1748

1727:                                             ; preds = %1726
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #9
  invoke void @__cxa_end_catch()
          to label %1728 unwind label %1120

1728:                                             ; preds = %1661, %1671, %1727
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %196) #9
  %1729 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1730 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1731 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %1732 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1731)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %196, ptr noundef nonnull align 8 dereferenceable(136) %1729, ptr noundef %1730, ptr noundef nonnull %197, ptr noundef nonnull align 8 dereferenceable(24) %1732, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1733 unwind label %1751

1733:                                             ; preds = %1728
  %1734 = 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) %196) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %196) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %197) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #9
  %1735 = call noundef zeroext i1 @_ZSteqISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EEEbRKS1_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr null) #9
  %1736 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1735)
  br i1 %1736, label %1767, label %1737

1737:                                             ; preds = %1733
  %1738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1739 unwind label %1753

1739:                                             ; preds = %1737
  %1740 = load ptr, ptr %1738, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #9
  %1741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1742 unwind label %1755

1742:                                             ; preds = %1739
  %1743 = load ptr, ptr %1741, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef nonnull align 8 dereferenceable(30) %1743, i32 noundef 1364)
          to label %1744 unwind label %1755

1744:                                             ; preds = %1742
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1740, ptr noundef nonnull align 8 dereferenceable(30) %198, ptr noundef nonnull @.str.287)
          to label %1745 unwind label %1755

1745:                                             ; preds = %1744
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #9
  br label %1767

1746:                                             ; preds = %1718
  %1747 = landingpad { ptr, i32 }
          cleanup
  br label %1750

1748:                                             ; preds = %1726, %1724, %1721
  %1749 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #9
  br label %1750

1750:                                             ; preds = %1748, %1746
  %.pn304 = phi { ptr, i32 } [ %1749, %1748 ], [ %1747, %1746 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1751:                                             ; preds = %1728
  %1752 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %197) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #9
  br label %2063

1753:                                             ; preds = %1737
  %1754 = landingpad { ptr, i32 }
          catch ptr null
  br label %1757

1755:                                             ; preds = %1744, %1742, %1739
  %1756 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #9
  br label %1757

1757:                                             ; preds = %1755, %1753
  %.pn306 = phi { ptr, i32 } [ %1756, %1755 ], [ %1754, %1753 ]
  %.127 = extractvalue { ptr, i32 } %.pn306, 0
  %1758 = call ptr @__cxa_begin_catch(ptr %.127) #9
  %1759 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1760 unwind label %1810

1760:                                             ; preds = %1757
  %1761 = load ptr, ptr %1759, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %199) #9
  %1762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1763 unwind label %1812

1763:                                             ; preds = %1760
  %1764 = load ptr, ptr %1762, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %199, ptr noundef nonnull align 8 dereferenceable(30) %1764, i32 noundef 1364)
          to label %1765 unwind label %1812

1765:                                             ; preds = %1763
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1761, ptr noundef nonnull align 8 dereferenceable(30) %199, ptr noundef nonnull @.str.288)
          to label %1766 unwind label %1812

1766:                                             ; preds = %1765
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #9
  invoke void @__cxa_end_catch()
          to label %1767 unwind label %1120

1767:                                             ; preds = %1733, %1745, %1766
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %200) #9
  %1768 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %1769 unwind label %1815

1769:                                             ; preds = %1767
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %1768)
          to label %1770 unwind label %1817

1770:                                             ; preds = %1769
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull %1768)
          to label %1771 unwind label %1815

1771:                                             ; preds = %1770
  %1772 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI10HtnRuleSetEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %200) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %200) #9
  %1773 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1774 = load ptr, ptr %1773, align 8, !tbaa !5
  %1775 = getelementptr inbounds i8, ptr %1774, i64 48
  %1776 = load ptr, ptr %1775, align 8
  invoke void %1776(ptr noundef nonnull align 8 dereferenceable(136) %1773)
          to label %1777 unwind label %1120

1777:                                             ; preds = %1771
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %201) #9
  %1778 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %1779 unwind label %1820

1779:                                             ; preds = %1777
  %1780 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %1781 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1782 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEEC2EP14HtnTermFactoryP10HtnRuleSetP9HtnDomain(ptr noundef nonnull align 8 dereferenceable(96) %1778, ptr noundef %1780, ptr noundef %1781, ptr noundef %1782)
          to label %1783 unwind label %1822

1783:                                             ; preds = %1779
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %201, ptr noundef nonnull %1778)
          to label %1784 unwind label %1820

1784:                                             ; preds = %1783
  %1785 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %201) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %201) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %206) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %205, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull @.str.271)
          to label %1786 unwind label %1825

1786:                                             ; preds = %1784
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull @.str.272)
          to label %1787 unwind label %1827

1787:                                             ; preds = %1786
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %203, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull @.str.273)
          to label %1788 unwind label %1829

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

1789:                                             ; preds = %1788
  %1790 = 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) %202) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %207) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %209) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull @.str.320)
          to label %1791 unwind label %1836

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

1792:                                             ; preds = %1791
  %1793 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #9
  %1794 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %211) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %212) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %212, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %1795 unwind label %1841

1795:                                             ; preds = %1792
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %211, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1796 unwind label %1843

1796:                                             ; preds = %1795
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1797 unwind label %1845

1797:                                             ; preds = %1796
  %1798 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1794, ptr noundef nonnull %210)
          to label %1799 unwind label %1847

1799:                                             ; preds = %1797
  %1800 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1798)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #9
  br i1 %1800, label %1866, label %1801

1801:                                             ; preds = %1799
  %1802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1803 unwind label %1852

1803:                                             ; preds = %1801
  %1804 = load ptr, ptr %1802, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %213) #9
  %1805 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1806 unwind label %1854

1806:                                             ; preds = %1803
  %1807 = load ptr, ptr %1805, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %213, ptr noundef nonnull align 8 dereferenceable(30) %1807, i32 noundef 1383)
          to label %1808 unwind label %1854

1808:                                             ; preds = %1806
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1804, ptr noundef nonnull align 8 dereferenceable(30) %213, ptr noundef nonnull @.str.192)
          to label %1809 unwind label %1854

1809:                                             ; preds = %1808
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #9
  br label %1866

1810:                                             ; preds = %1757
  %1811 = landingpad { ptr, i32 }
          cleanup
  br label %1814

1812:                                             ; preds = %1765, %1763, %1760
  %1813 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #9
  br label %1814

1814:                                             ; preds = %1812, %1810
  %.pn307 = phi { ptr, i32 } [ %1813, %1812 ], [ %1811, %1810 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1815:                                             ; preds = %1770, %1767
  %1816 = landingpad { ptr, i32 }
          cleanup
  br label %1819

1817:                                             ; preds = %1769
  %1818 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1768, i64 noundef 144) #11
  br label %1819

1819:                                             ; preds = %1817, %1815
  %.pn309 = phi { ptr, i32 } [ %1816, %1815 ], [ %1818, %1817 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %200) #9
  br label %2063

1820:                                             ; preds = %1783, %1777
  %1821 = landingpad { ptr, i32 }
          cleanup
  br label %1824

1822:                                             ; preds = %1779
  %1823 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1778, i64 noundef 96) #11
  br label %1824

1824:                                             ; preds = %1822, %1820
  %.pn311 = phi { ptr, i32 } [ %1821, %1820 ], [ %1823, %1822 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %201) #9
  br label %2063

1825:                                             ; preds = %1784
  %1826 = landingpad { ptr, i32 }
          cleanup
  br label %1835

1827:                                             ; preds = %1786
  %1828 = landingpad { ptr, i32 }
          cleanup
  br label %1834

1829:                                             ; preds = %1787
  %1830 = landingpad { ptr, i32 }
          cleanup
  br label %1833

1831:                                             ; preds = %1788
  %1832 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #9
  br label %1833

1833:                                             ; preds = %1831, %1829
  %.pn313 = phi { ptr, i32 } [ %1832, %1831 ], [ %1830, %1829 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #9
  br label %1834

1834:                                             ; preds = %1833, %1827
  %.pn313.pn = phi { ptr, i32 } [ %.pn313, %1833 ], [ %1828, %1827 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  br label %1835

1835:                                             ; preds = %1834, %1825
  %.pn313.pn.pn = phi { ptr, i32 } [ %.pn313.pn, %1834 ], [ %1826, %1825 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #9
  br label %2063

1836:                                             ; preds = %1789
  %1837 = landingpad { ptr, i32 }
          cleanup
  br label %1840

1838:                                             ; preds = %1791
  %1839 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  br label %1840

1840:                                             ; preds = %1838, %1836
  %.pn317 = phi { ptr, i32 } [ %1839, %1838 ], [ %1837, %1836 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #9
  br label %2063

1841:                                             ; preds = %1792
  %1842 = landingpad { ptr, i32 }
          catch ptr null
  br label %1851

1843:                                             ; preds = %1795
  %1844 = landingpad { ptr, i32 }
          catch ptr null
  br label %1850

1845:                                             ; preds = %1796
  %1846 = landingpad { ptr, i32 }
          catch ptr null
  br label %1849

1847:                                             ; preds = %1797
  %1848 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  br label %1849

1849:                                             ; preds = %1847, %1845
  %.pn319 = phi { ptr, i32 } [ %1848, %1847 ], [ %1846, %1845 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #9
  br label %1850

1850:                                             ; preds = %1849, %1843
  %.pn319.pn = phi { ptr, i32 } [ %.pn319, %1849 ], [ %1844, %1843 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  br label %1851

1851:                                             ; preds = %1850, %1841
  %.pn319.pn.pn = phi { ptr, i32 } [ %.pn319.pn, %1850 ], [ %1842, %1841 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #9
  br label %1856

1852:                                             ; preds = %1801
  %1853 = landingpad { ptr, i32 }
          catch ptr null
  br label %1856

1854:                                             ; preds = %1808, %1806, %1803
  %1855 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #9
  br label %1856

1856:                                             ; preds = %1854, %1852, %1851
  %.pn320 = phi { ptr, i32 } [ %1855, %1854 ], [ %1853, %1852 ], [ %.pn319.pn.pn, %1851 ]
  %.138 = extractvalue { ptr, i32 } %.pn320, 0
  %1857 = call ptr @__cxa_begin_catch(ptr %.138) #9
  %1858 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1859 unwind label %1886

1859:                                             ; preds = %1856
  %1860 = load ptr, ptr %1858, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #9
  %1861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1862 unwind label %1888

1862:                                             ; preds = %1859
  %1863 = load ptr, ptr %1861, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %214, ptr noundef nonnull align 8 dereferenceable(30) %1863, i32 noundef 1383)
          to label %1864 unwind label %1888

1864:                                             ; preds = %1862
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1860, ptr noundef nonnull align 8 dereferenceable(30) %214, ptr noundef nonnull @.str.193)
          to label %1865 unwind label %1888

1865:                                             ; preds = %1864
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #9
  invoke void @__cxa_end_catch()
          to label %1866 unwind label %1120

1866:                                             ; preds = %1799, %1809, %1865
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %215) #9
  %1867 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %1868 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @_ZNSt10shared_ptrI10HtnRuleSetEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %1869 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %1870 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN18PrologCompilerBaseIN6Prolog11HtnVariableEE5goalsEv(ptr noundef nonnull align 8 dereferenceable(88) %1869)
  invoke void @_ZN10HtnPlanner12FindAllPlansEP14HtnTermFactorySt10shared_ptrI10HtnRuleSetERKSt6vectorIS2_I7HtnTermESaIS7_EEiPlPiPS9_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.76") align 8 %215, ptr noundef nonnull align 8 dereferenceable(136) %1867, ptr noundef %1868, ptr noundef nonnull %216, ptr noundef nonnull align 8 dereferenceable(24) %1870, i32 noundef 5000000, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1871 unwind label %1891

1871:                                             ; preds = %1866
  %1872 = 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) %215) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #9
  %1873 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1874 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1873) #9
  %1875 = icmp eq i64 %1874, 2
  %1876 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1875)
  br i1 %1876, label %1907, label %1877

1877:                                             ; preds = %1871
  %1878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1879 unwind label %1893

1879:                                             ; preds = %1877
  %1880 = load ptr, ptr %1878, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %217) #9
  %1881 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1882 unwind label %1895

1882:                                             ; preds = %1879
  %1883 = load ptr, ptr %1881, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %217, ptr noundef nonnull align 8 dereferenceable(30) %1883, i32 noundef 1385)
          to label %1884 unwind label %1895

1884:                                             ; preds = %1882
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1880, ptr noundef nonnull align 8 dereferenceable(30) %217, ptr noundef nonnull @.str.321)
          to label %1885 unwind label %1895

1885:                                             ; preds = %1884
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #9
  br label %1907

1886:                                             ; preds = %1856
  %1887 = landingpad { ptr, i32 }
          cleanup
  br label %1890

1888:                                             ; preds = %1864, %1862, %1859
  %1889 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #9
  br label %1890

1890:                                             ; preds = %1888, %1886
  %.pn321 = phi { ptr, i32 } [ %1889, %1888 ], [ %1887, %1886 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1891:                                             ; preds = %1866
  %1892 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #9
  br label %2063

1893:                                             ; preds = %1877
  %1894 = landingpad { ptr, i32 }
          catch ptr null
  br label %1897

1895:                                             ; preds = %1884, %1882, %1879
  %1896 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #9
  br label %1897

1897:                                             ; preds = %1895, %1893
  %.pn323 = phi { ptr, i32 } [ %1896, %1895 ], [ %1894, %1893 ]
  %.140 = extractvalue { ptr, i32 } %.pn323, 0
  %1898 = call ptr @__cxa_begin_catch(ptr %.140) #9
  %1899 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1900 unwind label %1940

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

1903:                                             ; preds = %1900
  %1904 = load ptr, ptr %1902, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %218, ptr noundef nonnull align 8 dereferenceable(30) %1904, i32 noundef 1385)
          to label %1905 unwind label %1942

1905:                                             ; preds = %1903
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1901, ptr noundef nonnull align 8 dereferenceable(30) %218, ptr noundef nonnull @.str.322)
          to label %1906 unwind label %1942

1906:                                             ; preds = %1905
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #9
  invoke void @__cxa_end_catch()
          to label %1907 unwind label %1120

1907:                                             ; preds = %1871, %1885, %1906
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #9
  %1908 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1909 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1908, i64 noundef 0) #9
  %1910 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1909) #9
  %1911 = getelementptr inbounds i8, ptr %1910, i64 24
  %1912 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1911) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %219, ptr noundef nonnull align 8 dereferenceable(144) %1912)
          to label %1913 unwind label %1945

1913:                                             ; preds = %1907
  %1914 = 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) %219) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #9
  %1915 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1916 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1915, i64 noundef 0) #9
  %1917 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1916) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr noundef nonnull align 8 dereferenceable(24) %1917, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1918 unwind label %1947

1918:                                             ; preds = %1913
  %1919 = 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) %220) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %221) #9
  %1920 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1921 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1920, i64 noundef 1) #9
  %1922 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1921) #9
  %1923 = getelementptr inbounds i8, ptr %1922, i64 24
  %1924 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1923) #9
  invoke void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %221, ptr noundef nonnull align 8 dereferenceable(144) %1924)
          to label %1925 unwind label %1949

1925:                                             ; preds = %1918
  %1926 = 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) %221) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #9
  %1927 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  %1928 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1927, i64 noundef 1) #9
  %1929 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN10HtnPlanner12SolutionTypeELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1928) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %222, ptr noundef nonnull align 8 dereferenceable(24) %1929, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1930 unwind label %1951

1930:                                             ; preds = %1925
  %1931 = 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) %222) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #9
  %1932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1933 unwind label %1953

1933:                                             ; preds = %1930
  %1934 = load ptr, ptr %1932, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #9
  %1935 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1936 unwind label %1955

1936:                                             ; preds = %1933
  %1937 = load ptr, ptr %1935, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %223, ptr noundef nonnull align 8 dereferenceable(30) %1937, i32 noundef 1390)
          to label %1938 unwind label %1955

1938:                                             ; preds = %1936
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA78_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1934, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(78) @.str.323, ptr noundef nonnull align 8 dereferenceable(30) %223)
          to label %1939 unwind label %1955

1939:                                             ; preds = %1938
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #9
  br label %1967

1940:                                             ; preds = %1897
  %1941 = landingpad { ptr, i32 }
          cleanup
  br label %1944

1942:                                             ; preds = %1905, %1903, %1900
  %1943 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #9
  br label %1944

1944:                                             ; preds = %1942, %1940
  %.pn324 = phi { ptr, i32 } [ %1943, %1942 ], [ %1941, %1940 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1945:                                             ; preds = %1907
  %1946 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #9
  br label %2063

1947:                                             ; preds = %1913
  %1948 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #9
  br label %2063

1949:                                             ; preds = %1918
  %1950 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #9
  br label %2063

1951:                                             ; preds = %1925
  %1952 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #9
  br label %2063

1953:                                             ; preds = %1930
  %1954 = landingpad { ptr, i32 }
          catch ptr null
  br label %1957

1955:                                             ; preds = %1938, %1936, %1933
  %1956 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #9
  br label %1957

1957:                                             ; preds = %1955, %1953
  %.pn326 = phi { ptr, i32 } [ %1956, %1955 ], [ %1954, %1953 ]
  %.142 = extractvalue { ptr, i32 } %.pn326, 0
  %1958 = call ptr @__cxa_begin_catch(ptr %.142) #9
  %1959 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1960 unwind label %1976

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

1963:                                             ; preds = %1960
  %1964 = load ptr, ptr %1962, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %224, ptr noundef nonnull align 8 dereferenceable(30) %1964, i32 noundef 1390)
          to label %1965 unwind label %1978

1965:                                             ; preds = %1963
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1961, ptr noundef nonnull align 8 dereferenceable(30) %224, ptr noundef nonnull @.str.324)
          to label %1966 unwind label %1978

1966:                                             ; preds = %1965
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #9
  invoke void @__cxa_end_catch()
          to label %1967 unwind label %1120

1967:                                             ; preds = %1939, %1966
  %1968 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1969 unwind label %1981

1969:                                             ; preds = %1967
  %1970 = load ptr, ptr %1968, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %225) #9
  %1971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1972 unwind label %1983

1972:                                             ; preds = %1969
  %1973 = load ptr, ptr %1971, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %225, ptr noundef nonnull align 8 dereferenceable(30) %1973, i32 noundef 1391)
          to label %1974 unwind label %1983

1974:                                             ; preds = %1972
  invoke void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA353_cEEvRNS_11TestResultsERKT_RKT0_RKNS_11TestDetailsE(ptr noundef nonnull align 8 dereferenceable(21) %1970, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(353) @.str.325, ptr noundef nonnull align 8 dereferenceable(30) %225)
          to label %1975 unwind label %1983

1975:                                             ; preds = %1974
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #9
  br label %1995

1976:                                             ; preds = %1957
  %1977 = landingpad { ptr, i32 }
          cleanup
  br label %1980

1978:                                             ; preds = %1965, %1963, %1960
  %1979 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #9
  br label %1980

1980:                                             ; preds = %1978, %1976
  %.pn327 = phi { ptr, i32 } [ %1979, %1978 ], [ %1977, %1976 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

1981:                                             ; preds = %1967
  %1982 = landingpad { ptr, i32 }
          catch ptr null
  br label %1985

1983:                                             ; preds = %1974, %1972, %1969
  %1984 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #9
  br label %1985

1985:                                             ; preds = %1983, %1981
  %.pn329 = phi { ptr, i32 } [ %1984, %1983 ], [ %1982, %1981 ]
  %.144 = extractvalue { ptr, i32 } %.pn329, 0
  %1986 = call ptr @__cxa_begin_catch(ptr %.144) #9
  %1987 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %1988 unwind label %2007

1988:                                             ; preds = %1985
  %1989 = load ptr, ptr %1987, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #9
  %1990 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %1991 unwind label %2009

1991:                                             ; preds = %1988
  %1992 = load ptr, ptr %1990, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %226, ptr noundef nonnull align 8 dereferenceable(30) %1992, i32 noundef 1391)
          to label %1993 unwind label %2009

1993:                                             ; preds = %1991
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %1989, ptr noundef nonnull align 8 dereferenceable(30) %226, ptr noundef nonnull @.str.326)
          to label %1994 unwind label %2009

1994:                                             ; preds = %1993
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #9
  invoke void @__cxa_end_catch()
          to label %1995 unwind label %1120

1995:                                             ; preds = %1975, %1994
  %1996 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.327)
  %1997 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %1996)
  br i1 %1997, label %2026, label %1998

1998:                                             ; preds = %1995
  %1999 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2000 unwind label %2012

2000:                                             ; preds = %1998
  %2001 = load ptr, ptr %1999, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #9
  %2002 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2003 unwind label %2014

2003:                                             ; preds = %2000
  %2004 = load ptr, ptr %2002, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %227, ptr noundef nonnull align 8 dereferenceable(30) %2004, i32 noundef 1392)
          to label %2005 unwind label %2014

2005:                                             ; preds = %2003
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2001, ptr noundef nonnull align 8 dereferenceable(30) %227, ptr noundef nonnull @.str.328)
          to label %2006 unwind label %2014

2006:                                             ; preds = %2005
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #9
  br label %2026

2007:                                             ; preds = %1985
  %2008 = landingpad { ptr, i32 }
          cleanup
  br label %2011

2009:                                             ; preds = %1993, %1991, %1988
  %2010 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #9
  br label %2011

2011:                                             ; preds = %2009, %2007
  %.pn330 = phi { ptr, i32 } [ %2010, %2009 ], [ %2008, %2007 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

2012:                                             ; preds = %1998
  %2013 = landingpad { ptr, i32 }
          catch ptr null
  br label %2016

2014:                                             ; preds = %2005, %2003, %2000
  %2015 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #9
  br label %2016

2016:                                             ; preds = %2014, %2012
  %.pn332 = phi { ptr, i32 } [ %2015, %2014 ], [ %2013, %2012 ]
  %.146 = extractvalue { ptr, i32 } %.pn332, 0
  %2017 = call ptr @__cxa_begin_catch(ptr %.146) #9
  %2018 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2019 unwind label %2038

2019:                                             ; preds = %2016
  %2020 = load ptr, ptr %2018, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #9
  %2021 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2022 unwind label %2040

2022:                                             ; preds = %2019
  %2023 = load ptr, ptr %2021, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %228, ptr noundef nonnull align 8 dereferenceable(30) %2023, i32 noundef 1392)
          to label %2024 unwind label %2040

2024:                                             ; preds = %2022
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2020, ptr noundef nonnull align 8 dereferenceable(30) %228, ptr noundef nonnull @.str.329)
          to label %2025 unwind label %2040

2025:                                             ; preds = %2024
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #9
  invoke void @__cxa_end_catch()
          to label %2026 unwind label %1120

2026:                                             ; preds = %1995, %2006, %2025
  %2027 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.330)
  %2028 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %2027)
  br i1 %2028, label %2057, label %2029

2029:                                             ; preds = %2026
  %2030 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2031 unwind label %2043

2031:                                             ; preds = %2029
  %2032 = load ptr, ptr %2030, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #9
  %2033 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2034 unwind label %2045

2034:                                             ; preds = %2031
  %2035 = load ptr, ptr %2033, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %229, ptr noundef nonnull align 8 dereferenceable(30) %2035, i32 noundef 1393)
          to label %2036 unwind label %2045

2036:                                             ; preds = %2034
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2032, ptr noundef nonnull align 8 dereferenceable(30) %229, ptr noundef nonnull @.str.331)
          to label %2037 unwind label %2045

2037:                                             ; preds = %2036
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #9
  br label %2057

2038:                                             ; preds = %2016
  %2039 = landingpad { ptr, i32 }
          cleanup
  br label %2042

2040:                                             ; preds = %2024, %2022, %2019
  %2041 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #9
  br label %2042

2042:                                             ; preds = %2040, %2038
  %.pn333 = phi { ptr, i32 } [ %2041, %2040 ], [ %2039, %2038 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

2043:                                             ; preds = %2029
  %2044 = landingpad { ptr, i32 }
          catch ptr null
  br label %2047

2045:                                             ; preds = %2036, %2034, %2031
  %2046 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #9
  br label %2047

2047:                                             ; preds = %2045, %2043
  %.pn335 = phi { ptr, i32 } [ %2046, %2045 ], [ %2044, %2043 ]
  %.148 = extractvalue { ptr, i32 } %.pn335, 0
  %2048 = call ptr @__cxa_begin_catch(ptr %.148) #9
  %2049 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %2050 unwind label %2058

2050:                                             ; preds = %2047
  %2051 = load ptr, ptr %2049, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #9
  %2052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %2053 unwind label %2060

2053:                                             ; preds = %2050
  %2054 = load ptr, ptr %2052, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %230, ptr noundef nonnull align 8 dereferenceable(30) %2054, i32 noundef 1393)
          to label %2055 unwind label %2060

2055:                                             ; preds = %2053
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %2051, ptr noundef nonnull align 8 dereferenceable(30) %230, ptr noundef nonnull @.str.332)
          to label %2056 unwind label %2060

2056:                                             ; preds = %2055
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #9
  invoke void @__cxa_end_catch()
          to label %2057 unwind label %1120

2057:                                             ; preds = %2026, %2037, %2056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #9
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #9
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  ret void

2058:                                             ; preds = %2047
  %2059 = landingpad { ptr, i32 }
          cleanup
  br label %2062

2060:                                             ; preds = %2055, %2053, %2050
  %2061 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #9
  br label %2062

2062:                                             ; preds = %2060, %2058
  %.pn336 = phi { ptr, i32 } [ %2061, %2060 ], [ %2059, %2058 ]
  invoke void @__cxa_end_catch()
          to label %2063 unwind label %2070

2063:                                             ; preds = %2062, %2042, %2011, %1980, %1944, %1890, %1814, %1750, %1676, %1614, %1583, %1552, %1521, %1490, %1450, %1384, %1308, %1246, %1215, %1184, %1153, %1122, %1951, %1949, %1947, %1945, %1891, %1840, %1835, %1824, %1819, %1751, %1702, %1697, %1686, %1681, %1461, %1459, %1457, %1455, %1453, %1451, %1385, %1334, %1329, %1318, %1313, %1120
  %.pn338 = phi { ptr, i32 } [ %1121, %1120 ], [ %.pn336, %2062 ], [ %.pn333, %2042 ], [ %.pn330, %2011 ], [ %.pn327, %1980 ], [ %1952, %1951 ], [ %1950, %1949 ], [ %1948, %1947 ], [ %1946, %1945 ], [ %.pn324, %1944 ], [ %1892, %1891 ], [ %.pn321, %1890 ], [ %.pn317, %1840 ], [ %.pn313.pn.pn, %1835 ], [ %.pn311, %1824 ], [ %.pn309, %1819 ], [ %.pn307, %1814 ], [ %1752, %1751 ], [ %.pn304, %1750 ], [ %.pn300, %1702 ], [ %.pn296.pn.pn, %1697 ], [ %.pn294, %1686 ], [ %.pn292, %1681 ], [ %.pn290, %1676 ], [ %.pn287, %1614 ], [ %.pn284, %1583 ], [ %.pn281, %1552 ], [ %.pn278, %1521 ], [ %.pn275, %1490 ], [ %1462, %1461 ], [ %1460, %1459 ], [ %1458, %1457 ], [ %1456, %1455 ], [ %1454, %1453 ], [ %1452, %1451 ], [ %.pn272, %1450 ], [ %1386, %1385 ], [ %.pn269, %1384 ], [ %.pn265, %1334 ], [ %.pn261.pn.pn, %1329 ], [ %.pn259, %1318 ], [ %.pn257, %1313 ], [ %.pn255, %1308 ], [ %.pn252, %1246 ], [ %.pn249, %1215 ], [ %.pn246, %1184 ], [ %.pn243, %1153 ], [ %.pn240, %1122 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #9
  br label %2064

2064:                                             ; preds = %2063, %1091
  %.pn338.pn = phi { ptr, i32 } [ %.pn338, %2063 ], [ %1092, %1091 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  br label %2065

2065:                                             ; preds = %2064, %1089
  %.pn338.pn.pn = phi { ptr, i32 } [ %.pn338.pn, %2064 ], [ %1090, %1089 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #9
  br label %2066

2066:                                             ; preds = %1080, %1016, %940, %876, %805, %744, %712, %670, %594, %532, %500, %458, %2065, %1087, %1085, %1083, %1081, %1017, %966, %961, %950, %945, %877, %828, %823, %815, %810, %715, %713, %671, %620, %615, %604, %599, %503, %501, %459, %408, %403, %392, %386, %385, %380, %354
  %.pn338.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn, %2065 ], [ %1088, %1087 ], [ %1086, %1085 ], [ %1084, %1083 ], [ %1082, %1081 ], [ %387, %386 ], [ %.pn237, %1080 ], [ %1018, %1017 ], [ %.pn234, %1016 ], [ %.pn230, %966 ], [ %.pn226.pn.pn, %961 ], [ %.pn224, %950 ], [ %.pn222, %945 ], [ %.pn220, %940 ], [ %878, %877 ], [ %.pn217, %876 ], [ %.pn213, %828 ], [ %.pn210.pn, %823 ], [ %.pn208, %815 ], [ %.pn206, %810 ], [ %.pn204, %805 ], [ %.pn201, %744 ], [ %716, %715 ], [ %714, %713 ], [ %.pn198, %712 ], [ %672, %671 ], [ %.pn195, %670 ], [ %.pn191, %620 ], [ %.pn187.pn.pn, %615 ], [ %.pn185, %604 ], [ %.pn183, %599 ], [ %.pn181, %594 ], [ %.pn178, %532 ], [ %504, %503 ], [ %502, %501 ], [ %.pn175, %500 ], [ %460, %459 ], [ %.pn172, %458 ], [ %.pn168, %408 ], [ %.pn164.pn.pn, %403 ], [ %.pn162, %392 ], [ %.pn160, %385 ], [ %.pn151.pn.pn.pn.pn.pn.pn.pn, %380 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %354 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS4_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #9
  call void @_ZNSt12__shared_ptrI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  br label %2067

2067:                                             ; preds = %2066, %315, %313
  %.pn338.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn.pn, %2066 ], [ %314, %313 ], [ %316, %315 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #9
  call void @_ZNSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  br label %2068

2068:                                             ; preds = %2067, %311, %309
  %.pn338.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn.pn.pn, %2067 ], [ %310, %309 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #9
  call void @_ZNSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  br label %2069

2069:                                             ; preds = %2068, %307
  %.pn338.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn.pn.pn.pn, %2068 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn338.pn.pn.pn.pn.pn.pn

2070:                                             ; preds = %2062, %2042, %2011, %1980, %1944, %1890, %1814, %1750, %1676, %1614, %1583, %1552, %1521, %1490, %1450, %1384, %1308, %1246, %1215, %1184, %1153, %1122, %1080, %1016, %940, %876, %805, %744, %712, %670, %594, %532, %500, %458
  %2071 = landingpad { ptr, i32 }
          catch ptr null
  %2072 = extractvalue { ptr, i32 } %2071, 0
  call void @__clang_call_terminate(ptr %2072) #12
  unreachable
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrIN10HtnPlanner12SolutionTypeEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #5 align 2

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

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

declare void @_ZNK10HtnRuleSet13ToStringFactsB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8UnitTest10CheckEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA78_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(78), 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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin nounwind }
attributes #12 = { 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