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

; 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::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.29" = type { %"class.std::__shared_ptr.30" }
%"class.std::__shared_ptr.30" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.50" = type { %"class.std::__shared_ptr.51" }
%"class.std::__shared_ptr.51" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.65" = type { %"class.std::__shared_ptr.66" }
%"class.std::__shared_ptr.66" = type { ptr, %"class.std::__shared_count" }
%"class.std::set" = type { %"class.std::_Rb_tree.76" }
%"class.std::_Rb_tree.76" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::__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.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>
%"class.std::shared_ptr.62" = type { %"class.std::__shared_ptr.63" }
%"class.std::__shared_ptr.63" = type { ptr, %"class.std::__shared_count" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [67 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [118 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN21SuiteHtnCompilerTests27TestHtnCompilerMissingTests7RunImplEv(ptr noundef nonnull align 8 dereferenceable(49) %0) unnamed_addr #0 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::set", 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.UnitTest::TestDetails", align 8
  %14 = alloca %"class.UnitTest::TestDetails", align 8
  %15 = alloca %"class.std::set", align 8
  %16 = alloca %"class.std::shared_ptr.62", align 8
  %17 = alloca %"class.UnitTest::TestDetails", align 8
  %18 = alloca %"class.UnitTest::TestDetails", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.UnitTest::TestDetails", align 8
  %22 = alloca %"class.UnitTest::TestDetails", align 8
  %23 = alloca %"class.std::set", align 8
  %24 = alloca %"class.std::shared_ptr.62", align 8
  %25 = alloca %"class.UnitTest::TestDetails", align 8
  %26 = alloca %"class.UnitTest::TestDetails", align 8
  %27 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %28 = alloca %"class.UnitTest::TestDetails", align 8
  %29 = alloca %"class.UnitTest::TestDetails", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.UnitTest::TestDetails", align 8
  %33 = alloca %"class.UnitTest::TestDetails", align 8
  %34 = alloca %"class.std::set", align 8
  %35 = alloca %"class.std::shared_ptr.62", align 8
  %36 = alloca %"class.UnitTest::TestDetails", align 8
  %37 = alloca %"class.UnitTest::TestDetails", align 8
  %38 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %39 = alloca %"class.UnitTest::TestDetails", align 8
  %40 = alloca %"class.UnitTest::TestDetails", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.UnitTest::TestDetails", align 8
  %44 = alloca %"class.UnitTest::TestDetails", align 8
  %45 = alloca %"class.std::set", align 8
  %46 = alloca %"class.std::shared_ptr.62", align 8
  %47 = alloca %"class.UnitTest::TestDetails", align 8
  %48 = alloca %"class.UnitTest::TestDetails", align 8
  %49 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %50 = alloca %"class.UnitTest::TestDetails", align 8
  %51 = alloca %"class.UnitTest::TestDetails", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.UnitTest::TestDetails", align 8
  %55 = alloca %"class.UnitTest::TestDetails", align 8
  %56 = alloca %"class.std::set", align 8
  %57 = alloca %"class.std::shared_ptr.62", align 8
  %58 = alloca %"class.UnitTest::TestDetails", align 8
  %59 = alloca %"class.UnitTest::TestDetails", align 8
  %60 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %61 = alloca %"class.UnitTest::TestDetails", align 8
  %62 = alloca %"class.UnitTest::TestDetails", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %63 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #9
  %64 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 33088) #10
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %64)
          to label %65 unwind label %103

65:                                               ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef %64)
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #9
  %66 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #10
          to label %67 unwind label %107

67:                                               ; preds = %65
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %66)
          to label %68 unwind label %111

68:                                               ; preds = %67
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %66)
          to label %69 unwind label %107

69:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #9
  %70 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #10
          to label %71 unwind label %115

71:                                               ; preds = %69
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %70)
          to label %72 unwind label %119

72:                                               ; preds = %71
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef %70)
          to label %73 unwind label %115

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #9
  %74 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
          to label %75 unwind label %123

75:                                               ; preds = %73
  %76 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %77 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #9
  %78 = 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) %74, ptr noundef %76, ptr noundef %77, ptr noundef %78)
          to label %79 unwind label %127

79:                                               ; preds = %75
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef %74)
          to label %80 unwind label %123

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 48, ptr %9) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %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
  %81 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %82 = load ptr, ptr %81, align 8, !tbaa !9
  %83 = getelementptr inbounds ptr, ptr %82, i64 4
  %84 = load ptr, ptr %83, align 8
  invoke void %84(ptr noundef nonnull align 8 dereferenceable(96) %81)
          to label %85 unwind label %131

85:                                               ; preds = %80
  br label %86

86:                                               ; preds = %85
  %87 = 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 %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str)
          to label %88 unwind label %135

88:                                               ; preds = %86
  %89 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef %11)
          to label %90 unwind label %139

90:                                               ; preds = %88
  %91 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %89)
          to label %92 unwind label %139

92:                                               ; preds = %90
  %93 = xor i1 %91, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  br i1 %93, label %94, label %188

94:                                               ; preds = %92
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %96 unwind label %144

96:                                               ; preds = %94
  %97 = load ptr, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #9
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %99 unwind label %148

99:                                               ; preds = %96
  %100 = load ptr, ptr %98, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %13, ptr noundef nonnull align 8 dereferenceable(30) %100, i32 noundef 37)
          to label %101 unwind label %148

101:                                              ; preds = %99
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %97, ptr noundef nonnull align 8 dereferenceable(30) %13, ptr noundef @.str.3)
          to label %102 unwind label %148

102:                                              ; preds = %101
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  br label %188

103:                                              ; preds = %1
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %4, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %64, i64 noundef 33088) #11
  br label %990

107:                                              ; preds = %68, %65
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %4, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %5, align 4
  br label %989

111:                                              ; preds = %67
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %4, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %66, i64 noundef 144) #11
  br label %989

115:                                              ; preds = %72, %69
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %4, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %5, align 4
  br label %988

119:                                              ; preds = %71
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %4, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %70, i64 noundef 136) #11
  br label %988

123:                                              ; preds = %79, %73
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %4, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %5, align 4
  br label %987

127:                                              ; preds = %75
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %4, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %74, i64 noundef 96) #11
  br label %987

131:                                              ; preds = %970, %913, %849, %788, %784, %727, %663, %602, %598, %541, %477, %416, %412, %355, %291, %230, %226, %162, %80
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %4, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %5, align 4
  br label %986

135:                                              ; preds = %86
  %136 = landingpad { ptr, i32 }
          catch ptr null
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %4, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %5, align 4
  br label %143

139:                                              ; preds = %90, %88
  %140 = landingpad { ptr, i32 }
          catch ptr null
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %4, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %143

143:                                              ; preds = %139, %135
  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
  br label %152

144:                                              ; preds = %94
  %145 = landingpad { ptr, i32 }
          catch ptr null
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %4, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %5, align 4
  br label %152

148:                                              ; preds = %101, %99, %96
  %149 = landingpad { ptr, i32 }
          catch ptr null
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %4, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  br label %152

152:                                              ; preds = %148, %144, %143
  %153 = load ptr, ptr %4, align 8
  %154 = call ptr @__cxa_begin_catch(ptr %153) #9
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %156 unwind label %189

156:                                              ; preds = %152
  %157 = load ptr, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  %158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %159 unwind label %193

159:                                              ; preds = %156
  %160 = load ptr, ptr %158, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %14, ptr noundef nonnull align 8 dereferenceable(30) %160, i32 noundef 37)
          to label %161 unwind label %193

161:                                              ; preds = %159
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %157, ptr noundef nonnull align 8 dereferenceable(30) %14, ptr noundef @.str.4)
          to label %162 unwind label %193

162:                                              ; preds = %161
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  invoke void @__cxa_end_catch()
          to label %163 unwind label %131

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %188, %163
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 48, ptr %15) #9
  %167 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %168 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %169 = invoke noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %168)
          to label %170 unwind label %199

170:                                              ; preds = %166
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.62") align 8 %16, ptr noundef nonnull align 8 dereferenceable(16) %169)
          to label %171 unwind label %199

171:                                              ; preds = %170
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind writable sret(%"class.std::set") align 8 %15, ptr noundef nonnull align 8 dereferenceable(96) %167, ptr noundef %16)
          to label %172 unwind label %203

172:                                              ; preds = %171
  %173 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %15) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #9
  br label %174

174:                                              ; preds = %172
  %175 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %176 = icmp eq i64 %175, 0
  %177 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %176)
          to label %178 unwind label %208

178:                                              ; preds = %174
  br i1 %177, label %253, label %179

179:                                              ; preds = %178
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %181 unwind label %208

181:                                              ; preds = %179
  %182 = load ptr, ptr %180, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %184 unwind label %212

184:                                              ; preds = %181
  %185 = load ptr, ptr %183, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %17, ptr noundef nonnull align 8 dereferenceable(30) %185, i32 noundef 39)
          to label %186 unwind label %212

186:                                              ; preds = %184
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %182, ptr noundef nonnull align 8 dereferenceable(30) %17, ptr noundef @.str.5)
          to label %187 unwind label %212

187:                                              ; preds = %186
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  br label %253

188:                                              ; preds = %102, %92
  br label %164

189:                                              ; preds = %152
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %4, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %5, align 4
  br label %197

193:                                              ; preds = %161, %159, %156
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %4, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %197

197:                                              ; preds = %193, %189
  invoke void @__cxa_end_catch()
          to label %198 unwind label %996

198:                                              ; preds = %197
  br label %986

199:                                              ; preds = %170, %166
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %4, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %5, align 4
  br label %207

203:                                              ; preds = %171
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %4, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #9
  br label %207

207:                                              ; preds = %203, %199
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #9
  br label %986

208:                                              ; preds = %179, %174
  %209 = landingpad { ptr, i32 }
          catch ptr null
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %4, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %5, align 4
  br label %216

212:                                              ; preds = %186, %184, %181
  %213 = landingpad { ptr, i32 }
          catch ptr null
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %4, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  br label %216

216:                                              ; preds = %212, %208
  %217 = load ptr, ptr %4, align 8
  %218 = call ptr @__cxa_begin_catch(ptr %217) #9
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %220 unwind label %254

220:                                              ; preds = %216
  %221 = load ptr, ptr %219, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %223 unwind label %258

223:                                              ; preds = %220
  %224 = load ptr, ptr %222, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %18, ptr noundef nonnull align 8 dereferenceable(30) %224, i32 noundef 39)
          to label %225 unwind label %258

225:                                              ; preds = %223
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %221, ptr noundef nonnull align 8 dereferenceable(30) %18, ptr noundef @.str.6)
          to label %226 unwind label %258

226:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  invoke void @__cxa_end_catch()
          to label %227 unwind label %131

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %253, %227
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  %231 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %232 = load ptr, ptr %231, align 8, !tbaa !9
  %233 = getelementptr inbounds ptr, ptr %232, i64 4
  %234 = load ptr, ptr %233, align 8
  invoke void %234(ptr noundef nonnull align 8 dereferenceable(96) %231)
          to label %235 unwind label %131

235:                                              ; preds = %230
  br label %236

236:                                              ; preds = %235
  %237 = 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 %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  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.7)
          to label %238 unwind label %264

238:                                              ; preds = %236
  %239 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef %19)
          to label %240 unwind label %268

240:                                              ; preds = %238
  %241 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %239)
          to label %242 unwind label %268

242:                                              ; preds = %240
  %243 = xor i1 %241, true
  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 @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  br i1 %243, label %244, label %317

244:                                              ; preds = %242
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %246 unwind label %273

246:                                              ; preds = %244
  %247 = load ptr, ptr %245, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %249 unwind label %277

249:                                              ; preds = %246
  %250 = load ptr, ptr %248, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %21, ptr noundef nonnull align 8 dereferenceable(30) %250, i32 noundef 45)
          to label %251 unwind label %277

251:                                              ; preds = %249
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %247, ptr noundef nonnull align 8 dereferenceable(30) %21, ptr noundef @.str.8)
          to label %252 unwind label %277

252:                                              ; preds = %251
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %317

253:                                              ; preds = %187, %178
  br label %228

254:                                              ; preds = %216
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %4, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %5, align 4
  br label %262

258:                                              ; preds = %225, %223, %220
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %4, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %262

262:                                              ; preds = %258, %254
  invoke void @__cxa_end_catch()
          to label %263 unwind label %996

263:                                              ; preds = %262
  br label %986

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

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

272:                                              ; preds = %268, %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  br label %281

273:                                              ; preds = %244
  %274 = landingpad { ptr, i32 }
          catch ptr null
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %4, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %5, align 4
  br label %281

277:                                              ; preds = %251, %249, %246
  %278 = landingpad { ptr, i32 }
          catch ptr null
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %4, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %281

281:                                              ; preds = %277, %273, %272
  %282 = load ptr, ptr %4, align 8
  %283 = call ptr @__cxa_begin_catch(ptr %282) #9
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %285 unwind label %318

285:                                              ; preds = %281
  %286 = load ptr, ptr %284, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %288 unwind label %322

288:                                              ; preds = %285
  %289 = load ptr, ptr %287, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %22, ptr noundef nonnull align 8 dereferenceable(30) %289, i32 noundef 45)
          to label %290 unwind label %322

290:                                              ; preds = %288
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %286, ptr noundef nonnull align 8 dereferenceable(30) %22, ptr noundef @.str.9)
          to label %291 unwind label %322

291:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  invoke void @__cxa_end_catch()
          to label %292 unwind label %131

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %317, %292
  br label %294

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 48, ptr %23) #9
  %296 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %297 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %298 = invoke noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %297)
          to label %299 unwind label %328

299:                                              ; preds = %295
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.62") align 8 %24, ptr noundef nonnull align 8 dereferenceable(16) %298)
          to label %300 unwind label %328

300:                                              ; preds = %299
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind writable sret(%"class.std::set") align 8 %23, ptr noundef nonnull align 8 dereferenceable(96) %296, ptr noundef %24)
          to label %301 unwind label %332

301:                                              ; preds = %300
  %302 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %23) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #9
  br label %303

303:                                              ; preds = %301
  %304 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %305 = icmp eq i64 %304, 1
  %306 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %305)
          to label %307 unwind label %337

307:                                              ; preds = %303
  br i1 %306, label %379, label %308

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

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

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

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

316:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  br label %379

317:                                              ; preds = %252, %242
  br label %293

318:                                              ; preds = %281
  %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 %326

322:                                              ; preds = %290, %288, %285
  %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 @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  br label %326

326:                                              ; preds = %322, %318
  invoke void @__cxa_end_catch()
          to label %327 unwind label %996

327:                                              ; preds = %326
  br label %986

328:                                              ; preds = %299, %295
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %4, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %5, align 4
  br label %336

332:                                              ; preds = %300
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %4, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  br label %336

336:                                              ; preds = %332, %328
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #9
  br label %986

337:                                              ; preds = %308, %303
  %338 = landingpad { ptr, i32 }
          catch ptr null
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %4, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %5, align 4
  br label %345

341:                                              ; preds = %315, %313, %310
  %342 = landingpad { ptr, i32 }
          catch ptr null
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %4, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  br label %345

345:                                              ; preds = %341, %337
  %346 = load ptr, ptr %4, align 8
  %347 = call ptr @__cxa_begin_catch(ptr %346) #9
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %349 unwind label %380

349:                                              ; preds = %345
  %350 = load ptr, ptr %348, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #9
  %351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %352 unwind label %384

352:                                              ; preds = %349
  %353 = load ptr, ptr %351, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %26, ptr noundef nonnull align 8 dereferenceable(30) %353, i32 noundef 47)
          to label %354 unwind label %384

354:                                              ; preds = %352
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %350, ptr noundef nonnull align 8 dereferenceable(30) %26, ptr noundef @.str.11)
          to label %355 unwind label %384

355:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  invoke void @__cxa_end_catch()
          to label %356 unwind label %131

356:                                              ; preds = %355
  br label %357

357:                                              ; preds = %379, %356
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %360 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %361 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %27, i32 0, i32 0
  store ptr %360, ptr %361, align 8
  %362 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  %363 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %362)
          to label %364 unwind label %390

364:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %365

365:                                              ; preds = %364
  %366 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.12)
          to label %367 unwind label %394

367:                                              ; preds = %365
  %368 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %366)
          to label %369 unwind label %394

369:                                              ; preds = %367
  br i1 %368, label %439, label %370

370:                                              ; preds = %369
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %372 unwind label %394

372:                                              ; preds = %370
  %373 = load ptr, ptr %371, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #9
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %375 unwind label %398

375:                                              ; preds = %372
  %376 = load ptr, ptr %374, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef nonnull align 8 dereferenceable(30) %376, i32 noundef 49)
          to label %377 unwind label %398

377:                                              ; preds = %375
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %373, ptr noundef nonnull align 8 dereferenceable(30) %28, ptr noundef @.str.13)
          to label %378 unwind label %398

378:                                              ; preds = %377
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  br label %439

379:                                              ; preds = %316, %307
  br label %357

380:                                              ; preds = %345
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %4, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %5, align 4
  br label %388

384:                                              ; preds = %354, %352, %349
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %4, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  br label %388

388:                                              ; preds = %384, %380
  invoke void @__cxa_end_catch()
          to label %389 unwind label %996

389:                                              ; preds = %388
  br label %986

390:                                              ; preds = %359
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %4, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %986

394:                                              ; preds = %370, %367, %365
  %395 = landingpad { ptr, i32 }
          catch ptr null
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  br label %402

398:                                              ; preds = %377, %375, %372
  %399 = landingpad { ptr, i32 }
          catch ptr null
  %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
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  br label %402

402:                                              ; preds = %398, %394
  %403 = load ptr, ptr %4, align 8
  %404 = call ptr @__cxa_begin_catch(ptr %403) #9
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %406 unwind label %440

406:                                              ; preds = %402
  %407 = load ptr, ptr %405, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %409 unwind label %444

409:                                              ; preds = %406
  %410 = load ptr, ptr %408, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %29, ptr noundef nonnull align 8 dereferenceable(30) %410, i32 noundef 49)
          to label %411 unwind label %444

411:                                              ; preds = %409
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %407, ptr noundef nonnull align 8 dereferenceable(30) %29, ptr noundef @.str.14)
          to label %412 unwind label %444

412:                                              ; preds = %411
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  invoke void @__cxa_end_catch()
          to label %413 unwind label %131

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %439, %413
  br label %415

415:                                              ; preds = %414
  br label %416

416:                                              ; preds = %415
  %417 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %418 = load ptr, ptr %417, align 8, !tbaa !9
  %419 = getelementptr inbounds ptr, ptr %418, i64 4
  %420 = load ptr, ptr %419, align 8
  invoke void %420(ptr noundef nonnull align 8 dereferenceable(96) %417)
          to label %421 unwind label %131

421:                                              ; preds = %416
  br label %422

422:                                              ; preds = %421
  %423 = 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 %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.15)
          to label %424 unwind label %450

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

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

428:                                              ; preds = %426
  %429 = xor i1 %427, true
  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
  br i1 %429, label %430, label %503

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

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

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

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

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

439:                                              ; preds = %378, %369
  br label %414

440:                                              ; preds = %402
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %4, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %5, align 4
  br label %448

444:                                              ; preds = %411, %409, %406
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %4, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  br label %448

448:                                              ; preds = %444, %440
  invoke void @__cxa_end_catch()
          to label %449 unwind label %996

449:                                              ; preds = %448
  br label %986

450:                                              ; preds = %422
  %451 = landingpad { ptr, i32 }
          catch ptr null
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %4, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %5, align 4
  br label %458

454:                                              ; preds = %426, %424
  %455 = landingpad { ptr, i32 }
          catch ptr null
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %4, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %458

458:                                              ; preds = %454, %450
  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
  br label %467

459:                                              ; preds = %430
  %460 = landingpad { ptr, i32 }
          catch ptr null
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %4, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %5, align 4
  br label %467

463:                                              ; preds = %437, %435, %432
  %464 = landingpad { ptr, i32 }
          catch ptr null
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %4, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  br label %467

467:                                              ; preds = %463, %459, %458
  %468 = load ptr, ptr %4, align 8
  %469 = call ptr @__cxa_begin_catch(ptr %468) #9
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %471 unwind label %504

471:                                              ; preds = %467
  %472 = load ptr, ptr %470, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %474 unwind label %508

474:                                              ; preds = %471
  %475 = load ptr, ptr %473, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %33, ptr noundef nonnull align 8 dereferenceable(30) %475, i32 noundef 55)
          to label %476 unwind label %508

476:                                              ; preds = %474
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %472, ptr noundef nonnull align 8 dereferenceable(30) %33, ptr noundef @.str.17)
          to label %477 unwind label %508

477:                                              ; preds = %476
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  invoke void @__cxa_end_catch()
          to label %478 unwind label %131

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %503, %478
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #9
  %482 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %483 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %484 = invoke noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %483)
          to label %485 unwind label %514

485:                                              ; preds = %481
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.62") align 8 %35, ptr noundef nonnull align 8 dereferenceable(16) %484)
          to label %486 unwind label %514

486:                                              ; preds = %485
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind writable sret(%"class.std::set") align 8 %34, ptr noundef nonnull align 8 dereferenceable(96) %482, ptr noundef %35)
          to label %487 unwind label %518

487:                                              ; preds = %486
  %488 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %34) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #9
  br label %489

489:                                              ; preds = %487
  %490 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %491 = icmp eq i64 %490, 1
  %492 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %491)
          to label %493 unwind label %523

493:                                              ; preds = %489
  br i1 %492, label %565, label %494

494:                                              ; preds = %493
  %495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %496 unwind label %523

496:                                              ; preds = %494
  %497 = load ptr, ptr %495, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #9
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %499 unwind label %527

499:                                              ; preds = %496
  %500 = load ptr, ptr %498, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef nonnull align 8 dereferenceable(30) %500, i32 noundef 57)
          to label %501 unwind label %527

501:                                              ; preds = %499
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %497, ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef @.str.10)
          to label %502 unwind label %527

502:                                              ; preds = %501
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  br label %565

503:                                              ; preds = %438, %428
  br label %479

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

508:                                              ; preds = %476, %474, %471
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %4, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  br label %512

512:                                              ; preds = %508, %504
  invoke void @__cxa_end_catch()
          to label %513 unwind label %996

513:                                              ; preds = %512
  br label %986

514:                                              ; preds = %485, %481
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %4, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %5, align 4
  br label %522

518:                                              ; preds = %486
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %4, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #9
  br label %522

522:                                              ; preds = %518, %514
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #9
  br label %986

523:                                              ; preds = %494, %489
  %524 = landingpad { ptr, i32 }
          catch ptr null
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %4, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %5, align 4
  br label %531

527:                                              ; preds = %501, %499, %496
  %528 = landingpad { ptr, i32 }
          catch ptr null
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %4, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  br label %531

531:                                              ; preds = %527, %523
  %532 = load ptr, ptr %4, align 8
  %533 = call ptr @__cxa_begin_catch(ptr %532) #9
  %534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %535 unwind label %566

535:                                              ; preds = %531
  %536 = load ptr, ptr %534, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #9
  %537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %538 unwind label %570

538:                                              ; preds = %535
  %539 = load ptr, ptr %537, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %539, i32 noundef 57)
          to label %540 unwind label %570

540:                                              ; preds = %538
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %536, ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef @.str.11)
          to label %541 unwind label %570

541:                                              ; preds = %540
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  invoke void @__cxa_end_catch()
          to label %542 unwind label %131

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %565, %542
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %546 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %547 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %38, i32 0, i32 0
  store ptr %546, ptr %547, align 8
  %548 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  %549 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %548)
          to label %550 unwind label %576

550:                                              ; preds = %545
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %551

551:                                              ; preds = %550
  %552 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.12)
          to label %553 unwind label %580

553:                                              ; preds = %551
  %554 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %552)
          to label %555 unwind label %580

555:                                              ; preds = %553
  br i1 %554, label %625, label %556

556:                                              ; preds = %555
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %558 unwind label %580

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

561:                                              ; preds = %558
  %562 = load ptr, ptr %560, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %39, ptr noundef nonnull align 8 dereferenceable(30) %562, i32 noundef 59)
          to label %563 unwind label %584

563:                                              ; preds = %561
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %559, ptr noundef nonnull align 8 dereferenceable(30) %39, ptr noundef @.str.13)
          to label %564 unwind label %584

564:                                              ; preds = %563
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  br label %625

565:                                              ; preds = %502, %493
  br label %543

566:                                              ; preds = %531
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %4, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %5, align 4
  br label %574

570:                                              ; preds = %540, %538, %535
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %4, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  br label %574

574:                                              ; preds = %570, %566
  invoke void @__cxa_end_catch()
          to label %575 unwind label %996

575:                                              ; preds = %574
  br label %986

576:                                              ; preds = %545
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %4, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %986

580:                                              ; preds = %556, %553, %551
  %581 = landingpad { ptr, i32 }
          catch ptr null
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %4, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %5, align 4
  br label %588

584:                                              ; preds = %563, %561, %558
  %585 = landingpad { ptr, i32 }
          catch ptr null
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %4, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  br label %588

588:                                              ; preds = %584, %580
  %589 = load ptr, ptr %4, align 8
  %590 = call ptr @__cxa_begin_catch(ptr %589) #9
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %592 unwind label %626

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

595:                                              ; preds = %592
  %596 = load ptr, ptr %594, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef nonnull align 8 dereferenceable(30) %596, i32 noundef 59)
          to label %597 unwind label %630

597:                                              ; preds = %595
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %593, ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef @.str.14)
          to label %598 unwind label %630

598:                                              ; preds = %597
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  invoke void @__cxa_end_catch()
          to label %599 unwind label %131

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %625, %599
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  %603 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %604 = load ptr, ptr %603, align 8, !tbaa !9
  %605 = getelementptr inbounds ptr, ptr %604, i64 4
  %606 = load ptr, ptr %605, align 8
  invoke void %606(ptr noundef nonnull align 8 dereferenceable(96) %603)
          to label %607 unwind label %131

607:                                              ; preds = %602
  br label %608

608:                                              ; preds = %607
  %609 = 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 %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.18)
          to label %610 unwind label %636

610:                                              ; preds = %608
  %611 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %609, ptr noundef %41)
          to label %612 unwind label %640

612:                                              ; preds = %610
  %613 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %611)
          to label %614 unwind label %640

614:                                              ; preds = %612
  %615 = xor i1 %613, true
  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 @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  br i1 %615, label %616, label %689

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

618:                                              ; preds = %616
  %619 = load ptr, ptr %617, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #9
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %621 unwind label %649

621:                                              ; preds = %618
  %622 = load ptr, ptr %620, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %43, ptr noundef nonnull align 8 dereferenceable(30) %622, i32 noundef 65)
          to label %623 unwind label %649

623:                                              ; preds = %621
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %619, ptr noundef nonnull align 8 dereferenceable(30) %43, ptr noundef @.str.19)
          to label %624 unwind label %649

624:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  br label %689

625:                                              ; preds = %564, %555
  br label %600

626:                                              ; preds = %588
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %4, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %5, align 4
  br label %634

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

634:                                              ; preds = %630, %626
  invoke void @__cxa_end_catch()
          to label %635 unwind label %996

635:                                              ; preds = %634
  br label %986

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

640:                                              ; preds = %612, %610
  %641 = landingpad { ptr, i32 }
          catch ptr null
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %4, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %644

644:                                              ; preds = %640, %636
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  br label %653

645:                                              ; preds = %616
  %646 = landingpad { ptr, i32 }
          catch ptr null
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %4, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %5, align 4
  br label %653

649:                                              ; preds = %623, %621, %618
  %650 = landingpad { ptr, i32 }
          catch ptr null
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %4, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  br label %653

653:                                              ; preds = %649, %645, %644
  %654 = load ptr, ptr %4, align 8
  %655 = call ptr @__cxa_begin_catch(ptr %654) #9
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %657 unwind label %690

657:                                              ; preds = %653
  %658 = load ptr, ptr %656, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #9
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %660 unwind label %694

660:                                              ; preds = %657
  %661 = load ptr, ptr %659, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %44, ptr noundef nonnull align 8 dereferenceable(30) %661, i32 noundef 65)
          to label %662 unwind label %694

662:                                              ; preds = %660
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %658, ptr noundef nonnull align 8 dereferenceable(30) %44, ptr noundef @.str.20)
          to label %663 unwind label %694

663:                                              ; preds = %662
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  invoke void @__cxa_end_catch()
          to label %664 unwind label %131

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %689, %664
  br label %666

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 48, ptr %45) #9
  %668 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %669 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %670 = invoke noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %669)
          to label %671 unwind label %700

671:                                              ; preds = %667
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.62") align 8 %46, ptr noundef nonnull align 8 dereferenceable(16) %670)
          to label %672 unwind label %700

672:                                              ; preds = %671
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind writable sret(%"class.std::set") align 8 %45, ptr noundef nonnull align 8 dereferenceable(96) %668, ptr noundef %46)
          to label %673 unwind label %704

673:                                              ; preds = %672
  %674 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %45) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %45) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #9
  br label %675

675:                                              ; preds = %673
  %676 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %677 = icmp eq i64 %676, 1
  %678 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %677)
          to label %679 unwind label %709

679:                                              ; preds = %675
  br i1 %678, label %751, label %680

680:                                              ; preds = %679
  %681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %682 unwind label %709

682:                                              ; preds = %680
  %683 = load ptr, ptr %681, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %685 unwind label %713

685:                                              ; preds = %682
  %686 = load ptr, ptr %684, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %47, ptr noundef nonnull align 8 dereferenceable(30) %686, i32 noundef 67)
          to label %687 unwind label %713

687:                                              ; preds = %685
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %683, ptr noundef nonnull align 8 dereferenceable(30) %47, ptr noundef @.str.10)
          to label %688 unwind label %713

688:                                              ; preds = %687
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  br label %751

689:                                              ; preds = %624, %614
  br label %665

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

694:                                              ; preds = %662, %660, %657
  %695 = landingpad { ptr, i32 }
          cleanup
  %696 = extractvalue { ptr, i32 } %695, 0
  store ptr %696, ptr %4, align 8
  %697 = extractvalue { ptr, i32 } %695, 1
  store i32 %697, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  br label %698

698:                                              ; preds = %694, %690
  invoke void @__cxa_end_catch()
          to label %699 unwind label %996

699:                                              ; preds = %698
  br label %986

700:                                              ; preds = %671, %667
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %4, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %5, align 4
  br label %708

704:                                              ; preds = %672
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %4, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #9
  br label %986

709:                                              ; preds = %680, %675
  %710 = landingpad { ptr, i32 }
          catch ptr null
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %4, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %5, align 4
  br label %717

713:                                              ; preds = %687, %685, %682
  %714 = landingpad { ptr, i32 }
          catch ptr null
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %4, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  br label %717

717:                                              ; preds = %713, %709
  %718 = load ptr, ptr %4, align 8
  %719 = call ptr @__cxa_begin_catch(ptr %718) #9
  %720 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %721 unwind label %752

721:                                              ; preds = %717
  %722 = load ptr, ptr %720, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  %723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %724 unwind label %756

724:                                              ; preds = %721
  %725 = load ptr, ptr %723, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %48, ptr noundef nonnull align 8 dereferenceable(30) %725, i32 noundef 67)
          to label %726 unwind label %756

726:                                              ; preds = %724
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %722, ptr noundef nonnull align 8 dereferenceable(30) %48, ptr noundef @.str.11)
          to label %727 unwind label %756

727:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  invoke void @__cxa_end_catch()
          to label %728 unwind label %131

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %751, %728
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %732 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %733 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %49, i32 0, i32 0
  store ptr %732, ptr %733, align 8
  %734 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  %735 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %734)
          to label %736 unwind label %762

736:                                              ; preds = %731
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %737

737:                                              ; preds = %736
  %738 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.21)
          to label %739 unwind label %766

739:                                              ; preds = %737
  %740 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %738)
          to label %741 unwind label %766

741:                                              ; preds = %739
  br i1 %740, label %811, label %742

742:                                              ; preds = %741
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %744 unwind label %766

744:                                              ; preds = %742
  %745 = load ptr, ptr %743, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %747 unwind label %770

747:                                              ; preds = %744
  %748 = load ptr, ptr %746, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef nonnull align 8 dereferenceable(30) %748, i32 noundef 69)
          to label %749 unwind label %770

749:                                              ; preds = %747
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %745, ptr noundef nonnull align 8 dereferenceable(30) %50, ptr noundef @.str.22)
          to label %750 unwind label %770

750:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  br label %811

751:                                              ; preds = %688, %679
  br label %729

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

756:                                              ; preds = %726, %724, %721
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %4, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  br label %760

760:                                              ; preds = %756, %752
  invoke void @__cxa_end_catch()
          to label %761 unwind label %996

761:                                              ; preds = %760
  br label %986

762:                                              ; preds = %731
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %4, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %986

766:                                              ; preds = %742, %739, %737
  %767 = landingpad { ptr, i32 }
          catch ptr null
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %4, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %5, align 4
  br label %774

770:                                              ; preds = %749, %747, %744
  %771 = landingpad { ptr, i32 }
          catch ptr null
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %4, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  br label %774

774:                                              ; preds = %770, %766
  %775 = load ptr, ptr %4, align 8
  %776 = call ptr @__cxa_begin_catch(ptr %775) #9
  %777 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %778 unwind label %812

778:                                              ; preds = %774
  %779 = load ptr, ptr %777, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #9
  %780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %781 unwind label %816

781:                                              ; preds = %778
  %782 = load ptr, ptr %780, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef nonnull align 8 dereferenceable(30) %782, i32 noundef 69)
          to label %783 unwind label %816

783:                                              ; preds = %781
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %779, ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef @.str.23)
          to label %784 unwind label %816

784:                                              ; preds = %783
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #9
  invoke void @__cxa_end_catch()
          to label %785 unwind label %131

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %811, %785
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787
  %789 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %790 = load ptr, ptr %789, align 8, !tbaa !9
  %791 = getelementptr inbounds ptr, ptr %790, i64 4
  %792 = load ptr, ptr %791, align 8
  invoke void %792(ptr noundef nonnull align 8 dereferenceable(96) %789)
          to label %793 unwind label %131

793:                                              ; preds = %788
  br label %794

794:                                              ; preds = %793
  %795 = 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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.24)
          to label %796 unwind label %822

796:                                              ; preds = %794
  %797 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %795, ptr noundef %52)
          to label %798 unwind label %826

798:                                              ; preds = %796
  %799 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %797)
          to label %800 unwind label %826

800:                                              ; preds = %798
  %801 = xor i1 %799, 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 @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br i1 %801, label %802, label %875

802:                                              ; preds = %800
  %803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %804 unwind label %831

804:                                              ; preds = %802
  %805 = load ptr, ptr %803, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #9
  %806 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %807 unwind label %835

807:                                              ; preds = %804
  %808 = load ptr, ptr %806, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %54, ptr noundef nonnull align 8 dereferenceable(30) %808, i32 noundef 75)
          to label %809 unwind label %835

809:                                              ; preds = %807
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %805, ptr noundef nonnull align 8 dereferenceable(30) %54, ptr noundef @.str.25)
          to label %810 unwind label %835

810:                                              ; preds = %809
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  br label %875

811:                                              ; preds = %750, %741
  br label %786

812:                                              ; preds = %774
  %813 = landingpad { ptr, i32 }
          cleanup
  %814 = extractvalue { ptr, i32 } %813, 0
  store ptr %814, ptr %4, align 8
  %815 = extractvalue { ptr, i32 } %813, 1
  store i32 %815, ptr %5, align 4
  br label %820

816:                                              ; preds = %783, %781, %778
  %817 = landingpad { ptr, i32 }
          cleanup
  %818 = extractvalue { ptr, i32 } %817, 0
  store ptr %818, ptr %4, align 8
  %819 = extractvalue { ptr, i32 } %817, 1
  store i32 %819, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #9
  br label %820

820:                                              ; preds = %816, %812
  invoke void @__cxa_end_catch()
          to label %821 unwind label %996

821:                                              ; preds = %820
  br label %986

822:                                              ; preds = %794
  %823 = landingpad { ptr, i32 }
          catch ptr null
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %4, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %5, align 4
  br label %830

826:                                              ; preds = %798, %796
  %827 = landingpad { ptr, i32 }
          catch ptr null
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %4, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %830

830:                                              ; preds = %826, %822
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br label %839

831:                                              ; preds = %802
  %832 = landingpad { ptr, i32 }
          catch ptr null
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %4, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %5, align 4
  br label %839

835:                                              ; preds = %809, %807, %804
  %836 = landingpad { ptr, i32 }
          catch ptr null
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %4, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  br label %839

839:                                              ; preds = %835, %831, %830
  %840 = load ptr, ptr %4, align 8
  %841 = call ptr @__cxa_begin_catch(ptr %840) #9
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %843 unwind label %876

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

846:                                              ; preds = %843
  %847 = load ptr, ptr %845, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef nonnull align 8 dereferenceable(30) %847, i32 noundef 75)
          to label %848 unwind label %880

848:                                              ; preds = %846
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %844, ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef @.str.26)
          to label %849 unwind label %880

849:                                              ; preds = %848
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  invoke void @__cxa_end_catch()
          to label %850 unwind label %131

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %875, %850
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 48, ptr %56) #9
  %854 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  %855 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  %856 = invoke noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %855)
          to label %857 unwind label %886

857:                                              ; preds = %853
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.62") align 8 %57, ptr noundef nonnull align 8 dereferenceable(16) %856)
          to label %858 unwind label %886

858:                                              ; preds = %857
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind writable sret(%"class.std::set") align 8 %56, ptr noundef nonnull align 8 dereferenceable(96) %854, ptr noundef %57)
          to label %859 unwind label %890

859:                                              ; preds = %858
  %860 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %56) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %56) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %56) #9
  br label %861

861:                                              ; preds = %859
  %862 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %863 = icmp eq i64 %862, 1
  %864 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %863)
          to label %865 unwind label %895

865:                                              ; preds = %861
  br i1 %864, label %937, label %866

866:                                              ; preds = %865
  %867 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %868 unwind label %895

868:                                              ; preds = %866
  %869 = load ptr, ptr %867, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  %870 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %871 unwind label %899

871:                                              ; preds = %868
  %872 = load ptr, ptr %870, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %58, ptr noundef nonnull align 8 dereferenceable(30) %872, i32 noundef 77)
          to label %873 unwind label %899

873:                                              ; preds = %871
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %869, ptr noundef nonnull align 8 dereferenceable(30) %58, ptr noundef @.str.10)
          to label %874 unwind label %899

874:                                              ; preds = %873
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  br label %937

875:                                              ; preds = %810, %800
  br label %851

876:                                              ; preds = %839
  %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
  br label %884

880:                                              ; preds = %848, %846, %843
  %881 = landingpad { ptr, i32 }
          cleanup
  %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
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %884

884:                                              ; preds = %880, %876
  invoke void @__cxa_end_catch()
          to label %885 unwind label %996

885:                                              ; preds = %884
  br label %986

886:                                              ; preds = %857, %853
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %4, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %5, align 4
  br label %894

890:                                              ; preds = %858
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %4, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %5, align 4
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #9
  br label %894

894:                                              ; preds = %890, %886
  call void @llvm.lifetime.end.p0(i64 48, ptr %56) #9
  br label %986

895:                                              ; preds = %866, %861
  %896 = landingpad { ptr, i32 }
          catch ptr null
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %4, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %5, align 4
  br label %903

899:                                              ; preds = %873, %871, %868
  %900 = landingpad { ptr, i32 }
          catch ptr null
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %4, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  br label %903

903:                                              ; preds = %899, %895
  %904 = load ptr, ptr %4, align 8
  %905 = call ptr @__cxa_begin_catch(ptr %904) #9
  %906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %907 unwind label %938

907:                                              ; preds = %903
  %908 = load ptr, ptr %906, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  %909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %910 unwind label %942

910:                                              ; preds = %907
  %911 = load ptr, ptr %909, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %911, i32 noundef 77)
          to label %912 unwind label %942

912:                                              ; preds = %910
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %908, ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef @.str.11)
          to label %913 unwind label %942

913:                                              ; preds = %912
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  invoke void @__cxa_end_catch()
          to label %914 unwind label %131

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %937, %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %918 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  %919 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %60, i32 0, i32 0
  store ptr %918, ptr %919, align 8
  %920 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  %921 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %920)
          to label %922 unwind label %948

922:                                              ; preds = %917
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %923

923:                                              ; preds = %922
  %924 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.21)
          to label %925 unwind label %952

925:                                              ; preds = %923
  %926 = invoke noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %924)
          to label %927 unwind label %952

927:                                              ; preds = %925
  br i1 %926, label %975, label %928

928:                                              ; preds = %927
  %929 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %930 unwind label %952

930:                                              ; preds = %928
  %931 = load ptr, ptr %929, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  %932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %933 unwind label %956

933:                                              ; preds = %930
  %934 = load ptr, ptr %932, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef nonnull align 8 dereferenceable(30) %934, i32 noundef 79)
          to label %935 unwind label %956

935:                                              ; preds = %933
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %931, ptr noundef nonnull align 8 dereferenceable(30) %61, ptr noundef @.str.22)
          to label %936 unwind label %956

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

937:                                              ; preds = %874, %865
  br label %915

938:                                              ; preds = %903
  %939 = landingpad { ptr, i32 }
          cleanup
  %940 = extractvalue { ptr, i32 } %939, 0
  store ptr %940, ptr %4, align 8
  %941 = extractvalue { ptr, i32 } %939, 1
  store i32 %941, ptr %5, align 4
  br label %946

942:                                              ; preds = %912, %910, %907
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %4, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %946

946:                                              ; preds = %942, %938
  invoke void @__cxa_end_catch()
          to label %947 unwind label %996

947:                                              ; preds = %946
  br label %986

948:                                              ; preds = %917
  %949 = landingpad { ptr, i32 }
          cleanup
  %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 8, ptr %60) #9
  br label %986

952:                                              ; preds = %928, %925, %923
  %953 = landingpad { ptr, i32 }
          catch ptr null
  %954 = extractvalue { ptr, i32 } %953, 0
  store ptr %954, ptr %4, align 8
  %955 = extractvalue { ptr, i32 } %953, 1
  store i32 %955, ptr %5, align 4
  br label %960

956:                                              ; preds = %935, %933, %930
  %957 = landingpad { ptr, i32 }
          catch ptr null
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %4, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %960

960:                                              ; preds = %956, %952
  %961 = load ptr, ptr %4, align 8
  %962 = call ptr @__cxa_begin_catch(ptr %961) #9
  %963 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %964 unwind label %976

964:                                              ; preds = %960
  %965 = load ptr, ptr %963, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #9
  %966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %967 unwind label %980

967:                                              ; preds = %964
  %968 = load ptr, ptr %966, align 8, !tbaa !5
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %62, ptr noundef nonnull align 8 dereferenceable(30) %968, i32 noundef 79)
          to label %969 unwind label %980

969:                                              ; preds = %967
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %965, ptr noundef nonnull align 8 dereferenceable(30) %62, ptr noundef @.str.23)
          to label %970 unwind label %980

970:                                              ; preds = %969
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  invoke void @__cxa_end_catch()
          to label %971 unwind label %131

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %975, %971
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  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 @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  call void @llvm.lifetime.end.p0(i64 48, 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

975:                                              ; preds = %936, %927
  br label %972

976:                                              ; preds = %960
  %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 = %969, %967, %964
  %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 %62) #9
  br label %984

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

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985, %948, %947, %894, %885, %821, %762, %761, %708, %699, %635, %576, %575, %522, %513, %449, %390, %389, %336, %327, %263, %207, %198, %131
  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 @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  br label %987

987:                                              ; preds = %986, %127, %123
  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 %988

988:                                              ; preds = %987, %119, %115
  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 %989

989:                                              ; preds = %988, %111, %107
  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 %990

990:                                              ; preds = %989, %103
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #9
  br label %991

991:                                              ; preds = %990
  %992 = load ptr, ptr %4, align 8
  %993 = load i32, ptr %5, align 4
  %994 = insertvalue { ptr, i32 } poison, ptr %992, 0
  %995 = insertvalue { ptr, i32 } %994, i32 %993, 1
  resume { ptr, i32 } %995

996:                                              ; preds = %984, %946, %884, %820, %760, %698, %634, %574, %512, %448, %388, %326, %262, %197
  %997 = landingpad { ptr, i32 }
          catch ptr null
  %998 = extractvalue { ptr, i32 } %997, 0
  call void @__clang_call_terminate(ptr %998) #12
  unreachable
}

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local 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) #0 align 2

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

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

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

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

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

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

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 uwtable
declare dso_local void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind noalias writable sret(%"class.std::set") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef) #0 align 2

; 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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.62") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

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

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

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

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

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

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

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

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

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.29" = type { %"class.std::__shared_ptr.30" }
%"class.std::__shared_ptr.30" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.50" = type { %"class.std::__shared_ptr.51" }
%"class.std::__shared_ptr.51" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.65" = type { %"class.std::__shared_ptr.66" }
%"class.std::__shared_ptr.66" = type { ptr, %"class.std::__shared_count" }
%"class.std::set" = type { %"class.std::_Rb_tree.76" }
%"class.std::_Rb_tree.76" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::__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.UnitTest::TestDetails" = type <{ ptr, ptr, ptr, i32, i8, i8, [2 x i8] }>
%"class.std::shared_ptr.62" = type { %"class.std::__shared_ptr.63" }
%"class.std::__shared_ptr.63" = type { ptr, %"class.std::__shared_count" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [67 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [118 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN21SuiteHtnCompilerTests27TestHtnCompilerMissingTests7RunImplEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(49) %0) unnamed_addr #0 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::set", 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.UnitTest::TestDetails", align 8
  %11 = alloca %"class.UnitTest::TestDetails", align 8
  %12 = alloca %"class.std::set", align 8
  %13 = alloca %"class.std::shared_ptr.62", align 8
  %14 = alloca %"class.UnitTest::TestDetails", align 8
  %15 = alloca %"class.UnitTest::TestDetails", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.UnitTest::TestDetails", align 8
  %19 = alloca %"class.UnitTest::TestDetails", align 8
  %20 = alloca %"class.std::set", align 8
  %21 = alloca %"class.std::shared_ptr.62", align 8
  %22 = alloca %"class.UnitTest::TestDetails", align 8
  %23 = alloca %"class.UnitTest::TestDetails", align 8
  %24 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %25 = alloca %"class.UnitTest::TestDetails", align 8
  %26 = alloca %"class.UnitTest::TestDetails", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.UnitTest::TestDetails", align 8
  %30 = alloca %"class.UnitTest::TestDetails", align 8
  %31 = alloca %"class.std::set", align 8
  %32 = alloca %"class.std::shared_ptr.62", align 8
  %33 = alloca %"class.UnitTest::TestDetails", align 8
  %34 = alloca %"class.UnitTest::TestDetails", align 8
  %35 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %36 = alloca %"class.UnitTest::TestDetails", align 8
  %37 = alloca %"class.UnitTest::TestDetails", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.UnitTest::TestDetails", align 8
  %41 = alloca %"class.UnitTest::TestDetails", align 8
  %42 = alloca %"class.std::set", align 8
  %43 = alloca %"class.std::shared_ptr.62", align 8
  %44 = alloca %"class.UnitTest::TestDetails", align 8
  %45 = alloca %"class.UnitTest::TestDetails", align 8
  %46 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %47 = alloca %"class.UnitTest::TestDetails", align 8
  %48 = alloca %"class.UnitTest::TestDetails", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.UnitTest::TestDetails", align 8
  %52 = alloca %"class.UnitTest::TestDetails", align 8
  %53 = alloca %"class.std::set", align 8
  %54 = alloca %"class.std::shared_ptr.62", align 8
  %55 = alloca %"class.UnitTest::TestDetails", align 8
  %56 = alloca %"class.UnitTest::TestDetails", align 8
  %57 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %58 = alloca %"class.UnitTest::TestDetails", align 8
  %59 = alloca %"class.UnitTest::TestDetails", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #9
  %60 = tail call noalias noundef nonnull dereferenceable(33088) ptr @_Znwm(i64 noundef 33088) #10
  invoke void @_ZN14HtnTermFactoryC1Ev(ptr noundef nonnull align 8 dereferenceable(33088) %60)
          to label %61 unwind label %96

61:                                               ; preds = %1
  call void @_ZNSt10shared_ptrI14HtnTermFactoryEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull %60)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #9
  %62 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #10
          to label %63 unwind label %98

63:                                               ; preds = %61
  invoke void @_ZN10HtnRuleSetC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %62)
          to label %64 unwind label %100

64:                                               ; preds = %63
  invoke void @_ZNSt10shared_ptrI10HtnRuleSetEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull %62)
          to label %65 unwind label %98

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #9
  %66 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #10
          to label %67 unwind label %102

67:                                               ; preds = %65
  invoke void @_ZN10HtnPlannerC1Ev(ptr noundef nonnull align 8 dereferenceable(136) %66)
          to label %68 unwind label %104

68:                                               ; preds = %67
  invoke void @_ZNSt10shared_ptrI10HtnPlannerEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull %66)
          to label %69 unwind label %102

69:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %70 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #10
          to label %71 unwind label %106

71:                                               ; preds = %69
  %72 = call noundef ptr @_ZNKSt12__shared_ptrI14HtnTermFactoryLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  %73 = call noundef ptr @_ZNKSt12__shared_ptrI10HtnRuleSetLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  %74 = 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) %70, ptr noundef %72, ptr noundef %73, ptr noundef %74)
          to label %75 unwind label %108

75:                                               ; preds = %71
  invoke void @_ZNSt10shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEEEC2IS3_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %70)
          to label %76 unwind label %106

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %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
  %77 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = getelementptr inbounds i8, ptr %78, i64 32
  %80 = load ptr, ptr %79, align 8
  invoke void %80(ptr noundef nonnull align 8 dereferenceable(96) %77)
          to label %81 unwind label %110

81:                                               ; preds = %76
  %82 = 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 %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #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 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str)
          to label %83 unwind label %112

83:                                               ; preds = %81
  %84 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull %8)
          to label %85 unwind label %114

85:                                               ; preds = %83
  %86 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %84)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #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
  br i1 %86, label %131, label %87

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %89 unwind label %117

89:                                               ; preds = %87
  %90 = load ptr, ptr %88, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %92 unwind label %119

92:                                               ; preds = %89
  %93 = load ptr, ptr %91, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %10, ptr noundef nonnull align 8 dereferenceable(30) %93, i32 noundef 37)
          to label %94 unwind label %119

94:                                               ; preds = %92
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %90, ptr noundef nonnull align 8 dereferenceable(30) %10, ptr noundef nonnull @.str.3)
          to label %95 unwind label %119

95:                                               ; preds = %94
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  br label %131

96:                                               ; preds = %1
  %97 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %60, i64 noundef 33088) #11
  br label %680

98:                                               ; preds = %64, %61
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %679

100:                                              ; preds = %63
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %62, i64 noundef 144) #11
  br label %679

102:                                              ; preds = %68, %65
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %678

104:                                              ; preds = %67
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %66, i64 noundef 136) #11
  br label %678

106:                                              ; preds = %75, %69
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %677

108:                                              ; preds = %71
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %70, i64 noundef 96) #11
  br label %677

110:                                              ; preds = %669, %632, %589, %546, %545, %508, %465, %422, %421, %384, %341, %298, %297, %260, %217, %174, %173, %130, %76
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %676

112:                                              ; preds = %81
  %113 = landingpad { ptr, i32 }
          catch ptr null
  br label %116

114:                                              ; preds = %83
  %115 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %116

116:                                              ; preds = %114, %112
  %.pn = phi { ptr, i32 } [ %115, %114 ], [ %113, %112 ]
  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
  br label %121

117:                                              ; preds = %87
  %118 = landingpad { ptr, i32 }
          catch ptr null
  br label %121

119:                                              ; preds = %94, %92, %89
  %120 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  br label %121

121:                                              ; preds = %119, %117, %116
  %.pn40 = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ], [ %.pn, %116 ]
  %.117 = extractvalue { ptr, i32 } %.pn40, 0
  %122 = call ptr @__cxa_begin_catch(ptr %.117) #9
  %123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %124 unwind label %150

124:                                              ; preds = %121
  %125 = load ptr, ptr %123, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %127 unwind label %152

127:                                              ; preds = %124
  %128 = load ptr, ptr %126, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %11, ptr noundef nonnull align 8 dereferenceable(30) %128, i32 noundef 37)
          to label %129 unwind label %152

129:                                              ; preds = %127
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %125, ptr noundef nonnull align 8 dereferenceable(30) %11, ptr noundef nonnull @.str.4)
          to label %130 unwind label %152

130:                                              ; preds = %129
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  invoke void @__cxa_end_catch()
          to label %131 unwind label %110

131:                                              ; preds = %85, %95, %130
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #9
  %132 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %133 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %134 = call noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %133)
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.62") align 8 %13, ptr noundef nonnull align 8 dereferenceable(16) %134)
          to label %135 unwind label %155

135:                                              ; preds = %131
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind nonnull writable sret(%"class.std::set") align 8 %12, ptr noundef nonnull align 8 dereferenceable(96) %132, ptr noundef nonnull %13)
          to label %136 unwind label %157

136:                                              ; preds = %135
  %137 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %12) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #9
  %138 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  %139 = icmp eq i64 %138, 0
  %140 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %139)
  br i1 %140, label %174, label %141

141:                                              ; preds = %136
  %142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %143 unwind label %160

143:                                              ; preds = %141
  %144 = load ptr, ptr %142, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  %145 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %146 unwind label %162

146:                                              ; preds = %143
  %147 = load ptr, ptr %145, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %14, ptr noundef nonnull align 8 dereferenceable(30) %147, i32 noundef 39)
          to label %148 unwind label %162

148:                                              ; preds = %146
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %144, ptr noundef nonnull align 8 dereferenceable(30) %14, ptr noundef nonnull @.str.5)
          to label %149 unwind label %162

149:                                              ; preds = %148
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br label %174

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

152:                                              ; preds = %129, %127, %124
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %154

154:                                              ; preds = %152, %150
  %.pn41 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

155:                                              ; preds = %131
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %159

157:                                              ; preds = %135
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #9
  br label %159

159:                                              ; preds = %157, %155
  %.pn43 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #9
  br label %676

160:                                              ; preds = %141
  %161 = landingpad { ptr, i32 }
          catch ptr null
  br label %164

162:                                              ; preds = %148, %146, %143
  %163 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br label %164

164:                                              ; preds = %162, %160
  %.pn45 = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  %.420 = extractvalue { ptr, i32 } %.pn45, 0
  %165 = call ptr @__cxa_begin_catch(ptr %.420) #9
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %167 unwind label %194

167:                                              ; preds = %164
  %168 = load ptr, ptr %166, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %170 unwind label %196

170:                                              ; preds = %167
  %171 = load ptr, ptr %169, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %15, ptr noundef nonnull align 8 dereferenceable(30) %171, i32 noundef 39)
          to label %172 unwind label %196

172:                                              ; preds = %170
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %168, ptr noundef nonnull align 8 dereferenceable(30) %15, ptr noundef nonnull @.str.6)
          to label %173 unwind label %196

173:                                              ; preds = %172
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  invoke void @__cxa_end_catch()
          to label %174 unwind label %110

174:                                              ; preds = %136, %149, %173
  %175 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %176 = load ptr, ptr %175, align 8, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %176, i64 32
  %178 = load ptr, ptr %177, align 8
  invoke void %178(ptr noundef nonnull align 8 dereferenceable(96) %175)
          to label %179 unwind label %110

179:                                              ; preds = %174
  %180 = 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 %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #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 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.7)
          to label %181 unwind label %199

181:                                              ; preds = %179
  %182 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull %16)
          to label %183 unwind label %201

183:                                              ; preds = %181
  %184 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %182)
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br i1 %184, label %218, label %185

185:                                              ; preds = %183
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %187 unwind label %204

187:                                              ; preds = %185
  %188 = load ptr, ptr %186, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  %189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %190 unwind label %206

190:                                              ; preds = %187
  %191 = load ptr, ptr %189, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %18, ptr noundef nonnull align 8 dereferenceable(30) %191, i32 noundef 45)
          to label %192 unwind label %206

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

193:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  br label %218

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

196:                                              ; preds = %172, %170, %167
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %198

198:                                              ; preds = %196, %194
  %.pn46 = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

199:                                              ; preds = %179
  %200 = landingpad { ptr, i32 }
          catch ptr null
  br label %203

201:                                              ; preds = %181
  %202 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %203

203:                                              ; preds = %201, %199
  %.pn48 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br label %208

204:                                              ; preds = %185
  %205 = landingpad { ptr, i32 }
          catch ptr null
  br label %208

206:                                              ; preds = %192, %190, %187
  %207 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  br label %208

208:                                              ; preds = %206, %204, %203
  %.pn49 = phi { ptr, i32 } [ %207, %206 ], [ %205, %204 ], [ %.pn48, %203 ]
  %.723 = extractvalue { ptr, i32 } %.pn49, 0
  %209 = call ptr @__cxa_begin_catch(ptr %.723) #9
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %211 unwind label %237

211:                                              ; preds = %208
  %212 = load ptr, ptr %210, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %214 unwind label %239

214:                                              ; preds = %211
  %215 = load ptr, ptr %213, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %19, ptr noundef nonnull align 8 dereferenceable(30) %215, i32 noundef 45)
          to label %216 unwind label %239

216:                                              ; preds = %214
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %212, ptr noundef nonnull align 8 dereferenceable(30) %19, ptr noundef nonnull @.str.9)
          to label %217 unwind label %239

217:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  invoke void @__cxa_end_catch()
          to label %218 unwind label %110

218:                                              ; preds = %183, %193, %217
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #9
  %219 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %220 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %221 = call noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %220)
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.62") align 8 %21, ptr noundef nonnull align 8 dereferenceable(16) %221)
          to label %222 unwind label %242

222:                                              ; preds = %218
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind nonnull writable sret(%"class.std::set") align 8 %20, ptr noundef nonnull align 8 dereferenceable(96) %219, ptr noundef nonnull %21)
          to label %223 unwind label %244

223:                                              ; preds = %222
  %224 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %20) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #9
  %225 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  %226 = icmp eq i64 %225, 1
  %227 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %226)
  br i1 %227, label %261, label %228

228:                                              ; preds = %223
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %230 unwind label %247

230:                                              ; preds = %228
  %231 = load ptr, ptr %229, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %233 unwind label %249

233:                                              ; preds = %230
  %234 = load ptr, ptr %232, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %22, ptr noundef nonnull align 8 dereferenceable(30) %234, i32 noundef 47)
          to label %235 unwind label %249

235:                                              ; preds = %233
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %231, ptr noundef nonnull align 8 dereferenceable(30) %22, ptr noundef nonnull @.str.10)
          to label %236 unwind label %249

236:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %261

237:                                              ; preds = %208
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %241

239:                                              ; preds = %216, %214, %211
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %241

241:                                              ; preds = %239, %237
  %.pn50 = phi { ptr, i32 } [ %240, %239 ], [ %238, %237 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

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

244:                                              ; preds = %222
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #9
  br label %246

246:                                              ; preds = %244, %242
  %.pn52 = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #9
  br label %676

247:                                              ; preds = %228
  %248 = landingpad { ptr, i32 }
          catch ptr null
  br label %251

249:                                              ; preds = %235, %233, %230
  %250 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %251

251:                                              ; preds = %249, %247
  %.pn54 = phi { ptr, i32 } [ %250, %249 ], [ %248, %247 ]
  %.1026 = extractvalue { ptr, i32 } %.pn54, 0
  %252 = call ptr @__cxa_begin_catch(ptr %.1026) #9
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %254 unwind label %277

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

257:                                              ; preds = %254
  %258 = load ptr, ptr %256, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %23, ptr noundef nonnull align 8 dereferenceable(30) %258, i32 noundef 47)
          to label %259 unwind label %279

259:                                              ; preds = %257
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %255, ptr noundef nonnull align 8 dereferenceable(30) %23, ptr noundef nonnull @.str.11)
          to label %260 unwind label %279

260:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  invoke void @__cxa_end_catch()
          to label %261 unwind label %110

261:                                              ; preds = %223, %236, %260
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %262 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  store ptr %262, ptr %24, align 8
  %263 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #9
  %264 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %263)
          to label %265 unwind label %282

265:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  %266 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.12)
  %267 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %266)
  br i1 %267, label %298, label %268

268:                                              ; preds = %265
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %270 unwind label %284

270:                                              ; preds = %268
  %271 = load ptr, ptr %269, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %273 unwind label %286

273:                                              ; preds = %270
  %274 = load ptr, ptr %272, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %25, ptr noundef nonnull align 8 dereferenceable(30) %274, i32 noundef 49)
          to label %275 unwind label %286

275:                                              ; preds = %273
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %271, ptr noundef nonnull align 8 dereferenceable(30) %25, ptr noundef nonnull @.str.13)
          to label %276 unwind label %286

276:                                              ; preds = %275
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %298

277:                                              ; preds = %251
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %281

279:                                              ; preds = %259, %257, %254
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  br label %281

281:                                              ; preds = %279, %277
  %.pn55 = phi { ptr, i32 } [ %280, %279 ], [ %278, %277 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

282:                                              ; preds = %261
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %676

284:                                              ; preds = %268
  %285 = landingpad { ptr, i32 }
          catch ptr null
  br label %288

286:                                              ; preds = %275, %273, %270
  %287 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %288

288:                                              ; preds = %286, %284
  %.pn57 = phi { ptr, i32 } [ %287, %286 ], [ %285, %284 ]
  %.1228 = extractvalue { ptr, i32 } %.pn57, 0
  %289 = call ptr @__cxa_begin_catch(ptr %.1228) #9
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %291 unwind label %318

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

294:                                              ; preds = %291
  %295 = load ptr, ptr %293, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %26, ptr noundef nonnull align 8 dereferenceable(30) %295, i32 noundef 49)
          to label %296 unwind label %320

296:                                              ; preds = %294
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %292, ptr noundef nonnull align 8 dereferenceable(30) %26, ptr noundef nonnull @.str.14)
          to label %297 unwind label %320

297:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  invoke void @__cxa_end_catch()
          to label %298 unwind label %110

298:                                              ; preds = %265, %276, %297
  %299 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %300 = load ptr, ptr %299, align 8, !tbaa !5
  %301 = getelementptr inbounds i8, ptr %300, i64 32
  %302 = load ptr, ptr %301, align 8
  invoke void %302(ptr noundef nonnull align 8 dereferenceable(96) %299)
          to label %303 unwind label %110

303:                                              ; preds = %298
  %304 = 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 %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.15)
          to label %305 unwind label %323

305:                                              ; preds = %303
  %306 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef nonnull %27)
          to label %307 unwind label %325

307:                                              ; preds = %305
  %308 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %306)
  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
  br i1 %308, label %342, label %309

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

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

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

316:                                              ; preds = %314
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %312, ptr noundef nonnull align 8 dereferenceable(30) %29, ptr noundef nonnull @.str.16)
          to label %317 unwind label %330

317:                                              ; preds = %316
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %342

318:                                              ; preds = %288
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %322

320:                                              ; preds = %296, %294, %291
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %322

322:                                              ; preds = %320, %318
  %.pn58 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

323:                                              ; preds = %303
  %324 = landingpad { ptr, i32 }
          catch ptr null
  br label %327

325:                                              ; preds = %305
  %326 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %327

327:                                              ; preds = %325, %323
  %.pn60 = phi { ptr, i32 } [ %326, %325 ], [ %324, %323 ]
  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
  br label %332

328:                                              ; preds = %309
  %329 = landingpad { ptr, i32 }
          catch ptr null
  br label %332

330:                                              ; preds = %316, %314, %311
  %331 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %332

332:                                              ; preds = %330, %328, %327
  %.pn61 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ], [ %.pn60, %327 ]
  %.1531 = extractvalue { ptr, i32 } %.pn61, 0
  %333 = call ptr @__cxa_begin_catch(ptr %.1531) #9
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %335 unwind label %361

335:                                              ; preds = %332
  %336 = load ptr, ptr %334, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %338 unwind label %363

338:                                              ; preds = %335
  %339 = load ptr, ptr %337, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef nonnull align 8 dereferenceable(30) %339, i32 noundef 55)
          to label %340 unwind label %363

340:                                              ; preds = %338
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %336, ptr noundef nonnull align 8 dereferenceable(30) %30, ptr noundef nonnull @.str.17)
          to label %341 unwind label %363

341:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  invoke void @__cxa_end_catch()
          to label %342 unwind label %110

342:                                              ; preds = %307, %317, %341
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %31) #9
  %343 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %344 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %345 = call noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %344)
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.62") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %345)
          to label %346 unwind label %366

346:                                              ; preds = %342
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind nonnull writable sret(%"class.std::set") align 8 %31, ptr noundef nonnull align 8 dereferenceable(96) %343, ptr noundef nonnull %32)
          to label %347 unwind label %368

347:                                              ; preds = %346
  %348 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #9
  %349 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  %350 = icmp eq i64 %349, 1
  %351 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %350)
  br i1 %351, label %385, label %352

352:                                              ; preds = %347
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %354 unwind label %371

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

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

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

360:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  br label %385

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

363:                                              ; preds = %340, %338, %335
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  br label %365

365:                                              ; preds = %363, %361
  %.pn62 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

366:                                              ; preds = %342
  %367 = landingpad { ptr, i32 }
          cleanup
  br label %370

368:                                              ; preds = %346
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  br label %370

370:                                              ; preds = %368, %366
  %.pn64 = phi { ptr, i32 } [ %369, %368 ], [ %367, %366 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #9
  br label %676

371:                                              ; preds = %352
  %372 = landingpad { ptr, i32 }
          catch ptr null
  br label %375

373:                                              ; preds = %359, %357, %354
  %374 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  br label %375

375:                                              ; preds = %373, %371
  %.pn66 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  %.1834 = extractvalue { ptr, i32 } %.pn66, 0
  %376 = call ptr @__cxa_begin_catch(ptr %.1834) #9
  %377 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %378 unwind label %401

378:                                              ; preds = %375
  %379 = load ptr, ptr %377, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %381 unwind label %403

381:                                              ; preds = %378
  %382 = load ptr, ptr %380, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull align 8 dereferenceable(30) %382, i32 noundef 57)
          to label %383 unwind label %403

383:                                              ; preds = %381
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %379, ptr noundef nonnull align 8 dereferenceable(30) %34, ptr noundef nonnull @.str.11)
          to label %384 unwind label %403

384:                                              ; preds = %383
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  invoke void @__cxa_end_catch()
          to label %385 unwind label %110

385:                                              ; preds = %347, %360, %384
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  %386 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  store ptr %386, ptr %35, align 8
  %387 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #9
  %388 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %387)
          to label %389 unwind label %406

389:                                              ; preds = %385
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  %390 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.12)
  %391 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %390)
  br i1 %391, label %422, label %392

392:                                              ; preds = %389
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %394 unwind label %408

394:                                              ; preds = %392
  %395 = load ptr, ptr %393, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %397 unwind label %410

397:                                              ; preds = %394
  %398 = load ptr, ptr %396, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef nonnull align 8 dereferenceable(30) %398, i32 noundef 59)
          to label %399 unwind label %410

399:                                              ; preds = %397
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %395, ptr noundef nonnull align 8 dereferenceable(30) %36, ptr noundef nonnull @.str.13)
          to label %400 unwind label %410

400:                                              ; preds = %399
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  br label %422

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

403:                                              ; preds = %383, %381, %378
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  br label %405

405:                                              ; preds = %403, %401
  %.pn67 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

406:                                              ; preds = %385
  %407 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  br label %676

408:                                              ; preds = %392
  %409 = landingpad { ptr, i32 }
          catch ptr null
  br label %412

410:                                              ; preds = %399, %397, %394
  %411 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  br label %412

412:                                              ; preds = %410, %408
  %.pn69 = phi { ptr, i32 } [ %411, %410 ], [ %409, %408 ]
  %.2036 = extractvalue { ptr, i32 } %.pn69, 0
  %413 = call ptr @__cxa_begin_catch(ptr %.2036) #9
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %415 unwind label %442

415:                                              ; preds = %412
  %416 = load ptr, ptr %414, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %418 unwind label %444

418:                                              ; preds = %415
  %419 = load ptr, ptr %417, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull align 8 dereferenceable(30) %419, i32 noundef 59)
          to label %420 unwind label %444

420:                                              ; preds = %418
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %416, ptr noundef nonnull align 8 dereferenceable(30) %37, ptr noundef nonnull @.str.14)
          to label %421 unwind label %444

421:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  invoke void @__cxa_end_catch()
          to label %422 unwind label %110

422:                                              ; preds = %389, %400, %421
  %423 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %424 = load ptr, ptr %423, align 8, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %424, i64 32
  %426 = load ptr, ptr %425, align 8
  invoke void %426(ptr noundef nonnull align 8 dereferenceable(96) %423)
          to label %427 unwind label %110

427:                                              ; preds = %422
  %428 = 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 %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #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 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.18)
          to label %429 unwind label %447

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

431:                                              ; preds = %429
  %432 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %430)
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  br i1 %432, label %466, label %433

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %435 unwind label %452

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

438:                                              ; preds = %435
  %439 = load ptr, ptr %437, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef nonnull align 8 dereferenceable(30) %439, i32 noundef 65)
          to label %440 unwind label %454

440:                                              ; preds = %438
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %436, ptr noundef nonnull align 8 dereferenceable(30) %40, ptr noundef nonnull @.str.19)
          to label %441 unwind label %454

441:                                              ; preds = %440
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  br label %466

442:                                              ; preds = %412
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %446

444:                                              ; preds = %420, %418, %415
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  br label %446

446:                                              ; preds = %444, %442
  %.pn70 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

447:                                              ; preds = %427
  %448 = landingpad { ptr, i32 }
          catch ptr null
  br label %451

449:                                              ; preds = %429
  %450 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %451

451:                                              ; preds = %449, %447
  %.pn72 = phi { ptr, i32 } [ %450, %449 ], [ %448, %447 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  br label %456

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

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

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

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

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

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

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

466:                                              ; preds = %431, %441, %465
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %42) #9
  %467 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %468 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %469 = call noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %468)
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.62") align 8 %43, ptr noundef nonnull align 8 dereferenceable(16) %469)
          to label %470 unwind label %490

470:                                              ; preds = %466
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind nonnull writable sret(%"class.std::set") align 8 %42, ptr noundef nonnull align 8 dereferenceable(96) %467, ptr noundef nonnull %43)
          to label %471 unwind label %492

471:                                              ; preds = %470
  %472 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %42) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %42) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %42) #9
  %473 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  %474 = icmp eq i64 %473, 1
  %475 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %474)
  br i1 %475, label %509, label %476

476:                                              ; preds = %471
  %477 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %478 unwind label %495

478:                                              ; preds = %476
  %479 = load ptr, ptr %477, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %481 unwind label %497

481:                                              ; preds = %478
  %482 = load ptr, ptr %480, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %44, ptr noundef nonnull align 8 dereferenceable(30) %482, i32 noundef 67)
          to label %483 unwind label %497

483:                                              ; preds = %481
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %479, ptr noundef nonnull align 8 dereferenceable(30) %44, ptr noundef nonnull @.str.10)
          to label %484 unwind label %497

484:                                              ; preds = %483
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %509

485:                                              ; preds = %456
  %486 = landingpad { ptr, i32 }
          cleanup
  br label %489

487:                                              ; preds = %464, %462, %459
  %488 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  br label %489

489:                                              ; preds = %487, %485
  %.pn74 = phi { ptr, i32 } [ %488, %487 ], [ %486, %485 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

490:                                              ; preds = %466
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %494

492:                                              ; preds = %470
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  br label %494

494:                                              ; preds = %492, %490
  %.pn76 = phi { ptr, i32 } [ %493, %492 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %42) #9
  br label %676

495:                                              ; preds = %476
  %496 = landingpad { ptr, i32 }
          catch ptr null
  br label %499

497:                                              ; preds = %483, %481, %478
  %498 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %499

499:                                              ; preds = %497, %495
  %.pn78 = phi { ptr, i32 } [ %498, %497 ], [ %496, %495 ]
  %.26 = extractvalue { ptr, i32 } %.pn78, 0
  %500 = call ptr @__cxa_begin_catch(ptr %.26) #9
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %502 unwind label %525

502:                                              ; preds = %499
  %503 = load ptr, ptr %501, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %505 unwind label %527

505:                                              ; preds = %502
  %506 = load ptr, ptr %504, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %45, ptr noundef nonnull align 8 dereferenceable(30) %506, i32 noundef 67)
          to label %507 unwind label %527

507:                                              ; preds = %505
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %503, ptr noundef nonnull align 8 dereferenceable(30) %45, ptr noundef nonnull @.str.11)
          to label %508 unwind label %527

508:                                              ; preds = %507
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  invoke void @__cxa_end_catch()
          to label %509 unwind label %110

509:                                              ; preds = %471, %484, %508
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #9
  %510 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  store ptr %510, ptr %46, align 8
  %511 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  %512 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %511)
          to label %513 unwind label %530

513:                                              ; preds = %509
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  %514 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.21)
  %515 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %514)
  br i1 %515, label %546, label %516

516:                                              ; preds = %513
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %518 unwind label %532

518:                                              ; preds = %516
  %519 = load ptr, ptr %517, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %521 unwind label %534

521:                                              ; preds = %518
  %522 = load ptr, ptr %520, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %47, ptr noundef nonnull align 8 dereferenceable(30) %522, i32 noundef 69)
          to label %523 unwind label %534

523:                                              ; preds = %521
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %519, ptr noundef nonnull align 8 dereferenceable(30) %47, ptr noundef nonnull @.str.22)
          to label %524 unwind label %534

524:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  br label %546

525:                                              ; preds = %499
  %526 = landingpad { ptr, i32 }
          cleanup
  br label %529

527:                                              ; preds = %507, %505, %502
  %528 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  br label %529

529:                                              ; preds = %527, %525
  %.pn79 = phi { ptr, i32 } [ %528, %527 ], [ %526, %525 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

530:                                              ; preds = %509
  %531 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  br label %676

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

534:                                              ; preds = %523, %521, %518
  %535 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  br label %536

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

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

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

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

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

546:                                              ; preds = %513, %524, %545
  %547 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %548 = load ptr, ptr %547, align 8, !tbaa !5
  %549 = getelementptr inbounds i8, ptr %548, i64 32
  %550 = load ptr, ptr %549, align 8
  invoke void %550(ptr noundef nonnull align 8 dereferenceable(96) %547)
          to label %551 unwind label %110

551:                                              ; preds = %546
  %552 = 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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #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 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.24)
          to label %553 unwind label %571

553:                                              ; preds = %551
  %554 = invoke noundef zeroext i1 @_ZN6FXPlat8CompilerIN6Prolog14PrologDocumentINS1_11HtnVariableEEEE7CompileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %552, ptr noundef nonnull %49)
          to label %555 unwind label %573

555:                                              ; preds = %553
  %556 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %554)
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br i1 %556, label %590, label %557

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %559 unwind label %576

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

562:                                              ; preds = %559
  %563 = load ptr, ptr %561, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef nonnull align 8 dereferenceable(30) %563, i32 noundef 75)
          to label %564 unwind label %578

564:                                              ; preds = %562
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %560, ptr noundef nonnull align 8 dereferenceable(30) %51, ptr noundef nonnull @.str.25)
          to label %565 unwind label %578

565:                                              ; preds = %564
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  br label %590

566:                                              ; preds = %536
  %567 = landingpad { ptr, i32 }
          cleanup
  br label %570

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

570:                                              ; preds = %568, %566
  %.pn82 = phi { ptr, i32 } [ %569, %568 ], [ %567, %566 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

571:                                              ; preds = %551
  %572 = landingpad { ptr, i32 }
          catch ptr null
  br label %575

573:                                              ; preds = %553
  %574 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %575

575:                                              ; preds = %573, %571
  %.pn84 = phi { ptr, i32 } [ %574, %573 ], [ %572, %571 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br label %580

576:                                              ; preds = %557
  %577 = landingpad { ptr, i32 }
          catch ptr null
  br label %580

578:                                              ; preds = %564, %562, %559
  %579 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  br label %580

580:                                              ; preds = %578, %576, %575
  %.pn85 = phi { ptr, i32 } [ %579, %578 ], [ %577, %576 ], [ %.pn84, %575 ]
  %.31 = extractvalue { ptr, i32 } %.pn85, 0
  %581 = call ptr @__cxa_begin_catch(ptr %.31) #9
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %583 unwind label %609

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

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

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

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

590:                                              ; preds = %555, %565, %589
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %53) #9
  %591 = call noundef ptr @_ZNKSt19__shared_ptr_accessI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  %592 = call noundef ptr @_ZNKSt19__shared_ptr_accessI10HtnPlannerLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %593 = call noundef ptr @_ZN10HtnPlanner12goalResolverEv(ptr noundef nonnull align 8 dereferenceable(136) %592)
  invoke void @_ZNSt23enable_shared_from_thisI15HtnGoalResolverE16shared_from_thisEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.62") align 8 %54, ptr noundef nonnull align 8 dereferenceable(16) %593)
          to label %594 unwind label %614

594:                                              ; preds = %590
  invoke void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind nonnull writable sret(%"class.std::set") align 8 %53, ptr noundef nonnull align 8 dereferenceable(96) %591, ptr noundef nonnull %54)
          to label %595 unwind label %616

595:                                              ; preds = %594
  %596 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #9
  %597 = call noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  %598 = icmp eq i64 %597, 1
  %599 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %598)
  br i1 %599, label %633, label %600

600:                                              ; preds = %595
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %602 unwind label %619

602:                                              ; preds = %600
  %603 = load ptr, ptr %601, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #9
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %605 unwind label %621

605:                                              ; preds = %602
  %606 = load ptr, ptr %604, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef nonnull align 8 dereferenceable(30) %606, i32 noundef 77)
          to label %607 unwind label %621

607:                                              ; preds = %605
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %603, ptr noundef nonnull align 8 dereferenceable(30) %55, ptr noundef nonnull @.str.10)
          to label %608 unwind label %621

608:                                              ; preds = %607
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #9
  br label %633

609:                                              ; preds = %580
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %613

611:                                              ; preds = %588, %586, %583
  %612 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  br label %613

613:                                              ; preds = %611, %609
  %.pn86 = phi { ptr, i32 } [ %612, %611 ], [ %610, %609 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

614:                                              ; preds = %590
  %615 = landingpad { ptr, i32 }
          cleanup
  br label %618

616:                                              ; preds = %594
  %617 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI15HtnGoalResolverLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  br label %618

618:                                              ; preds = %616, %614
  %.pn88 = phi { ptr, i32 } [ %617, %616 ], [ %615, %614 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #9
  br label %676

619:                                              ; preds = %600
  %620 = landingpad { ptr, i32 }
          catch ptr null
  br label %623

621:                                              ; preds = %607, %605, %602
  %622 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #9
  br label %623

623:                                              ; preds = %621, %619
  %.pn90 = phi { ptr, i32 } [ %622, %621 ], [ %620, %619 ]
  %.34 = extractvalue { ptr, i32 } %.pn90, 0
  %624 = call ptr @__cxa_begin_catch(ptr %.34) #9
  %625 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %626 unwind label %649

626:                                              ; preds = %623
  %627 = load ptr, ptr %625, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #9
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %629 unwind label %651

629:                                              ; preds = %626
  %630 = load ptr, ptr %628, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull align 8 dereferenceable(30) %630, i32 noundef 77)
          to label %631 unwind label %651

631:                                              ; preds = %629
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %627, ptr noundef nonnull align 8 dereferenceable(30) %56, ptr noundef nonnull @.str.11)
          to label %632 unwind label %651

632:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #9
  invoke void @__cxa_end_catch()
          to label %633 unwind label %110

633:                                              ; preds = %595, %608, %632
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #9
  %634 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  store ptr %634, ptr %57, align 8
  %635 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt23_Rb_tree_const_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  %636 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %637 unwind label %654

637:                                              ; preds = %633
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  %638 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.21)
  %639 = call noundef zeroext i1 @_ZN8UnitTest5CheckIbEEbT_(i1 noundef zeroext %638)
  br i1 %639, label %670, label %640

640:                                              ; preds = %637
  %641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %642 unwind label %656

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

645:                                              ; preds = %642
  %646 = load ptr, ptr %644, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %58, ptr noundef nonnull align 8 dereferenceable(30) %646, i32 noundef 79)
          to label %647 unwind label %658

647:                                              ; preds = %645
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %643, ptr noundef nonnull align 8 dereferenceable(30) %58, ptr noundef nonnull @.str.22)
          to label %648 unwind label %658

648:                                              ; preds = %647
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  br label %670

649:                                              ; preds = %623
  %650 = landingpad { ptr, i32 }
          cleanup
  br label %653

651:                                              ; preds = %631, %629, %626
  %652 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #9
  br label %653

653:                                              ; preds = %651, %649
  %.pn91 = phi { ptr, i32 } [ %652, %651 ], [ %650, %649 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

654:                                              ; preds = %633
  %655 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  br label %676

656:                                              ; preds = %640
  %657 = landingpad { ptr, i32 }
          catch ptr null
  br label %660

658:                                              ; preds = %647, %645, %642
  %659 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  br label %660

660:                                              ; preds = %658, %656
  %.pn93 = phi { ptr, i32 } [ %659, %658 ], [ %657, %656 ]
  %.36 = extractvalue { ptr, i32 } %.pn93, 0
  %661 = call ptr @__cxa_begin_catch(ptr %.36) #9
  %662 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7ResultsEv()
          to label %663 unwind label %671

663:                                              ; preds = %660
  %664 = load ptr, ptr %662, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #9
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8UnitTest11CurrentTest7DetailsEv()
          to label %666 unwind label %673

666:                                              ; preds = %663
  %667 = load ptr, ptr %665, align 8, !tbaa !8
  invoke void @_ZN8UnitTest11TestDetailsC1ERKS0_i(ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull align 8 dereferenceable(30) %667, i32 noundef 79)
          to label %668 unwind label %673

668:                                              ; preds = %666
  invoke void @_ZN8UnitTest11TestResults13OnTestFailureERKNS_11TestDetailsEPKc(ptr noundef nonnull align 8 dereferenceable(21) %664, ptr noundef nonnull align 8 dereferenceable(30) %59, ptr noundef nonnull @.str.23)
          to label %669 unwind label %673

669:                                              ; preds = %668
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  invoke void @__cxa_end_catch()
          to label %670 unwind label %110

670:                                              ; preds = %637, %648, %669
  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 @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  call void @llvm.lifetime.end.p0(i64 48, 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

671:                                              ; preds = %660
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %675

673:                                              ; preds = %668, %666, %663
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  br label %675

675:                                              ; preds = %673, %671
  %.pn94 = phi { ptr, i32 } [ %674, %673 ], [ %672, %671 ]
  invoke void @__cxa_end_catch()
          to label %676 unwind label %681

676:                                              ; preds = %675, %653, %613, %570, %529, %489, %446, %405, %365, %322, %281, %241, %198, %154, %654, %618, %530, %494, %406, %370, %282, %246, %159, %110
  %.pn96 = phi { ptr, i32 } [ %111, %110 ], [ %.pn94, %675 ], [ %655, %654 ], [ %.pn91, %653 ], [ %.pn88, %618 ], [ %.pn86, %613 ], [ %.pn82, %570 ], [ %531, %530 ], [ %.pn79, %529 ], [ %.pn76, %494 ], [ %.pn74, %489 ], [ %.pn70, %446 ], [ %407, %406 ], [ %.pn67, %405 ], [ %.pn64, %370 ], [ %.pn62, %365 ], [ %.pn58, %322 ], [ %283, %282 ], [ %.pn55, %281 ], [ %.pn52, %246 ], [ %.pn50, %241 ], [ %.pn46, %198 ], [ %.pn43, %159 ], [ %.pn41, %154 ]
  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 @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #9
  call void @_ZNSt12__shared_ptrI15HtnCompilerBaseIN6Prolog11HtnVariableEELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #9
  br label %677

677:                                              ; preds = %676, %108, %106
  %.pn96.pn = phi { ptr, i32 } [ %.pn96, %676 ], [ %107, %106 ], [ %109, %108 ]
  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 %678

678:                                              ; preds = %677, %104, %102
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %677 ], [ %103, %102 ], [ %105, %104 ]
  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 %679

679:                                              ; preds = %678, %100, %98
  %.pn96.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn, %678 ], [ %99, %98 ], [ %101, %100 ]
  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 %680

680:                                              ; preds = %679, %96
  %.pn96.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn, %679 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn96.pn.pn.pn.pn

681:                                              ; preds = %675, %653, %613, %570, %529, %489, %446, %405, %365, %322, %281, %241, %198, %154
  %682 = landingpad { ptr, i32 }
          catch ptr null
  %683 = extractvalue { ptr, i32 } %682, 0
  call void @__clang_call_terminate(ptr %683) #12
  unreachable
}

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local 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 #0 align 2

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

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

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

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

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

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

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 uwtable
declare dso_local void @_ZN15HtnCompilerBaseIN6Prolog11HtnVariableEE15FindLogicErrorsB5cxx11ESt10shared_ptrI15HtnGoalResolverE(ptr dead_on_unwind noalias writable sret(%"class.std::set") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef) local_unnamed_addr #0 align 2

; 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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSEOS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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