; LLVM IR from ermig1979/Simd :: src/Simd/SimdBaseDetection.ll (ZN4Simd4Base22DetectionLoadStringXmlEPcPKc)

; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.Simd::Xml::Document" = type { %"class.Simd::Xml::Node", %"class.Simd::Xml::MemoryPool" }
%"class.Simd::Xml::Node" = type { %"class.Simd::Xml::Base", i32, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.Simd::Xml::Base" = type { ptr, ptr, i64, i64, ptr }
%"class.Simd::Xml::MemoryPool" = type { ptr, ptr, ptr, [65536 x i8], ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"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] }
%"struct.Simd::Detection::Data::Stage" = type { i32, i32, float }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Simd::Detection::Data::DTree" = type { i32 }
%"struct.Simd::Detection::Data::DTreeNode" = type { i32, float, i32, i32 }
%"struct.Simd::Detection::Data::HaarFeature" = type { i8, [3 x %"struct.Simd::Detection::Data::WeightedRect"] }
%"struct.Simd::Detection::Data::WeightedRect" = type { %"struct.Simd::Detection::Data::Rect", float }
%"struct.Simd::Detection::Data::Rect" = type { i32, i32, i32, i32 }
%"struct.Simd::Detection::Data::LbpFeature" = type { %"struct.Simd::Detection::Data::Rect" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Simd::Detection::Data" = type { %"struct.Simd::Deletable", i8, i8, i8, i32, i32, i32, %"struct.Simd::Point", %"class.std::vector", %"class.std::vector.4", %"class.std::vector.9", %"class.std::vector.14", %"class.std::vector.19", %"class.std::vector.24", %"class.std::vector.29" }
%"struct.Simd::Deletable" = type { ptr }
%"struct.Simd::Point" = type { i64, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Simd::Detection::Data::Stage, std::allocator<Simd::Detection::Data::Stage>>::_Vector_impl" }
%"struct.std::_Vector_base<Simd::Detection::Data::Stage, std::allocator<Simd::Detection::Data::Stage>>::_Vector_impl" = type { %"struct.std::_Vector_base<Simd::Detection::Data::Stage, std::allocator<Simd::Detection::Data::Stage>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Simd::Detection::Data::Stage, std::allocator<Simd::Detection::Data::Stage>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<Simd::Detection::Data::DTree, std::allocator<Simd::Detection::Data::DTree>>::_Vector_impl" }
%"struct.std::_Vector_base<Simd::Detection::Data::DTree, std::allocator<Simd::Detection::Data::DTree>>::_Vector_impl" = type { %"struct.std::_Vector_base<Simd::Detection::Data::DTree, std::allocator<Simd::Detection::Data::DTree>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Simd::Detection::Data::DTree, std::allocator<Simd::Detection::Data::DTree>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<Simd::Detection::Data::DTreeNode, std::allocator<Simd::Detection::Data::DTreeNode>>::_Vector_impl" }
%"struct.std::_Vector_base<Simd::Detection::Data::DTreeNode, std::allocator<Simd::Detection::Data::DTreeNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<Simd::Detection::Data::DTreeNode, std::allocator<Simd::Detection::Data::DTreeNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Simd::Detection::Data::DTreeNode, std::allocator<Simd::Detection::Data::DTreeNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<Simd::Detection::Data::HaarFeature, std::allocator<Simd::Detection::Data::HaarFeature>>::_Vector_impl" }
%"struct.std::_Vector_base<Simd::Detection::Data::HaarFeature, std::allocator<Simd::Detection::Data::HaarFeature>>::_Vector_impl" = type { %"struct.std::_Vector_base<Simd::Detection::Data::HaarFeature, std::allocator<Simd::Detection::Data::HaarFeature>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Simd::Detection::Data::HaarFeature, std::allocator<Simd::Detection::Data::HaarFeature>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.29" = type { %"struct.std::_Vector_base.30" }
%"struct.std::_Vector_base.30" = type { %"struct.std::_Vector_base<Simd::Detection::Data::LbpFeature, std::allocator<Simd::Detection::Data::LbpFeature>>::_Vector_impl" }
%"struct.std::_Vector_base<Simd::Detection::Data::LbpFeature, std::allocator<Simd::Detection::Data::LbpFeature>>::_Vector_impl" = type { %"struct.std::_Vector_base<Simd::Detection::Data::LbpFeature, std::allocator<Simd::Detection::Data::LbpFeature>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Simd::Detection::Data::LbpFeature, std::allocator<Simd::Detection::Data::LbpFeature>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN4Simd4Base5Names7cascadeE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names5BOOSTE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names9stageTypeE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names11featureTypeE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names4HAARE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names3LBPE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names3HOGE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names5widthE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names6heightE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names11stageParamsE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names8maxDepthE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names13featureParamsE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names11maxCatCountE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names6stagesE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names14stageThresholdE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names15weakClassifiersE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names13internalNodesE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names10leafValuesE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names8featuresE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names5rectsE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names6tiltedE = external dso_local global ptr, align 8
@_ZN4Simd4Base5Names4rectE = external dso_local global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@_ZTISt13runtime_error = external constant ptr
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN4Simd4Base22DetectionLoadStringXmlEPcPKc(ptr noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.Simd::Xml::Document", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca i1, align 1
  %15 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i1, align 1
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i1, align 1
  %39 = alloca ptr, align 8
  %40 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i1, align 1
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i1, align 1
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca %"struct.Simd::Detection::Data::Stage", align 4
  %55 = alloca ptr, align 8
  %56 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca i1, align 1
  %60 = alloca ptr, align 8
  %61 = alloca %"class.std::vector.34", align 8
  %62 = alloca %"class.std::vector.14", align 8
  %63 = alloca %"struct.Simd::Detection::Data::DTree", align 4
  %64 = alloca i32, align 4
  %65 = alloca %"struct.Simd::Detection::Data::DTreeNode", align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i64, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca %"struct.Simd::Detection::Data::HaarFeature", align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca %"class.std::vector.34", align 8
  %76 = alloca ptr, align 8
  %77 = alloca %"struct.Simd::Detection::Data::LbpFeature", align 4
  %78 = alloca %"class.std::vector.19", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #10
  store ptr null, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 65672, ptr %7) #10
  invoke void @_ZN4Simd3Xml8DocumentIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %7)
          to label %79 unwind label %104

79:                                               ; preds = %2
  %80 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN4Simd3Xml8DocumentIcE5ParseILi0EEEvPc(ptr noundef nonnull align 8 dereferenceable(65672) %7, ptr noundef %80)
          to label %81 unwind label %108

81:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  %82 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %7, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %83 unwind label %112

83:                                               ; preds = %81
  store ptr %82, ptr %10, align 8, !tbaa !5
  %84 = load ptr, ptr %10, align 8, !tbaa !5
  %85 = icmp eq ptr %84, null
  br i1 %85, label %86, label %198

86:                                               ; preds = %83
  %87 = load ptr, ptr %5, align 8, !tbaa !5
  %88 = icmp eq ptr %87, null
  br i1 %88, label %89, label %147

89:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 392, ptr %11) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %90 unwind label %116

90:                                               ; preds = %89
  %91 = getelementptr inbounds i8, ptr %11, i64 16
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef @.str.22)
          to label %93 unwind label %120

93:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %94 unwind label %124

94:                                               ; preds = %93
  %95 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %95)
          to label %97 unwind label %128

97:                                               ; preds = %94
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %99 unwind label %128

99:                                               ; preds = %97
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  store i1 true, ptr %14, align 1
  %100 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %101 unwind label %133

101:                                              ; preds = %99
  %102 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef %102)
          to label %103 unwind label %137

103:                                              ; preds = %101
  store i1 false, ptr %14, align 1
  invoke void @__cxa_throw(ptr %100, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %137

104:                                              ; preds = %2
  %105 = landingpad { ptr, i32 }
          catch ptr null
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %8, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %9, align 4
  br label %1213

108:                                              ; preds = %79
  %109 = landingpad { ptr, i32 }
          catch ptr null
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %8, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %9, align 4
  br label %1212

112:                                              ; preds = %81
  %113 = landingpad { ptr, i32 }
          catch ptr null
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %8, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %9, align 4
  br label %1211

116:                                              ; preds = %89
  %117 = landingpad { ptr, i32 }
          catch ptr null
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %8, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %9, align 4
  br label %146

120:                                              ; preds = %90
  %121 = landingpad { ptr, i32 }
          catch ptr null
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %8, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %9, align 4
  br label %145

124:                                              ; preds = %93
  %125 = landingpad { ptr, i32 }
          catch ptr null
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %8, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %9, align 4
  br label %132

128:                                              ; preds = %97, %94
  %129 = landingpad { ptr, i32 }
          catch ptr null
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %8, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  br label %132

132:                                              ; preds = %128, %124
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  br label %145

133:                                              ; preds = %99
  %134 = landingpad { ptr, i32 }
          catch ptr null
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %8, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %9, align 4
  br label %141

137:                                              ; preds = %103, %101
  %138 = landingpad { ptr, i32 }
          catch ptr null
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %8, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %141

141:                                              ; preds = %137, %133
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  %142 = load i1, ptr %14, align 1
  br i1 %142, label %143, label %144

143:                                              ; preds = %141
  call void @__cxa_free_exception(ptr %100) #10
  br label %144

144:                                              ; preds = %143, %141
  br label %145

145:                                              ; preds = %144, %132, %120
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #10
  br label %146

146:                                              ; preds = %145, %116
  call void @llvm.lifetime.end.p0(i64 392, ptr %11) #10
  br label %1211

147:                                              ; preds = %86
  call void @llvm.lifetime.start.p0(i64 392, ptr %15) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %148 unwind label %167

148:                                              ; preds = %147
  %149 = getelementptr inbounds i8, ptr %15, i64 16
  %150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef @.str.23)
          to label %151 unwind label %171

151:                                              ; preds = %148
  %152 = load ptr, ptr %5, align 8, !tbaa !5
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef %152)
          to label %154 unwind label %171

154:                                              ; preds = %151
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %153, ptr noundef @.str.24)
          to label %156 unwind label %171

156:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %157 unwind label %175

157:                                              ; preds = %156
  %158 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  %159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %158)
          to label %160 unwind label %179

160:                                              ; preds = %157
  %161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %162 unwind label %179

162:                                              ; preds = %160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #10
  store i1 true, ptr %18, align 1
  %163 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %164 unwind label %184

164:                                              ; preds = %162
  %165 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef %165)
          to label %166 unwind label %188

166:                                              ; preds = %164
  store i1 false, ptr %18, align 1
  invoke void @__cxa_throw(ptr %163, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %188

167:                                              ; preds = %147
  %168 = landingpad { ptr, i32 }
          catch ptr null
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %8, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %9, align 4
  br label %197

171:                                              ; preds = %154, %151, %148
  %172 = landingpad { ptr, i32 }
          catch ptr null
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %8, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %9, align 4
  br label %196

175:                                              ; preds = %156
  %176 = landingpad { ptr, i32 }
          catch ptr null
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %8, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %9, align 4
  br label %183

179:                                              ; preds = %160, %157
  %180 = landingpad { ptr, i32 }
          catch ptr null
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %8, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  br label %183

183:                                              ; preds = %179, %175
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #10
  br label %196

184:                                              ; preds = %162
  %185 = landingpad { ptr, i32 }
          catch ptr null
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %8, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %9, align 4
  br label %192

188:                                              ; preds = %166, %164
  %189 = landingpad { ptr, i32 }
          catch ptr null
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %8, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %192

192:                                              ; preds = %188, %184
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #10
  %193 = load i1, ptr %18, align 1
  br i1 %193, label %194, label %195

194:                                              ; preds = %192
  call void @__cxa_free_exception(ptr %163) #10
  br label %195

195:                                              ; preds = %194, %192
  br label %196

196:                                              ; preds = %195, %183, %171
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15) #10
  br label %197

197:                                              ; preds = %196, %167
  call void @llvm.lifetime.end.p0(i64 392, ptr %15) #10
  br label %1211

198:                                              ; preds = %83
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %199 = load ptr, ptr %10, align 8, !tbaa !5
  %200 = load ptr, ptr @_ZN4Simd4Base5Names7cascadeE, align 8, !tbaa !5
  %201 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %199, ptr noundef %200, i64 noundef 0, i1 noundef zeroext true)
          to label %202 unwind label %207

202:                                              ; preds = %198
  store ptr %201, ptr %19, align 8, !tbaa !5
  %203 = load ptr, ptr %19, align 8, !tbaa !5
  %204 = icmp eq ptr %203, null
  br i1 %204, label %205, label %211

205:                                              ; preds = %202
  %206 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %206, ptr %3, align 8
  store i32 1, ptr %20, align 4
  br label %1200

207:                                              ; preds = %211, %198
  %208 = landingpad { ptr, i32 }
          catch ptr null
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %8, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %9, align 4
  br label %1210

211:                                              ; preds = %202
  %212 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #12
          to label %213 unwind label %207

213:                                              ; preds = %211
  call void @llvm.memset.p0.i64(ptr align 16 %212, i8 0, i64 208, i1 false)
  invoke void @_ZN4Simd9Detection4DataC2Ev(ptr noundef nonnull align 8 dereferenceable(208) %212)
          to label %214 unwind label %236

214:                                              ; preds = %213
  store ptr %212, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #10
  %215 = load ptr, ptr %19, align 8, !tbaa !5
  %216 = load ptr, ptr @_ZN4Simd4Base5Names9stageTypeE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef %215, ptr noundef %216)
          to label %217 unwind label %240

217:                                              ; preds = %214
  %218 = load ptr, ptr @_ZN4Simd4Base5Names5BOOSTE, align 8, !tbaa !5
  %219 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef %218)
          to label %220 unwind label %244

220:                                              ; preds = %217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #10
  br i1 %219, label %221, label %280

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 392, ptr %22) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %222 unwind label %249

222:                                              ; preds = %221
  %223 = getelementptr inbounds i8, ptr %22, i64 16
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef @.str.25)
          to label %225 unwind label %253

225:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %226 unwind label %257

226:                                              ; preds = %225
  %227 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %227)
          to label %229 unwind label %261

229:                                              ; preds = %226
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %231 unwind label %261

231:                                              ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  store i1 true, ptr %25, align 1
  %232 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(128) %22)
          to label %233 unwind label %266

233:                                              ; preds = %231
  %234 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %232, ptr noundef %234)
          to label %235 unwind label %270

235:                                              ; preds = %233
  store i1 false, ptr %25, align 1
  invoke void @__cxa_throw(ptr %232, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %270

236:                                              ; preds = %213
  %237 = landingpad { ptr, i32 }
          catch ptr null
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %8, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %9, align 4
  call void @_ZdlPvm(ptr noundef %212, i64 noundef 208) #13
  br label %1210

240:                                              ; preds = %214
  %241 = landingpad { ptr, i32 }
          catch ptr null
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %8, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %9, align 4
  br label %248

244:                                              ; preds = %217
  %245 = landingpad { ptr, i32 }
          catch ptr null
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %8, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  br label %248

248:                                              ; preds = %244, %240
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #10
  br label %1210

249:                                              ; preds = %221
  %250 = landingpad { ptr, i32 }
          catch ptr null
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %8, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %9, align 4
  br label %279

253:                                              ; preds = %222
  %254 = landingpad { ptr, i32 }
          catch ptr null
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %8, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %9, align 4
  br label %278

257:                                              ; preds = %225
  %258 = landingpad { ptr, i32 }
          catch ptr null
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %8, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %9, align 4
  br label %265

261:                                              ; preds = %229, %226
  %262 = landingpad { ptr, i32 }
          catch ptr null
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %8, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  br label %265

265:                                              ; preds = %261, %257
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  br label %278

266:                                              ; preds = %231
  %267 = landingpad { ptr, i32 }
          catch ptr null
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %8, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %9, align 4
  br label %274

270:                                              ; preds = %235, %233
  %271 = landingpad { ptr, i32 }
          catch ptr null
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %8, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %274

274:                                              ; preds = %270, %266
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  %275 = load i1, ptr %25, align 1
  br i1 %275, label %276, label %277

276:                                              ; preds = %274
  call void @__cxa_free_exception(ptr %232) #10
  br label %277

277:                                              ; preds = %276, %274
  br label %278

278:                                              ; preds = %277, %265, %253
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %22) #10
  br label %279

279:                                              ; preds = %278, %249
  call void @llvm.lifetime.end.p0(i64 392, ptr %22) #10
  br label %1210

280:                                              ; preds = %220
  %281 = load ptr, ptr %6, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %281, i32 0, i32 4
  store i32 0, ptr %282, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #10
  %283 = load ptr, ptr %19, align 8, !tbaa !5
  %284 = load ptr, ptr @_ZN4Simd4Base5Names11featureTypeE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef %283, ptr noundef %284)
          to label %285 unwind label %292

285:                                              ; preds = %280
  %286 = load ptr, ptr @_ZN4Simd4Base5Names4HAARE, align 8, !tbaa !5
  %287 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef %286)
          to label %288 unwind label %296

288:                                              ; preds = %285
  br i1 %287, label %289, label %300

289:                                              ; preds = %288
  %290 = load ptr, ptr %6, align 8, !tbaa !5
  %291 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %290, i32 0, i32 5
  store i32 0, ptr %291, align 8, !tbaa !45
  br label %404

292:                                              ; preds = %280
  %293 = landingpad { ptr, i32 }
          catch ptr null
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %8, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %9, align 4
  br label %1209

296:                                              ; preds = %408, %404, %307, %300, %285
  %297 = landingpad { ptr, i32 }
          catch ptr null
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %8, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %9, align 4
  br label %1208

300:                                              ; preds = %288
  %301 = load ptr, ptr @_ZN4Simd4Base5Names3LBPE, align 8, !tbaa !5
  %302 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef %301)
          to label %303 unwind label %296

303:                                              ; preds = %300
  br i1 %302, label %304, label %307

304:                                              ; preds = %303
  %305 = load ptr, ptr %6, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %305, i32 0, i32 5
  store i32 1, ptr %306, align 8, !tbaa !45
  br label %403

307:                                              ; preds = %303
  %308 = load ptr, ptr @_ZN4Simd4Base5Names3HOGE, align 8, !tbaa !5
  %309 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef %308)
          to label %310 unwind label %296

310:                                              ; preds = %307
  br i1 %309, label %311, label %357

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 392, ptr %27) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %312 unwind label %326

312:                                              ; preds = %311
  %313 = getelementptr inbounds i8, ptr %27, i64 16
  %314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef @.str.26)
          to label %315 unwind label %330

315:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %316 unwind label %334

316:                                              ; preds = %315
  %317 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %317)
          to label %319 unwind label %338

319:                                              ; preds = %316
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %318, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %321 unwind label %338

321:                                              ; preds = %319
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #10
  store i1 true, ptr %30, align 1
  %322 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %323 unwind label %343

323:                                              ; preds = %321
  %324 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %322, ptr noundef %324)
          to label %325 unwind label %347

325:                                              ; preds = %323
  store i1 false, ptr %30, align 1
  invoke void @__cxa_throw(ptr %322, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %347

326:                                              ; preds = %311
  %327 = landingpad { ptr, i32 }
          catch ptr null
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %8, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %9, align 4
  br label %356

330:                                              ; preds = %312
  %331 = landingpad { ptr, i32 }
          catch ptr null
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %8, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %9, align 4
  br label %355

334:                                              ; preds = %315
  %335 = landingpad { ptr, i32 }
          catch ptr null
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %8, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %9, align 4
  br label %342

338:                                              ; preds = %319, %316
  %339 = landingpad { ptr, i32 }
          catch ptr null
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %8, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  br label %342

342:                                              ; preds = %338, %334
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #10
  br label %355

343:                                              ; preds = %321
  %344 = landingpad { ptr, i32 }
          catch ptr null
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %8, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %9, align 4
  br label %351

347:                                              ; preds = %325, %323
  %348 = landingpad { ptr, i32 }
          catch ptr null
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %8, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %351

351:                                              ; preds = %347, %343
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  %352 = load i1, ptr %30, align 1
  br i1 %352, label %353, label %354

353:                                              ; preds = %351
  call void @__cxa_free_exception(ptr %322) #10
  br label %354

354:                                              ; preds = %353, %351
  br label %355

355:                                              ; preds = %354, %342, %330
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27) #10
  br label %356

356:                                              ; preds = %355, %326
  call void @llvm.lifetime.end.p0(i64 392, ptr %27) #10
  br label %1208

357:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 392, ptr %31) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %358 unwind label %372

358:                                              ; preds = %357
  %359 = getelementptr inbounds i8, ptr %31, i64 16
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef @.str.27)
          to label %361 unwind label %376

361:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %362 unwind label %380

362:                                              ; preds = %361
  %363 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %363)
          to label %365 unwind label %384

365:                                              ; preds = %362
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %367 unwind label %384

367:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  store i1 true, ptr %34, align 1
  %368 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %369 unwind label %389

369:                                              ; preds = %367
  %370 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %368, ptr noundef %370)
          to label %371 unwind label %393

371:                                              ; preds = %369
  store i1 false, ptr %34, align 1
  invoke void @__cxa_throw(ptr %368, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %393

372:                                              ; preds = %357
  %373 = landingpad { ptr, i32 }
          catch ptr null
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %8, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %9, align 4
  br label %402

376:                                              ; preds = %358
  %377 = landingpad { ptr, i32 }
          catch ptr null
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %8, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %9, align 4
  br label %401

380:                                              ; preds = %361
  %381 = landingpad { ptr, i32 }
          catch ptr null
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %8, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %9, align 4
  br label %388

384:                                              ; preds = %365, %362
  %385 = landingpad { ptr, i32 }
          catch ptr null
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %8, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %388

388:                                              ; preds = %384, %380
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  br label %401

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

393:                                              ; preds = %371, %369
  %394 = landingpad { ptr, i32 }
          catch ptr null
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %8, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  br label %397

397:                                              ; preds = %393, %389
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #10
  %398 = load i1, ptr %34, align 1
  br i1 %398, label %399, label %400

399:                                              ; preds = %397
  call void @__cxa_free_exception(ptr %368) #10
  br label %400

400:                                              ; preds = %399, %397
  br label %401

401:                                              ; preds = %400, %388, %376
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %31) #10
  br label %402

402:                                              ; preds = %401, %372
  call void @llvm.lifetime.end.p0(i64 392, ptr %31) #10
  br label %1208

403:                                              ; preds = %304
  br label %404

404:                                              ; preds = %403, %289
  %405 = load ptr, ptr %19, align 8, !tbaa !5
  %406 = load ptr, ptr @_ZN4Simd4Base5Names5widthE, align 8, !tbaa !5
  %407 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %405, ptr noundef %406)
          to label %408 unwind label %296

408:                                              ; preds = %404
  %409 = sext i32 %407 to i64
  %410 = load ptr, ptr %6, align 8, !tbaa !5
  %411 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %410, i32 0, i32 7
  %412 = getelementptr inbounds %"struct.Simd::Point", ptr %411, i32 0, i32 0
  store i64 %409, ptr %412, align 8, !tbaa !46
  %413 = load ptr, ptr %19, align 8, !tbaa !5
  %414 = load ptr, ptr @_ZN4Simd4Base5Names6heightE, align 8, !tbaa !5
  %415 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %413, ptr noundef %414)
          to label %416 unwind label %296

416:                                              ; preds = %408
  %417 = sext i32 %415 to i64
  %418 = load ptr, ptr %6, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %418, i32 0, i32 7
  %420 = getelementptr inbounds %"struct.Simd::Point", ptr %419, i32 0, i32 1
  store i64 %417, ptr %420, align 8, !tbaa !47
  %421 = load ptr, ptr %6, align 8, !tbaa !5
  %422 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %421, i32 0, i32 7
  %423 = getelementptr inbounds %"struct.Simd::Point", ptr %422, i32 0, i32 0
  %424 = load i64, ptr %423, align 8, !tbaa !46
  %425 = icmp sle i64 %424, 0
  br i1 %425, label %432, label %426

426:                                              ; preds = %416
  %427 = load ptr, ptr %6, align 8, !tbaa !5
  %428 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %427, i32 0, i32 7
  %429 = getelementptr inbounds %"struct.Simd::Point", ptr %428, i32 0, i32 1
  %430 = load i64, ptr %429, align 8, !tbaa !47
  %431 = icmp sle i64 %430, 0
  br i1 %431, label %432, label %478

432:                                              ; preds = %426, %416
  call void @llvm.lifetime.start.p0(i64 392, ptr %35) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %35)
          to label %433 unwind label %447

433:                                              ; preds = %432
  %434 = getelementptr inbounds i8, ptr %35, i64 16
  %435 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef @.str.28)
          to label %436 unwind label %451

436:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(128) %35)
          to label %437 unwind label %455

437:                                              ; preds = %436
  %438 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %438)
          to label %440 unwind label %459

440:                                              ; preds = %437
  %441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %442 unwind label %459

442:                                              ; preds = %440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #10
  store i1 true, ptr %38, align 1
  %443 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(128) %35)
          to label %444 unwind label %464

444:                                              ; preds = %442
  %445 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %443, ptr noundef %445)
          to label %446 unwind label %468

446:                                              ; preds = %444
  store i1 false, ptr %38, align 1
  invoke void @__cxa_throw(ptr %443, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %468

447:                                              ; preds = %432
  %448 = landingpad { ptr, i32 }
          catch ptr null
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %8, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %9, align 4
  br label %477

451:                                              ; preds = %433
  %452 = landingpad { ptr, i32 }
          catch ptr null
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %8, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %9, align 4
  br label %476

455:                                              ; preds = %436
  %456 = landingpad { ptr, i32 }
          catch ptr null
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %8, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %9, align 4
  br label %463

459:                                              ; preds = %440, %437
  %460 = landingpad { ptr, i32 }
          catch ptr null
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %8, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %463

463:                                              ; preds = %459, %455
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #10
  br label %476

464:                                              ; preds = %442
  %465 = landingpad { ptr, i32 }
          catch ptr null
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %8, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %9, align 4
  br label %472

468:                                              ; preds = %446, %444
  %469 = landingpad { ptr, i32 }
          catch ptr null
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %8, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %472

472:                                              ; preds = %468, %464
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  %473 = load i1, ptr %38, align 1
  br i1 %473, label %474, label %475

474:                                              ; preds = %472
  call void @__cxa_free_exception(ptr %443) #10
  br label %475

475:                                              ; preds = %474, %472
  br label %476

476:                                              ; preds = %475, %463, %451
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %35) #10
  br label %477

477:                                              ; preds = %476, %447
  call void @llvm.lifetime.end.p0(i64 392, ptr %35) #10
  br label %1208

478:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %479 = load ptr, ptr %19, align 8, !tbaa !5
  %480 = load ptr, ptr @_ZN4Simd4Base5Names11stageParamsE, align 8, !tbaa !5
  %481 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %479, ptr noundef %480, i64 noundef 0, i1 noundef zeroext true)
          to label %482 unwind label %502

482:                                              ; preds = %478
  store ptr %481, ptr %39, align 8, !tbaa !5
  %483 = load ptr, ptr %39, align 8, !tbaa !5
  %484 = icmp ne ptr %483, null
  br i1 %484, label %485, label %506

485:                                              ; preds = %482
  %486 = load ptr, ptr %39, align 8, !tbaa !5
  %487 = load ptr, ptr @_ZN4Simd4Base5Names8maxDepthE, align 8, !tbaa !5
  %488 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %486, ptr noundef %487, i64 noundef 0, i1 noundef zeroext true)
          to label %489 unwind label %502

489:                                              ; preds = %485
  %490 = icmp ne ptr %488, null
  br i1 %490, label %491, label %506

491:                                              ; preds = %489
  %492 = load ptr, ptr %39, align 8, !tbaa !5
  %493 = load ptr, ptr @_ZN4Simd4Base5Names8maxDepthE, align 8, !tbaa !5
  %494 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %492, ptr noundef %493)
          to label %495 unwind label %502

495:                                              ; preds = %491
  %496 = icmp eq i32 %494, 1
  %497 = zext i1 %496 to i64
  %498 = select i1 %496, i1 true, i1 false
  %499 = load ptr, ptr %6, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %499, i32 0, i32 1
  %501 = zext i1 %498 to i8
  store i8 %501, ptr %500, align 8, !tbaa !48
  br label %509

502:                                              ; preds = %491, %485, %478
  %503 = landingpad { ptr, i32 }
          catch ptr null
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %8, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %9, align 4
  br label %1207

506:                                              ; preds = %489, %482
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %507, i32 0, i32 1
  store i8 1, ptr %508, align 8, !tbaa !48
  br label %509

509:                                              ; preds = %506, %495
  %510 = load ptr, ptr %6, align 8, !tbaa !5
  %511 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %510, i32 0, i32 1
  %512 = load i8, ptr %511, align 8, !tbaa !48, !range !49, !noundef !50
  %513 = trunc i8 %512 to i1
  br i1 %513, label %560, label %514

514:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 392, ptr %40) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %40)
          to label %515 unwind label %529

515:                                              ; preds = %514
  %516 = getelementptr inbounds i8, ptr %40, i64 16
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef @.str.29)
          to label %518 unwind label %533

518:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %40)
          to label %519 unwind label %537

519:                                              ; preds = %518
  %520 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %520)
          to label %522 unwind label %541

522:                                              ; preds = %519
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %524 unwind label %541

524:                                              ; preds = %522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #10
  store i1 true, ptr %43, align 1
  %525 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(128) %40)
          to label %526 unwind label %546

526:                                              ; preds = %524
  %527 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %525, ptr noundef %527)
          to label %528 unwind label %550

528:                                              ; preds = %526
  store i1 false, ptr %43, align 1
  invoke void @__cxa_throw(ptr %525, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %550

529:                                              ; preds = %514
  %530 = landingpad { ptr, i32 }
          catch ptr null
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %8, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %9, align 4
  br label %559

533:                                              ; preds = %515
  %534 = landingpad { ptr, i32 }
          catch ptr null
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %8, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %9, align 4
  br label %558

537:                                              ; preds = %518
  %538 = landingpad { ptr, i32 }
          catch ptr null
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %8, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %9, align 4
  br label %545

541:                                              ; preds = %522, %519
  %542 = landingpad { ptr, i32 }
          catch ptr null
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %8, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  br label %545

545:                                              ; preds = %541, %537
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #10
  br label %558

546:                                              ; preds = %524
  %547 = landingpad { ptr, i32 }
          catch ptr null
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %8, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %9, align 4
  br label %554

550:                                              ; preds = %528, %526
  %551 = landingpad { ptr, i32 }
          catch ptr null
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %8, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %554

554:                                              ; preds = %550, %546
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  %555 = load i1, ptr %43, align 1
  br i1 %555, label %556, label %557

556:                                              ; preds = %554
  call void @__cxa_free_exception(ptr %525) #10
  br label %557

557:                                              ; preds = %556, %554
  br label %558

558:                                              ; preds = %557, %545, %533
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %40) #10
  br label %559

559:                                              ; preds = %558, %529
  call void @llvm.lifetime.end.p0(i64 392, ptr %40) #10
  br label %1207

560:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %561 = load ptr, ptr %19, align 8, !tbaa !5
  %562 = load ptr, ptr @_ZN4Simd4Base5Names13featureParamsE, align 8, !tbaa !5
  %563 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %561, ptr noundef %562, i64 noundef 0, i1 noundef zeroext true)
          to label %564 unwind label %607

564:                                              ; preds = %560
  store ptr %563, ptr %44, align 8, !tbaa !5
  %565 = load ptr, ptr %44, align 8, !tbaa !5
  %566 = load ptr, ptr @_ZN4Simd4Base5Names11maxCatCountE, align 8, !tbaa !5
  %567 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %565, ptr noundef %566)
          to label %568 unwind label %607

568:                                              ; preds = %564
  %569 = load ptr, ptr %6, align 8, !tbaa !5
  %570 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %569, i32 0, i32 6
  store i32 %567, ptr %570, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %571 = load ptr, ptr %6, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %571, i32 0, i32 6
  %573 = load i32, ptr %572, align 4, !tbaa !51
  %574 = add nsw i32 %573, 31
  %575 = sdiv i32 %574, 32
  store i32 %575, ptr %45, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %576 = load ptr, ptr %6, align 8, !tbaa !5
  %577 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %576, i32 0, i32 6
  %578 = load i32, ptr %577, align 4, !tbaa !51
  %579 = icmp sgt i32 %578, 0
  br i1 %579, label %580, label %582

580:                                              ; preds = %568
  %581 = load i32, ptr %45, align 4, !tbaa !52
  br label %583

582:                                              ; preds = %568
  br label %583

583:                                              ; preds = %582, %580
  %584 = phi i32 [ %581, %580 ], [ 1, %582 ]
  %585 = add nsw i32 3, %584
  store i32 %585, ptr %46, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %586 = load ptr, ptr %19, align 8, !tbaa !5
  %587 = load ptr, ptr @_ZN4Simd4Base5Names6stagesE, align 8, !tbaa !5
  %588 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %586, ptr noundef %587, i64 noundef 0, i1 noundef zeroext true)
          to label %589 unwind label %611

589:                                              ; preds = %583
  store ptr %588, ptr %47, align 8, !tbaa !5
  %590 = load ptr, ptr %47, align 8, !tbaa !5
  %591 = icmp eq ptr %590, null
  br i1 %591, label %592, label %646

592:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 392, ptr %48) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %48)
          to label %593 unwind label %615

593:                                              ; preds = %592
  %594 = getelementptr inbounds i8, ptr %48, i64 16
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %594, ptr noundef @.str.30)
          to label %596 unwind label %619

596:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(128) %48)
          to label %597 unwind label %623

597:                                              ; preds = %596
  %598 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %598)
          to label %600 unwind label %627

600:                                              ; preds = %597
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %602 unwind label %627

602:                                              ; preds = %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #10
  store i1 true, ptr %51, align 1
  %603 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(128) %48)
          to label %604 unwind label %632

604:                                              ; preds = %602
  %605 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %603, ptr noundef %605)
          to label %606 unwind label %636

606:                                              ; preds = %604
  store i1 false, ptr %51, align 1
  invoke void @__cxa_throw(ptr %603, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %636

607:                                              ; preds = %564, %560
  %608 = landingpad { ptr, i32 }
          catch ptr null
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %8, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %9, align 4
  br label %1206

611:                                              ; preds = %651, %646, %583
  %612 = landingpad { ptr, i32 }
          catch ptr null
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %8, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %9, align 4
  br label %1205

615:                                              ; preds = %592
  %616 = landingpad { ptr, i32 }
          catch ptr null
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %8, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %9, align 4
  br label %645

619:                                              ; preds = %593
  %620 = landingpad { ptr, i32 }
          catch ptr null
  %621 = extractvalue { ptr, i32 } %620, 0
  store ptr %621, ptr %8, align 8
  %622 = extractvalue { ptr, i32 } %620, 1
  store i32 %622, ptr %9, align 4
  br label %644

623:                                              ; preds = %596
  %624 = landingpad { ptr, i32 }
          catch ptr null
  %625 = extractvalue { ptr, i32 } %624, 0
  store ptr %625, ptr %8, align 8
  %626 = extractvalue { ptr, i32 } %624, 1
  store i32 %626, ptr %9, align 4
  br label %631

627:                                              ; preds = %600, %597
  %628 = landingpad { ptr, i32 }
          catch ptr null
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %8, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  br label %631

631:                                              ; preds = %627, %623
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #10
  br label %644

632:                                              ; preds = %602
  %633 = landingpad { ptr, i32 }
          catch ptr null
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %8, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %9, align 4
  br label %640

636:                                              ; preds = %606, %604
  %637 = landingpad { ptr, i32 }
          catch ptr null
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %8, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %640

640:                                              ; preds = %636, %632
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  %641 = load i1, ptr %51, align 1
  br i1 %641, label %642, label %643

642:                                              ; preds = %640
  call void @__cxa_free_exception(ptr %603) #10
  br label %643

643:                                              ; preds = %642, %640
  br label %644

644:                                              ; preds = %643, %631, %619
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %48) #10
  br label %645

645:                                              ; preds = %644, %615
  call void @llvm.lifetime.end.p0(i64 392, ptr %48) #10
  br label %1205

646:                                              ; preds = %589
  %647 = load ptr, ptr %6, align 8, !tbaa !5
  %648 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %647, i32 0, i32 8
  %649 = load ptr, ptr %47, align 8, !tbaa !5
  %650 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %649)
          to label %651 unwind label %611

651:                                              ; preds = %646
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %650)
          to label %652 unwind label %611

652:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  store i32 0, ptr %52, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %653 = load ptr, ptr %47, align 8, !tbaa !5
  %654 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %653, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %655 unwind label %660

655:                                              ; preds = %652
  store ptr %654, ptr %53, align 8, !tbaa !5
  br label %656

656:                                              ; preds = %962, %655
  %657 = load ptr, ptr %53, align 8, !tbaa !5
  %658 = icmp ne ptr %657, null
  br i1 %658, label %664, label %659

659:                                              ; preds = %656
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %968

660:                                              ; preds = %959, %652
  %661 = landingpad { ptr, i32 }
          catch ptr null
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %8, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %9, align 4
  br label %967

664:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 12, ptr %54) #10
  %665 = load ptr, ptr %53, align 8, !tbaa !5
  %666 = load ptr, ptr @_ZN4Simd4Base5Names14stageThresholdE, align 8, !tbaa !5
  %667 = invoke noundef float @_ZN4Simd4Base3Xml8GetValueIfEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %665, ptr noundef %666)
          to label %668 unwind label %692

668:                                              ; preds = %664
  %669 = fsub float %667, 0x3EE4F8B580000000
  %670 = getelementptr inbounds %"struct.Simd::Detection::Data::Stage", ptr %54, i32 0, i32 2
  store float %669, ptr %670, align 4, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %671 = load ptr, ptr %53, align 8, !tbaa !5
  %672 = load ptr, ptr @_ZN4Simd4Base5Names15weakClassifiersE, align 8, !tbaa !5
  %673 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %671, ptr noundef %672, i64 noundef 0, i1 noundef zeroext true)
          to label %674 unwind label %696

674:                                              ; preds = %668
  store ptr %673, ptr %55, align 8, !tbaa !5
  %675 = load ptr, ptr %55, align 8, !tbaa !5
  %676 = icmp eq ptr %675, null
  br i1 %676, label %677, label %731

677:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 392, ptr %56) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %56)
          to label %678 unwind label %700

678:                                              ; preds = %677
  %679 = getelementptr inbounds i8, ptr %56, i64 16
  %680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %679, ptr noundef @.str.31)
          to label %681 unwind label %704

681:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(128) %56)
          to label %682 unwind label %708

682:                                              ; preds = %681
  %683 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %683)
          to label %685 unwind label %712

685:                                              ; preds = %682
  %686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %687 unwind label %712

687:                                              ; preds = %685
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  store i1 true, ptr %59, align 1
  %688 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(128) %56)
          to label %689 unwind label %717

689:                                              ; preds = %687
  %690 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %688, ptr noundef %690)
          to label %691 unwind label %721

691:                                              ; preds = %689
  store i1 false, ptr %59, align 1
  invoke void @__cxa_throw(ptr %688, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1228 unwind label %721

692:                                              ; preds = %664
  %693 = landingpad { ptr, i32 }
          catch ptr null
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %8, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %9, align 4
  br label %966

696:                                              ; preds = %744, %734, %731, %668
  %697 = landingpad { ptr, i32 }
          catch ptr null
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %8, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %9, align 4
  br label %965

700:                                              ; preds = %677
  %701 = landingpad { ptr, i32 }
          catch ptr null
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %8, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %9, align 4
  br label %730

704:                                              ; preds = %678
  %705 = landingpad { ptr, i32 }
          catch ptr null
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %8, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %9, align 4
  br label %729

708:                                              ; preds = %681
  %709 = landingpad { ptr, i32 }
          catch ptr null
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %8, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %9, align 4
  br label %716

712:                                              ; preds = %685, %682
  %713 = landingpad { ptr, i32 }
          catch ptr null
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %8, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  br label %716

716:                                              ; preds = %712, %708
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  br label %729

717:                                              ; preds = %687
  %718 = landingpad { ptr, i32 }
          catch ptr null
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %8, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %9, align 4
  br label %725

721:                                              ; preds = %691, %689
  %722 = landingpad { ptr, i32 }
          catch ptr null
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %8, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %725

725:                                              ; preds = %721, %717
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  %726 = load i1, ptr %59, align 1
  br i1 %726, label %727, label %728

727:                                              ; preds = %725
  call void @__cxa_free_exception(ptr %688) #10
  br label %728

728:                                              ; preds = %727, %725
  br label %729

729:                                              ; preds = %728, %716, %704
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %56) #10
  br label %730

730:                                              ; preds = %729, %700
  call void @llvm.lifetime.end.p0(i64 392, ptr %56) #10
  br label %965

731:                                              ; preds = %674
  %732 = load ptr, ptr %55, align 8, !tbaa !5
  %733 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %732)
          to label %734 unwind label %696

734:                                              ; preds = %731
  %735 = trunc i64 %733 to i32
  %736 = getelementptr inbounds %"struct.Simd::Detection::Data::Stage", ptr %54, i32 0, i32 1
  store i32 %735, ptr %736, align 4, !tbaa !56
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %737, i32 0, i32 9
  %739 = call noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %738) #10
  %740 = trunc i64 %739 to i32
  %741 = getelementptr inbounds %"struct.Simd::Detection::Data::Stage", ptr %54, i32 0, i32 0
  store i32 %740, ptr %741, align 4, !tbaa !57
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %742, i32 0, i32 8
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %743, ptr noundef nonnull align 4 dereferenceable(12) %54)
          to label %744 unwind label %696

744:                                              ; preds = %734
  %745 = load ptr, ptr %6, align 8, !tbaa !5
  %746 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %745, i32 0, i32 9
  %747 = load ptr, ptr %6, align 8, !tbaa !5
  %748 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %747, i32 0, i32 8
  %749 = load i32, ptr %52, align 4, !tbaa !52
  %750 = sext i32 %749 to i64
  %751 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %748, i64 noundef %750) #10
  %752 = getelementptr inbounds %"struct.Simd::Detection::Data::Stage", ptr %751, i32 0, i32 0
  %753 = load i32, ptr %752, align 4, !tbaa !57
  %754 = load ptr, ptr %6, align 8, !tbaa !5
  %755 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %754, i32 0, i32 8
  %756 = load i32, ptr %52, align 4, !tbaa !52
  %757 = sext i32 %756 to i64
  %758 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %755, i64 noundef %757) #10
  %759 = getelementptr inbounds %"struct.Simd::Detection::Data::Stage", ptr %758, i32 0, i32 1
  %760 = load i32, ptr %759, align 4, !tbaa !56
  %761 = add nsw i32 %753, %760
  %762 = sext i32 %761 to i64
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %746, i64 noundef %762)
          to label %763 unwind label %696

763:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %764 = load ptr, ptr %55, align 8, !tbaa !5
  %765 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %764, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %766 unwind label %771

766:                                              ; preds = %763
  store ptr %765, ptr %60, align 8, !tbaa !5
  br label %767

767:                                              ; preds = %953, %766
  %768 = load ptr, ptr %60, align 8, !tbaa !5
  %769 = icmp ne ptr %768, null
  br i1 %769, label %775, label %770

770:                                              ; preds = %767
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %958

771:                                              ; preds = %950, %763
  %772 = landingpad { ptr, i32 }
          catch ptr null
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %8, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %9, align 4
  br label %957

775:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #10
  %776 = load ptr, ptr %60, align 8, !tbaa !5
  %777 = load ptr, ptr @_ZN4Simd4Base5Names13internalNodesE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind writable sret(%"class.std::vector.34") align 8 %61, ptr noundef %776, ptr noundef %777)
          to label %778 unwind label %793

778:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #10
  %779 = load ptr, ptr %60, align 8, !tbaa !5
  %780 = load ptr, ptr @_ZN4Simd4Base5Names10leafValuesE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIfEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind writable sret(%"class.std::vector.14") align 8 %62, ptr noundef %779, ptr noundef %780)
          to label %781 unwind label %797

781:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %782 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #10
  %783 = trunc i64 %782 to i32
  %784 = load i32, ptr %46, align 4, !tbaa !52
  %785 = sdiv i32 %783, %784
  %786 = getelementptr inbounds %"struct.Simd::Detection::Data::DTree", ptr %63, i32 0, i32 0
  store i32 %785, ptr %786, align 4, !tbaa !58
  %787 = getelementptr inbounds %"struct.Simd::Detection::Data::DTree", ptr %63, i32 0, i32 0
  %788 = load i32, ptr %787, align 4, !tbaa !58
  %789 = icmp sgt i32 %788, 1
  br i1 %789, label %790, label %801

790:                                              ; preds = %781
  %791 = load ptr, ptr %6, align 8, !tbaa !5
  %792 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %791, i32 0, i32 1
  store i8 0, ptr %792, align 8, !tbaa !48
  br label %801

793:                                              ; preds = %775
  %794 = landingpad { ptr, i32 }
          catch ptr null
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %8, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %9, align 4
  br label %956

797:                                              ; preds = %778
  %798 = landingpad { ptr, i32 }
          catch ptr null
  %799 = extractvalue { ptr, i32 } %798, 0
  store ptr %799, ptr %8, align 8
  %800 = extractvalue { ptr, i32 } %798, 1
  store i32 %800, ptr %9, align 4
  br label %955

801:                                              ; preds = %790, %781
  %802 = load ptr, ptr %6, align 8, !tbaa !5
  %803 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %802, i32 0, i32 9
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %803, ptr noundef nonnull align 4 dereferenceable(4) %63)
          to label %804 unwind label %838

804:                                              ; preds = %801
  %805 = load ptr, ptr %6, align 8, !tbaa !5
  %806 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %805, i32 0, i32 10
  %807 = load ptr, ptr %6, align 8, !tbaa !5
  %808 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %807, i32 0, i32 10
  %809 = call noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %808) #10
  %810 = getelementptr inbounds %"struct.Simd::Detection::Data::DTree", ptr %63, i32 0, i32 0
  %811 = load i32, ptr %810, align 4, !tbaa !58
  %812 = sext i32 %811 to i64
  %813 = add i64 %809, %812
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %806, i64 noundef %813)
          to label %814 unwind label %838

814:                                              ; preds = %804
  %815 = load ptr, ptr %6, align 8, !tbaa !5
  %816 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %815, i32 0, i32 11
  %817 = load ptr, ptr %6, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %817, i32 0, i32 11
  %819 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %818) #10
  %820 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #10
  %821 = add i64 %819, %820
  invoke void @_ZNSt6vectorIfSaIfEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %816, i64 noundef %821)
          to label %822 unwind label %838

822:                                              ; preds = %814
  %823 = load i32, ptr %45, align 4, !tbaa !52
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %842

825:                                              ; preds = %822
  %826 = load ptr, ptr %6, align 8, !tbaa !5
  %827 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %826, i32 0, i32 12
  %828 = load ptr, ptr %6, align 8, !tbaa !5
  %829 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %828, i32 0, i32 12
  %830 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %829) #10
  %831 = getelementptr inbounds %"struct.Simd::Detection::Data::DTree", ptr %63, i32 0, i32 0
  %832 = load i32, ptr %831, align 4, !tbaa !58
  %833 = load i32, ptr %45, align 4, !tbaa !52
  %834 = mul nsw i32 %832, %833
  %835 = sext i32 %834 to i64
  %836 = add i64 %830, %835
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %827, i64 noundef %836)
          to label %837 unwind label %838

837:                                              ; preds = %825
  br label %842

838:                                              ; preds = %825, %814, %804, %801
  %839 = landingpad { ptr, i32 }
          catch ptr null
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %8, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %9, align 4
  br label %954

842:                                              ; preds = %837, %822
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  store i32 0, ptr %64, align 4, !tbaa !52
  br label %843

843:                                              ; preds = %922, %842
  %844 = load i32, ptr %64, align 4, !tbaa !52
  %845 = getelementptr inbounds %"struct.Simd::Detection::Data::DTree", ptr %63, i32 0, i32 0
  %846 = load i32, ptr %845, align 4, !tbaa !58
  %847 = icmp slt i32 %844, %846
  br i1 %847, label %849, label %848

848:                                              ; preds = %843
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %930

849:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #10
  %850 = load i32, ptr %64, align 4, !tbaa !52
  %851 = load i32, ptr %46, align 4, !tbaa !52
  %852 = mul nsw i32 %850, %851
  %853 = add nsw i32 %852, 0
  %854 = sext i32 %853 to i64
  %855 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %854) #10
  %856 = load double, ptr %855, align 8, !tbaa !60
  %857 = fptosi double %856 to i32
  %858 = getelementptr inbounds %"struct.Simd::Detection::Data::DTreeNode", ptr %65, i32 0, i32 2
  store i32 %857, ptr %858, align 4, !tbaa !62
  %859 = load i32, ptr %64, align 4, !tbaa !52
  %860 = load i32, ptr %46, align 4, !tbaa !52
  %861 = mul nsw i32 %859, %860
  %862 = add nsw i32 %861, 1
  %863 = sext i32 %862 to i64
  %864 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %863) #10
  %865 = load double, ptr %864, align 8, !tbaa !60
  %866 = fptosi double %865 to i32
  %867 = getelementptr inbounds %"struct.Simd::Detection::Data::DTreeNode", ptr %65, i32 0, i32 3
  store i32 %866, ptr %867, align 4, !tbaa !64
  %868 = load i32, ptr %64, align 4, !tbaa !52
  %869 = load i32, ptr %46, align 4, !tbaa !52
  %870 = mul nsw i32 %868, %869
  %871 = add nsw i32 %870, 2
  %872 = sext i32 %871 to i64
  %873 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %872) #10
  %874 = load double, ptr %873, align 8, !tbaa !60
  %875 = fptosi double %874 to i32
  %876 = getelementptr inbounds %"struct.Simd::Detection::Data::DTreeNode", ptr %65, i32 0, i32 0
  store i32 %875, ptr %876, align 4, !tbaa !65
  %877 = load i32, ptr %45, align 4, !tbaa !52
  %878 = icmp ne i32 %877, 0
  br i1 %878, label %879, label %908

879:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  store i32 0, ptr %66, align 4, !tbaa !52
  br label %880

880:                                              ; preds = %899, %879
  %881 = load i32, ptr %66, align 4, !tbaa !52
  %882 = load i32, ptr %45, align 4, !tbaa !52
  %883 = icmp slt i32 %881, %882
  br i1 %883, label %885, label %884

884:                                              ; preds = %880
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %906

885:                                              ; preds = %880
  %886 = load ptr, ptr %6, align 8, !tbaa !5
  %887 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %886, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %888 = load i32, ptr %64, align 4, !tbaa !52
  %889 = load i32, ptr %46, align 4, !tbaa !52
  %890 = mul nsw i32 %888, %889
  %891 = add nsw i32 %890, 3
  %892 = load i32, ptr %66, align 4, !tbaa !52
  %893 = add nsw i32 %891, %892
  %894 = sext i32 %893 to i64
  %895 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %894) #10
  %896 = load double, ptr %895, align 8, !tbaa !60
  %897 = fptosi double %896 to i32
  store i32 %897, ptr %67, align 4, !tbaa !52
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %887, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %898 unwind label %902

898:                                              ; preds = %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr %66, align 4, !tbaa !52
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr %66, align 4, !tbaa !52
  br label %880, !llvm.loop !66

902:                                              ; preds = %885
  %903 = landingpad { ptr, i32 }
          catch ptr null
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %8, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %929

906:                                              ; preds = %884
  %907 = getelementptr inbounds %"struct.Simd::Detection::Data::DTreeNode", ptr %65, i32 0, i32 1
  store float 0.000000e+00, ptr %907, align 4, !tbaa !68
  br label %918

908:                                              ; preds = %849
  %909 = load i32, ptr %64, align 4, !tbaa !52
  %910 = load i32, ptr %46, align 4, !tbaa !52
  %911 = mul nsw i32 %909, %910
  %912 = add nsw i32 %911, 3
  %913 = sext i32 %912 to i64
  %914 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %913) #10
  %915 = load double, ptr %914, align 8, !tbaa !60
  %916 = fptrunc double %915 to float
  %917 = getelementptr inbounds %"struct.Simd::Detection::Data::DTreeNode", ptr %65, i32 0, i32 1
  store float %916, ptr %917, align 4, !tbaa !68
  br label %918

918:                                              ; preds = %908, %906
  %919 = load ptr, ptr %6, align 8, !tbaa !5
  %920 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %919, i32 0, i32 10
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %920, ptr noundef nonnull align 4 dereferenceable(16) %65)
          to label %921 unwind label %925

921:                                              ; preds = %918
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #10
  br label %922

922:                                              ; preds = %921
  %923 = load i32, ptr %64, align 4, !tbaa !52
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr %64, align 4, !tbaa !52
  br label %843, !llvm.loop !69

925:                                              ; preds = %918
  %926 = landingpad { ptr, i32 }
          catch ptr null
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %8, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %9, align 4
  br label %929

929:                                              ; preds = %925, %902
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %954

930:                                              ; preds = %848
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  store i64 0, ptr %68, align 8, !tbaa !70
  br label %931

931:                                              ; preds = %942, %930
  %932 = load i64, ptr %68, align 8, !tbaa !70
  %933 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #10
  %934 = icmp ult i64 %932, %933
  br i1 %934, label %936, label %935

935:                                              ; preds = %931
  store i32 14, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %949

936:                                              ; preds = %931
  %937 = load ptr, ptr %6, align 8, !tbaa !5
  %938 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %937, i32 0, i32 11
  %939 = load i64, ptr %68, align 8, !tbaa !70
  %940 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %939) #10
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %938, ptr noundef nonnull align 4 dereferenceable(4) %940)
          to label %941 unwind label %945

941:                                              ; preds = %936
  br label %942

942:                                              ; preds = %941
  %943 = load i64, ptr %68, align 8, !tbaa !70
  %944 = add i64 %943, 1
  store i64 %944, ptr %68, align 8, !tbaa !70
  br label %931, !llvm.loop !71

945:                                              ; preds = %936
  %946 = landingpad { ptr, i32 }
          catch ptr null
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %8, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %954

949:                                              ; preds = %935
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #10
  br label %950

950:                                              ; preds = %949
  %951 = load ptr, ptr %60, align 8, !tbaa !5
  %952 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %951, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %953 unwind label %771

953:                                              ; preds = %950
  store ptr %952, ptr %60, align 8, !tbaa !5
  br label %767, !llvm.loop !72

954:                                              ; preds = %945, %929, %838
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #10
  br label %955

955:                                              ; preds = %954, %797
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #10
  br label %956

956:                                              ; preds = %955, %793
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #10
  br label %957

957:                                              ; preds = %956, %771
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %965

958:                                              ; preds = %770
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %54) #10
  br label %959

959:                                              ; preds = %958
  %960 = load ptr, ptr %53, align 8, !tbaa !5
  %961 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %960, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %962 unwind label %660

962:                                              ; preds = %959
  store ptr %961, ptr %53, align 8, !tbaa !5
  %963 = load i32, ptr %52, align 4, !tbaa !52
  %964 = add nsw i32 %963, 1
  store i32 %964, ptr %52, align 4, !tbaa !52
  br label %656, !llvm.loop !73

965:                                              ; preds = %957, %730, %696
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  br label %966

966:                                              ; preds = %965, %692
  call void @llvm.lifetime.end.p0(i64 12, ptr %54) #10
  br label %967

967:                                              ; preds = %966, %660
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %1204

968:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  %969 = load ptr, ptr %19, align 8, !tbaa !5
  %970 = load ptr, ptr @_ZN4Simd4Base5Names8featuresE, align 8, !tbaa !5
  %971 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %969, ptr noundef %970, i64 noundef 0, i1 noundef zeroext true)
          to label %972 unwind label %993

972:                                              ; preds = %968
  store ptr %971, ptr %69, align 8, !tbaa !5
  %973 = load ptr, ptr %6, align 8, !tbaa !5
  %974 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %973, i32 0, i32 5
  %975 = load i32, ptr %974, align 8, !tbaa !45
  %976 = icmp eq i32 %975, 0
  br i1 %976, label %977, label %1118

977:                                              ; preds = %972
  %978 = load ptr, ptr %6, align 8, !tbaa !5
  %979 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %978, i32 0, i32 2
  store i8 0, ptr %979, align 1, !tbaa !74
  %980 = load ptr, ptr %6, align 8, !tbaa !5
  %981 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %980, i32 0, i32 13
  %982 = load ptr, ptr %69, align 8, !tbaa !5
  %983 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %982)
          to label %984 unwind label %993

984:                                              ; preds = %977
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %981, i64 noundef %983)
          to label %985 unwind label %993

985:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %986 = load ptr, ptr %69, align 8, !tbaa !5
  %987 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %986, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %988 unwind label %997

988:                                              ; preds = %985
  store ptr %987, ptr %70, align 8, !tbaa !5
  br label %989

989:                                              ; preds = %1113, %988
  %990 = load ptr, ptr %70, align 8, !tbaa !5
  %991 = icmp ne ptr %990, null
  br i1 %991, label %1001, label %992

992:                                              ; preds = %989
  store i32 17, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1117

993:                                              ; preds = %1130, %1123, %984, %977, %968
  %994 = landingpad { ptr, i32 }
          catch ptr null
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %8, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %9, align 4
  br label %1203

997:                                              ; preds = %1110, %985
  %998 = landingpad { ptr, i32 }
          catch ptr null
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %8, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %9, align 4
  br label %1116

1001:                                             ; preds = %989
  call void @llvm.lifetime.start.p0(i64 64, ptr %71) #10
  invoke void @_ZN4Simd9Detection4Data11HaarFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(64) %71)
          to label %1002 unwind label %1014

1002:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %1003 = load ptr, ptr %70, align 8, !tbaa !5
  %1004 = load ptr, ptr @_ZN4Simd4Base5Names5rectsE, align 8, !tbaa !5
  %1005 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1003, ptr noundef %1004, i64 noundef 0, i1 noundef zeroext true)
          to label %1006 unwind label %1018

1006:                                             ; preds = %1002
  store ptr %1005, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %1007 = load ptr, ptr %73, align 8, !tbaa !5
  %1008 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1007, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %1009 unwind label %1022

1009:                                             ; preds = %1006
  store ptr %1008, ptr %74, align 8, !tbaa !5
  br label %1010

1010:                                             ; preds = %1076, %1009
  %1011 = load ptr, ptr %74, align 8, !tbaa !5
  %1012 = icmp ne ptr %1011, null
  br i1 %1012, label %1026, label %1013

1013:                                             ; preds = %1010
  store i32 20, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %1084

1014:                                             ; preds = %1001
  %1015 = landingpad { ptr, i32 }
          catch ptr null
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %8, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %9, align 4
  br label %1115

1018:                                             ; preds = %1106, %1090, %1084, %1002
  %1019 = landingpad { ptr, i32 }
          catch ptr null
  %1020 = extractvalue { ptr, i32 } %1019, 0
  store ptr %1020, ptr %8, align 8
  %1021 = extractvalue { ptr, i32 } %1019, 1
  store i32 %1021, ptr %9, align 4
  br label %1114

1022:                                             ; preds = %1073, %1006
  %1023 = landingpad { ptr, i32 }
          catch ptr null
  %1024 = extractvalue { ptr, i32 } %1023, 0
  store ptr %1024, ptr %8, align 8
  %1025 = extractvalue { ptr, i32 } %1023, 1
  store i32 %1025, ptr %9, align 4
  br label %1083

1026:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #10
  %1027 = load ptr, ptr %74, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEE(ptr dead_on_unwind writable sret(%"class.std::vector.34") align 8 %75, ptr noundef %1027)
          to label %1028 unwind label %1079

1028:                                             ; preds = %1026
  %1029 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 0) #10
  %1030 = load double, ptr %1029, align 8, !tbaa !60
  %1031 = fptosi double %1030 to i32
  %1032 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 1
  %1033 = load i32, ptr %72, align 4, !tbaa !52
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %1032, i64 0, i64 %1034
  %1036 = getelementptr inbounds %"struct.Simd::Detection::Data::WeightedRect", ptr %1035, i32 0, i32 0
  %1037 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1036, i32 0, i32 0
  store i32 %1031, ptr %1037, align 4, !tbaa !75
  %1038 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 1) #10
  %1039 = load double, ptr %1038, align 8, !tbaa !60
  %1040 = fptosi double %1039 to i32
  %1041 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 1
  %1042 = load i32, ptr %72, align 4, !tbaa !52
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %1041, i64 0, i64 %1043
  %1045 = getelementptr inbounds %"struct.Simd::Detection::Data::WeightedRect", ptr %1044, i32 0, i32 0
  %1046 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1045, i32 0, i32 1
  store i32 %1040, ptr %1046, align 4, !tbaa !78
  %1047 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 2) #10
  %1048 = load double, ptr %1047, align 8, !tbaa !60
  %1049 = fptosi double %1048 to i32
  %1050 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 1
  %1051 = load i32, ptr %72, align 4, !tbaa !52
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %1050, i64 0, i64 %1052
  %1054 = getelementptr inbounds %"struct.Simd::Detection::Data::WeightedRect", ptr %1053, i32 0, i32 0
  %1055 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1054, i32 0, i32 2
  store i32 %1049, ptr %1055, align 4, !tbaa !79
  %1056 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 3) #10
  %1057 = load double, ptr %1056, align 8, !tbaa !60
  %1058 = fptosi double %1057 to i32
  %1059 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 1
  %1060 = load i32, ptr %72, align 4, !tbaa !52
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %1059, i64 0, i64 %1061
  %1063 = getelementptr inbounds %"struct.Simd::Detection::Data::WeightedRect", ptr %1062, i32 0, i32 0
  %1064 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1063, i32 0, i32 3
  store i32 %1058, ptr %1064, align 4, !tbaa !80
  %1065 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 4) #10
  %1066 = load double, ptr %1065, align 8, !tbaa !60
  %1067 = fptrunc double %1066 to float
  %1068 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 1
  %1069 = load i32, ptr %72, align 4, !tbaa !52
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %1068, i64 0, i64 %1070
  %1072 = getelementptr inbounds %"struct.Simd::Detection::Data::WeightedRect", ptr %1071, i32 0, i32 1
  store float %1067, ptr %1072, align 4, !tbaa !81
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #10
  br label %1073

1073:                                             ; preds = %1028
  %1074 = load ptr, ptr %74, align 8, !tbaa !5
  %1075 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1074, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %1076 unwind label %1022

1076:                                             ; preds = %1073
  store ptr %1075, ptr %74, align 8, !tbaa !5
  %1077 = load i32, ptr %72, align 4, !tbaa !52
  %1078 = add nsw i32 %1077, 1
  store i32 %1078, ptr %72, align 4, !tbaa !52
  br label %1010, !llvm.loop !82

1079:                                             ; preds = %1026
  %1080 = landingpad { ptr, i32 }
          catch ptr null
  %1081 = extractvalue { ptr, i32 } %1080, 0
  store ptr %1081, ptr %8, align 8
  %1082 = extractvalue { ptr, i32 } %1080, 1
  store i32 %1082, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #10
  br label %1083

1083:                                             ; preds = %1079, %1022
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %1114

1084:                                             ; preds = %1013
  %1085 = load ptr, ptr %70, align 8, !tbaa !5
  %1086 = load ptr, ptr @_ZN4Simd4Base5Names6tiltedE, align 8, !tbaa !5
  %1087 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1085, ptr noundef %1086, i64 noundef 0, i1 noundef zeroext true)
          to label %1088 unwind label %1018

1088:                                             ; preds = %1084
  %1089 = icmp ne ptr %1087, null
  br i1 %1089, label %1090, label %1096

1090:                                             ; preds = %1088
  %1091 = load ptr, ptr %70, align 8, !tbaa !5
  %1092 = load ptr, ptr @_ZN4Simd4Base5Names6tiltedE, align 8, !tbaa !5
  %1093 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %1091, ptr noundef %1092)
          to label %1094 unwind label %1018

1094:                                             ; preds = %1090
  %1095 = icmp ne i32 %1093, 0
  br label %1096

1096:                                             ; preds = %1094, %1088
  %1097 = phi i1 [ false, %1088 ], [ %1095, %1094 ]
  %1098 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 0
  %1099 = zext i1 %1097 to i8
  store i8 %1099, ptr %1098, align 4, !tbaa !83
  %1100 = getelementptr inbounds %"struct.Simd::Detection::Data::HaarFeature", ptr %71, i32 0, i32 0
  %1101 = load i8, ptr %1100, align 4, !tbaa !83, !range !49, !noundef !50
  %1102 = trunc i8 %1101 to i1
  br i1 %1102, label %1103, label %1106

1103:                                             ; preds = %1096
  %1104 = load ptr, ptr %6, align 8, !tbaa !5
  %1105 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1104, i32 0, i32 2
  store i8 1, ptr %1105, align 1, !tbaa !74
  br label %1106

1106:                                             ; preds = %1103, %1096
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1107, i32 0, i32 13
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1108, ptr noundef nonnull align 4 dereferenceable(64) %71)
          to label %1109 unwind label %1018

1109:                                             ; preds = %1106
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %71) #10
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load ptr, ptr %70, align 8, !tbaa !5
  %1112 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1111, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %1113 unwind label %997

1113:                                             ; preds = %1110
  store ptr %1112, ptr %70, align 8, !tbaa !5
  br label %989, !llvm.loop !85

1114:                                             ; preds = %1083, %1018
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %1115

1115:                                             ; preds = %1114, %1014
  call void @llvm.lifetime.end.p0(i64 64, ptr %71) #10
  br label %1116

1116:                                             ; preds = %1115, %997
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1203

1117:                                             ; preds = %992
  br label %1118

1118:                                             ; preds = %1117, %972
  %1119 = load ptr, ptr %6, align 8, !tbaa !5
  %1120 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1119, i32 0, i32 5
  %1121 = load i32, ptr %1120, align 8, !tbaa !45
  %1122 = icmp eq i32 %1121, 1
  br i1 %1122, label %1123, label %1199

1123:                                             ; preds = %1118
  %1124 = load ptr, ptr %6, align 8, !tbaa !5
  %1125 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1124, i32 0, i32 3
  store i8 1, ptr %1125, align 2, !tbaa !86
  %1126 = load ptr, ptr %6, align 8, !tbaa !5
  %1127 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1126, i32 0, i32 14
  %1128 = load ptr, ptr %69, align 8, !tbaa !5
  %1129 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %1128)
          to label %1130 unwind label %993

1130:                                             ; preds = %1123
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %1127, i64 noundef %1129)
          to label %1131 unwind label %993

1131:                                             ; preds = %1130
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %1132 = load ptr, ptr %69, align 8, !tbaa !5
  %1133 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1132, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %1134 unwind label %1139

1134:                                             ; preds = %1131
  store ptr %1133, ptr %76, align 8, !tbaa !5
  br label %1135

1135:                                             ; preds = %1190, %1134
  %1136 = load ptr, ptr %76, align 8, !tbaa !5
  %1137 = icmp ne ptr %1136, null
  br i1 %1137, label %1143, label %1138

1138:                                             ; preds = %1135
  store i32 23, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %1198

1139:                                             ; preds = %1187, %1131
  %1140 = landingpad { ptr, i32 }
          catch ptr null
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %8, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %9, align 4
  br label %1197

1143:                                             ; preds = %1135
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #10
  invoke void @_ZN4Simd9Detection4Data10LbpFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %77)
          to label %1144 unwind label %1175

1144:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #10
  %1145 = load ptr, ptr %76, align 8, !tbaa !5
  %1146 = load ptr, ptr @_ZN4Simd4Base5Names4rectE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIiEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind writable sret(%"class.std::vector.19") align 8 %78, ptr noundef %1145, ptr noundef %1146)
          to label %1147 unwind label %1179

1147:                                             ; preds = %1144
  %1148 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 0) #10
  %1149 = load i32, ptr %1148, align 4, !tbaa !52
  %1150 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1151 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1150, i32 0, i32 0
  store i32 %1149, ptr %1151, align 4, !tbaa !87
  %1152 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 1) #10
  %1153 = load i32, ptr %1152, align 4, !tbaa !52
  %1154 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1155 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1154, i32 0, i32 1
  store i32 %1153, ptr %1155, align 4, !tbaa !89
  %1156 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 2) #10
  %1157 = load i32, ptr %1156, align 4, !tbaa !52
  %1158 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1159 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1158, i32 0, i32 2
  store i32 %1157, ptr %1159, align 4, !tbaa !90
  %1160 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 3) #10
  %1161 = load i32, ptr %1160, align 4, !tbaa !52
  %1162 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1163 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1162, i32 0, i32 3
  store i32 %1161, ptr %1163, align 4, !tbaa !91
  %1164 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1165 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1164, i32 0, i32 2
  %1166 = load i32, ptr %1165, align 4, !tbaa !90
  %1167 = getelementptr inbounds %"struct.Simd::Detection::Data::LbpFeature", ptr %77, i32 0, i32 0
  %1168 = getelementptr inbounds %"struct.Simd::Detection::Data::Rect", ptr %1167, i32 0, i32 3
  %1169 = load i32, ptr %1168, align 4, !tbaa !91
  %1170 = mul nsw i32 %1166, %1169
  %1171 = icmp sgt i32 %1170, 256
  br i1 %1171, label %1172, label %1183

1172:                                             ; preds = %1147
  %1173 = load ptr, ptr %6, align 8, !tbaa !5
  %1174 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1173, i32 0, i32 3
  store i8 0, ptr %1174, align 2, !tbaa !86
  br label %1183

1175:                                             ; preds = %1143
  %1176 = landingpad { ptr, i32 }
          catch ptr null
  %1177 = extractvalue { ptr, i32 } %1176, 0
  store ptr %1177, ptr %8, align 8
  %1178 = extractvalue { ptr, i32 } %1176, 1
  store i32 %1178, ptr %9, align 4
  br label %1196

1179:                                             ; preds = %1144
  %1180 = landingpad { ptr, i32 }
          catch ptr null
  %1181 = extractvalue { ptr, i32 } %1180, 0
  store ptr %1181, ptr %8, align 8
  %1182 = extractvalue { ptr, i32 } %1180, 1
  store i32 %1182, ptr %9, align 4
  br label %1195

1183:                                             ; preds = %1172, %1147
  %1184 = load ptr, ptr %6, align 8, !tbaa !5
  %1185 = getelementptr inbounds %"struct.Simd::Detection::Data", ptr %1184, i32 0, i32 14
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1185, ptr noundef nonnull align 4 dereferenceable(16) %77)
          to label %1186 unwind label %1191

1186:                                             ; preds = %1183
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load ptr, ptr %76, align 8, !tbaa !5
  %1189 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %1188, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %1190 unwind label %1139

1190:                                             ; preds = %1187
  store ptr %1189, ptr %76, align 8, !tbaa !5
  br label %1135, !llvm.loop !92

1191:                                             ; preds = %1183
  %1192 = landingpad { ptr, i32 }
          catch ptr null
  %1193 = extractvalue { ptr, i32 } %1192, 0
  store ptr %1193, ptr %8, align 8
  %1194 = extractvalue { ptr, i32 } %1192, 1
  store i32 %1194, ptr %9, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #10
  br label %1195

1195:                                             ; preds = %1191, %1179
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #10
  br label %1196

1196:                                             ; preds = %1195, %1175
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  br label %1197

1197:                                             ; preds = %1196, %1139
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %1203

1198:                                             ; preds = %1138
  br label %1199

1199:                                             ; preds = %1198, %1118
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #10
  store i32 0, ptr %20, align 4
  br label %1200

1200:                                             ; preds = %1199, %205
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %7) #10
  call void @llvm.lifetime.end.p0(i64 65672, ptr %7) #10
  %1201 = load i32, ptr %20, align 4
  switch i32 %1201, label %1226 [
    i32 0, label %1202
  ]

1202:                                             ; preds = %1200
  br label %1224

1203:                                             ; preds = %1197, %1116, %993
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  br label %1204

1204:                                             ; preds = %1203, %967
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %1205

1205:                                             ; preds = %1204, %645, %611
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1206

1206:                                             ; preds = %1205, %607
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %1207

1207:                                             ; preds = %1206, %559, %502
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %1208

1208:                                             ; preds = %1207, %477, %402, %356, %296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %1209

1209:                                             ; preds = %1208, %292
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #10
  br label %1210

1210:                                             ; preds = %1209, %279, %248, %236, %207
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  br label %1211

1211:                                             ; preds = %1210, %197, %146, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %1212

1212:                                             ; preds = %1211, %108
  call void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %7) #10
  br label %1213

1213:                                             ; preds = %1212, %104
  call void @llvm.lifetime.end.p0(i64 65672, ptr %7) #10
  br label %1214

1214:                                             ; preds = %1213
  %1215 = load ptr, ptr %8, align 8
  %1216 = call ptr @__cxa_begin_catch(ptr %1215) #10
  %1217 = load ptr, ptr %6, align 8, !tbaa !5
  %1218 = icmp eq ptr %1217, null
  br i1 %1218, label %1223, label %1219

1219:                                             ; preds = %1214
  %1220 = load ptr, ptr %1217, align 8, !tbaa !93
  %1221 = getelementptr inbounds ptr, ptr %1220, i64 1
  %1222 = load ptr, ptr %1221, align 8
  call void %1222(ptr noundef nonnull align 8 dereferenceable(208) %1217) #10
  br label %1223

1223:                                             ; preds = %1219, %1214
  store ptr null, ptr %6, align 8, !tbaa !5
  call void @__cxa_end_catch()
  br label %1224

1224:                                             ; preds = %1223, %1202
  %1225 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %1225, ptr %3, align 8
  store i32 1, ptr %20, align 4
  br label %1226

1226:                                             ; preds = %1224, %1200
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #10
  %1227 = load ptr, ptr %3, align 8
  ret ptr %1227

1228:                                             ; preds = %691, %606, %528, %446, %371, %325, %235, %166, %103
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, i64 noundef, i1 noundef zeroext) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #3 align 2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd9Detection4DataC2Ev(ptr noundef nonnull align 8 dereferenceable(208)) unnamed_addr #2 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef) #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) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZN4Simd4Base3Xml8GetValueIfEET_PNS_3Xml4NodeIcEEPKc(ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.34") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIfEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.14") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, i64 noundef, i1 noundef zeroext) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd9Detection4Data11HaarFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.34") align 8, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(64)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIiEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.19") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672)) unnamed_addr #9 align 2

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

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 = { 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 #3 = { 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 #4 = { "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 = { 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 #6 = { 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 #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { 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 #9 = { 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 #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !13, i64 12}
!10 = !{!"_ZTSN4Simd9Detection4DataE", !11, i64 0, !12, i64 8, !12, i64 9, !12, i64 10, !13, i64 12, !14, i64 16, !13, i64 20, !15, i64 24, !17, i64 40, !21, i64 64, !25, i64 88, !29, i64 112, !33, i64 136, !37, i64 160, !41, i64 184}
!11 = !{!"_ZTSN4Simd9DeletableE"}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS22SimdDetectionInfoFlags", !7, i64 0}
!15 = !{!"_ZTSN4Simd5PointIlEE", !16, i64 0, !16, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt6vectorIfSaIfEE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!10, !14, i64 16}
!46 = !{!10, !16, i64 24}
!47 = !{!10, !16, i64 32}
!48 = !{!10, !12, i64 8}
!49 = !{i8 0, i8 2}
!50 = !{}
!51 = !{!10, !13, i64 20}
!52 = !{!13, !13, i64 0}
!53 = !{!54, !55, i64 8}
!54 = !{!"_ZTSN4Simd9Detection4Data5StageE", !13, i64 0, !13, i64 4, !55, i64 8}
!55 = !{!"float", !7, i64 0}
!56 = !{!54, !13, i64 4}
!57 = !{!54, !13, i64 0}
!58 = !{!59, !13, i64 0}
!59 = !{!"_ZTSN4Simd9Detection4Data5DTreeE", !13, i64 0}
!60 = !{!61, !61, i64 0}
!61 = !{!"double", !7, i64 0}
!62 = !{!63, !13, i64 8}
!63 = !{!"_ZTSN4Simd9Detection4Data9DTreeNodeE", !13, i64 0, !55, i64 4, !13, i64 8, !13, i64 12}
!64 = !{!63, !13, i64 12}
!65 = !{!63, !13, i64 0}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = !{!63, !55, i64 4}
!69 = distinct !{!69, !67}
!70 = !{!16, !16, i64 0}
!71 = distinct !{!71, !67}
!72 = distinct !{!72, !67}
!73 = distinct !{!73, !67}
!74 = !{!10, !12, i64 9}
!75 = !{!76, !13, i64 0}
!76 = !{!"_ZTSN4Simd9Detection4Data12WeightedRectE", !77, i64 0, !55, i64 16}
!77 = !{!"_ZTSN4Simd9Detection4Data4RectE", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12}
!78 = !{!76, !13, i64 4}
!79 = !{!76, !13, i64 8}
!80 = !{!76, !13, i64 12}
!81 = !{!76, !55, i64 16}
!82 = distinct !{!82, !67}
!83 = !{!84, !12, i64 0}
!84 = !{!"_ZTSN4Simd9Detection4Data11HaarFeatureE", !12, i64 0, !7, i64 4}
!85 = distinct !{!85, !67}
!86 = !{!10, !12, i64 10}
!87 = !{!88, !13, i64 0}
!88 = !{!"_ZTSN4Simd9Detection4Data10LbpFeatureE", !77, i64 0}
!89 = !{!88, !13, i64 4}
!90 = !{!88, !13, i64 8}
!91 = !{!88, !13, i64 12}
!92 = distinct !{!92, !67}
!93 = !{!94, !94, i64 0}
!94 = !{!"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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.Simd::Xml::Document" = type { %"class.Simd::Xml::Node", %"class.Simd::Xml::MemoryPool" }
%"class.Simd::Xml::Node" = type { %"class.Simd::Xml::Base", i32, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.Simd::Xml::Base" = type { ptr, ptr, i64, i64, ptr }
%"class.Simd::Xml::MemoryPool" = type { ptr, ptr, ptr, [65536 x i8], ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"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] }
%"struct.Simd::Detection::Data::Stage" = type { i32, i32, float }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Simd::Detection::Data::DTree" = type { i32 }
%"struct.Simd::Detection::Data::DTreeNode" = type { i32, float, i32, i32 }
%"struct.Simd::Detection::Data::HaarFeature" = type { i8, [3 x %"struct.Simd::Detection::Data::WeightedRect"] }
%"struct.Simd::Detection::Data::WeightedRect" = type { %"struct.Simd::Detection::Data::Rect", float }
%"struct.Simd::Detection::Data::Rect" = type { i32, i32, i32, i32 }
%"struct.Simd::Detection::Data::LbpFeature" = type { %"struct.Simd::Detection::Data::Rect" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN4Simd4Base5Names7cascadeE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names5BOOSTE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names9stageTypeE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names11featureTypeE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names4HAARE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names3LBPE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names3HOGE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names5widthE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names6heightE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names11stageParamsE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names8maxDepthE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names13featureParamsE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names11maxCatCountE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names6stagesE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names14stageThresholdE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names15weakClassifiersE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names13internalNodesE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names10leafValuesE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names8featuresE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names5rectsE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names6tiltedE = external dso_local local_unnamed_addr global ptr, align 8
@_ZN4Simd4Base5Names4rectE = external dso_local local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@_ZTISt13runtime_error = external constant ptr
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN4Simd4Base22DetectionLoadStringXmlEPcPKc(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.Simd::Xml::Document", align 8
  %4 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"struct.Simd::Detection::Data::Stage", align 4
  %31 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::vector.34", align 8
  %35 = alloca %"class.std::vector.14", align 8
  %36 = alloca %"struct.Simd::Detection::Data::DTree", align 4
  %37 = alloca %"struct.Simd::Detection::Data::DTreeNode", align 4
  %38 = alloca i32, align 4
  %39 = alloca %"struct.Simd::Detection::Data::HaarFeature", align 4
  %40 = alloca %"class.std::vector.34", align 8
  %41 = alloca %"struct.Simd::Detection::Data::LbpFeature", align 4
  %42 = alloca %"class.std::vector.19", align 8
  call void @llvm.lifetime.start.p0(i64 65672, ptr nonnull %3) #11
  invoke void @_ZN4Simd3Xml8DocumentIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %3)
          to label %43 unwind label %.thread264

43:                                               ; preds = %2
  invoke void @_ZN4Simd3Xml8DocumentIcE5ParseILi0EEEvPc(ptr noundef nonnull align 8 dereferenceable(65672) %3, ptr noundef %0)
          to label %44 unwind label %68

44:                                               ; preds = %43
  %45 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %46 unwind label %70

46:                                               ; preds = %44
  %47 = icmp eq ptr %45, null
  br i1 %47, label %48, label %122

48:                                               ; preds = %46
  %49 = icmp eq ptr %1, null
  br i1 %49, label %50, label %87

50:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %4) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %4)
          to label %51 unwind label %72

51:                                               ; preds = %50
  %52 = getelementptr inbounds i8, ptr %4, i64 16
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull @.str.22)
          to label %54 unwind label %74

54:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(128) %4)
          to label %55 unwind label %76

55:                                               ; preds = %54
  %56 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  %57 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %56)
          to label %58 unwind label %78

58:                                               ; preds = %55
  %59 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %60 unwind label %78

60:                                               ; preds = %58
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #11
  %61 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(128) %4)
          to label %62 unwind label %.thread

62:                                               ; preds = %60
  %63 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef %63)
          to label %65 unwind label %.thread214

.thread214:                                       ; preds = %62
  %64 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  br label %84

65:                                               ; preds = %62
  invoke void @__cxa_throw(ptr nonnull %61, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %82

.thread264:                                       ; preds = %2
  %66 = landingpad { ptr, i32 }
          catch ptr null
  %.62267 = extractvalue { ptr, i32 } %66, 0
  call void @llvm.lifetime.end.p0(i64 65672, ptr nonnull %3) #11
  %67 = call ptr @__cxa_begin_catch(ptr %.62267) #11
  br label %679

68:                                               ; preds = %43
  %69 = landingpad { ptr, i32 }
          catch ptr null
  br label %672

70:                                               ; preds = %44
  %71 = landingpad { ptr, i32 }
          catch ptr null
  br label %672

72:                                               ; preds = %50
  %73 = landingpad { ptr, i32 }
          catch ptr null
  br label %86

74:                                               ; preds = %51
  %75 = landingpad { ptr, i32 }
          catch ptr null
  br label %85

76:                                               ; preds = %54
  %77 = landingpad { ptr, i32 }
          catch ptr null
  br label %80

78:                                               ; preds = %58, %55
  %79 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  br label %80

80:                                               ; preds = %78, %76
  %.pn209 = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #11
  br label %85

.thread:                                          ; preds = %60
  %81 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  br label %84

82:                                               ; preds = %65
  %83 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  br label %85

84:                                               ; preds = %.thread214, %.thread
  %.pn210213 = phi { ptr, i32 } [ %81, %.thread ], [ %64, %.thread214 ]
  call void @__cxa_free_exception(ptr %61) #11
  br label %85

85:                                               ; preds = %82, %84, %80, %74
  %.pn210.pn = phi { ptr, i32 } [ %.pn210213, %84 ], [ %83, %82 ], [ %.pn209, %80 ], [ %75, %74 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %4) #11
  br label %86

86:                                               ; preds = %85, %72
  %.pn210.pn.pn = phi { ptr, i32 } [ %.pn210.pn, %85 ], [ %73, %72 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %4) #11
  br label %672

87:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %7) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %88 unwind label %107

88:                                               ; preds = %87
  %89 = getelementptr inbounds i8, ptr %7, i64 16
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull @.str.23)
          to label %91 unwind label %109

91:                                               ; preds = %88
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull %1)
          to label %93 unwind label %109

93:                                               ; preds = %91
  %94 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull @.str.24)
          to label %95 unwind label %109

95:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %96 unwind label %111

96:                                               ; preds = %95
  %97 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %97)
          to label %99 unwind label %113

99:                                               ; preds = %96
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %101 unwind label %113

101:                                              ; preds = %99
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  %102 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %103 unwind label %.thread216

103:                                              ; preds = %101
  %104 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef %104)
          to label %106 unwind label %.thread220

.thread220:                                       ; preds = %103
  %105 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  br label %119

106:                                              ; preds = %103
  invoke void @__cxa_throw(ptr nonnull %102, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %117

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

109:                                              ; preds = %93, %91, %88
  %110 = landingpad { ptr, i32 }
          catch ptr null
  br label %120

111:                                              ; preds = %95
  %112 = landingpad { ptr, i32 }
          catch ptr null
  br label %115

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

115:                                              ; preds = %113, %111
  %.pn207 = phi { ptr, i32 } [ %114, %113 ], [ %112, %111 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  br label %120

.thread216:                                       ; preds = %101
  %116 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  br label %119

117:                                              ; preds = %106
  %118 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  br label %120

119:                                              ; preds = %.thread220, %.thread216
  %.pn208219 = phi { ptr, i32 } [ %116, %.thread216 ], [ %105, %.thread220 ]
  call void @__cxa_free_exception(ptr %102) #11
  br label %120

120:                                              ; preds = %117, %119, %115, %109
  %.pn208.pn = phi { ptr, i32 } [ %.pn208219, %119 ], [ %118, %117 ], [ %.pn207, %115 ], [ %110, %109 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #11
  br label %121

121:                                              ; preds = %120, %107
  %.pn208.pn.pn = phi { ptr, i32 } [ %.pn208.pn, %120 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #11
  br label %672

122:                                              ; preds = %46
  %123 = load ptr, ptr @_ZN4Simd4Base5Names7cascadeE, align 8, !tbaa !5
  %124 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %45, ptr noundef %123, i64 noundef 0, i1 noundef zeroext true)
          to label %125 unwind label %126

125:                                              ; preds = %122
  %.not206 = icmp eq ptr %124, null
  br i1 %.not206, label %669, label %128

126:                                              ; preds = %128, %122
  %127 = landingpad { ptr, i32 }
          catch ptr null
  br label %672

128:                                              ; preds = %125
  %129 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #13
          to label %130 unwind label %126

130:                                              ; preds = %128
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(208) %129, i8 0, i64 208, i1 false)
  invoke void @_ZN4Simd9Detection4DataC2Ev(ptr noundef nonnull align 8 dereferenceable(208) %129)
          to label %131 unwind label %153

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #11
  %132 = load ptr, ptr @_ZN4Simd4Base5Names9stageTypeE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull %124, ptr noundef %132)
          to label %133 unwind label %155

133:                                              ; preds = %131
  %134 = load ptr, ptr @_ZN4Simd4Base5Names5BOOSTE, align 8, !tbaa !5
  %135 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %134)
          to label %136 unwind label %157

136:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #11
  br i1 %135, label %137, label %175

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %11) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %138 unwind label %160

138:                                              ; preds = %137
  %139 = getelementptr inbounds i8, ptr %11, i64 16
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull @.str.25)
          to label %141 unwind label %162

141:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %142 unwind label %164

142:                                              ; preds = %141
  %143 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %143)
          to label %145 unwind label %166

145:                                              ; preds = %142
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %147 unwind label %166

147:                                              ; preds = %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  %148 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %149 unwind label %.thread222

149:                                              ; preds = %147
  %150 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef %150)
          to label %152 unwind label %.thread226

.thread226:                                       ; preds = %149
  %151 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  br label %172

152:                                              ; preds = %149
  invoke void @__cxa_throw(ptr nonnull %148, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %170

153:                                              ; preds = %130
  %154 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZdlPvm(ptr noundef nonnull %129, i64 noundef 208) #14
  br label %672

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

157:                                              ; preds = %133
  %158 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  br label %159

159:                                              ; preds = %157, %155
  %.pn = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #11
  br label %672

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

162:                                              ; preds = %138
  %163 = landingpad { ptr, i32 }
          catch ptr null
  br label %173

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

166:                                              ; preds = %145, %142
  %167 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %168

168:                                              ; preds = %166, %164
  %.pn204 = phi { ptr, i32 } [ %167, %166 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  br label %173

.thread222:                                       ; preds = %147
  %169 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  br label %172

170:                                              ; preds = %152
  %171 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  br label %173

172:                                              ; preds = %.thread226, %.thread222
  %.pn205225 = phi { ptr, i32 } [ %169, %.thread222 ], [ %151, %.thread226 ]
  call void @__cxa_free_exception(ptr %148) #11
  br label %173

173:                                              ; preds = %170, %172, %168, %162
  %.pn205.pn = phi { ptr, i32 } [ %.pn205225, %172 ], [ %171, %170 ], [ %.pn204, %168 ], [ %163, %162 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #11
  br label %174

174:                                              ; preds = %173, %160
  %.pn205.pn.pn = phi { ptr, i32 } [ %.pn205.pn, %173 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %11) #11
  br label %672

175:                                              ; preds = %136
  %176 = getelementptr inbounds i8, ptr %129, i64 12
  store i32 0, ptr %176, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #11
  %177 = load ptr, ptr @_ZN4Simd4Base5Names11featureTypeE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull %124, ptr noundef %177)
          to label %178 unwind label %181

178:                                              ; preds = %175
  %179 = load ptr, ptr @_ZN4Simd4Base5Names4HAARE, align 8, !tbaa !5
  %180 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %179)
  br i1 %180, label %253, label %185

181:                                              ; preds = %175
  %182 = landingpad { ptr, i32 }
          catch ptr null
  br label %671

183:                                              ; preds = %257, %253
  %184 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

185:                                              ; preds = %178
  %186 = load ptr, ptr @_ZN4Simd4Base5Names3LBPE, align 8, !tbaa !5
  %187 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %186)
  br i1 %187, label %253, label %188

188:                                              ; preds = %185
  %189 = load ptr, ptr @_ZN4Simd4Base5Names3HOGE, align 8, !tbaa !5
  %190 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %189)
  br i1 %190, label %191, label %222

191:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %15) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %192 unwind label %207

192:                                              ; preds = %191
  %193 = getelementptr inbounds i8, ptr %15, i64 16
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull @.str.26)
          to label %195 unwind label %209

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %196 unwind label %211

196:                                              ; preds = %195
  %197 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %197)
          to label %199 unwind label %213

199:                                              ; preds = %196
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %198, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %201 unwind label %213

201:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #11
  %202 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %203 unwind label %.thread228

203:                                              ; preds = %201
  %204 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef %204)
          to label %206 unwind label %.thread232

.thread232:                                       ; preds = %203
  %205 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #11
  br label %219

206:                                              ; preds = %203
  invoke void @__cxa_throw(ptr nonnull %202, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %217

207:                                              ; preds = %191
  %208 = landingpad { ptr, i32 }
          catch ptr null
  br label %221

209:                                              ; preds = %192
  %210 = landingpad { ptr, i32 }
          catch ptr null
  br label %220

211:                                              ; preds = %195
  %212 = landingpad { ptr, i32 }
          catch ptr null
  br label %215

213:                                              ; preds = %199, %196
  %214 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  br label %215

215:                                              ; preds = %213, %211
  %.pn182 = phi { ptr, i32 } [ %214, %213 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #11
  br label %220

.thread228:                                       ; preds = %201
  %216 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #11
  br label %219

217:                                              ; preds = %206
  %218 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #11
  br label %220

219:                                              ; preds = %.thread232, %.thread228
  %.pn183231 = phi { ptr, i32 } [ %216, %.thread228 ], [ %205, %.thread232 ]
  call void @__cxa_free_exception(ptr %202) #11
  br label %220

220:                                              ; preds = %217, %219, %215, %209
  %.pn183.pn = phi { ptr, i32 } [ %.pn183231, %219 ], [ %218, %217 ], [ %.pn182, %215 ], [ %210, %209 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15) #11
  br label %221

221:                                              ; preds = %220, %207
  %.pn183.pn.pn = phi { ptr, i32 } [ %.pn183.pn, %220 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %15) #11
  br label %670

222:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %18) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %223 unwind label %238

223:                                              ; preds = %222
  %224 = getelementptr inbounds i8, ptr %18, i64 16
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull @.str.27)
          to label %226 unwind label %240

226:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %227 unwind label %242

227:                                              ; preds = %226
  %228 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %228)
          to label %230 unwind label %244

230:                                              ; preds = %227
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %232 unwind label %244

232:                                              ; preds = %230
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #11
  %233 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %234 unwind label %.thread234

234:                                              ; preds = %232
  %235 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %233, ptr noundef %235)
          to label %237 unwind label %.thread238

.thread238:                                       ; preds = %234
  %236 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %250

237:                                              ; preds = %234
  invoke void @__cxa_throw(ptr nonnull %233, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %248

238:                                              ; preds = %222
  %239 = landingpad { ptr, i32 }
          catch ptr null
  br label %252

240:                                              ; preds = %223
  %241 = landingpad { ptr, i32 }
          catch ptr null
  br label %251

242:                                              ; preds = %226
  %243 = landingpad { ptr, i32 }
          catch ptr null
  br label %246

244:                                              ; preds = %230, %227
  %245 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  br label %246

246:                                              ; preds = %244, %242
  %.pn180 = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #11
  br label %251

.thread234:                                       ; preds = %232
  %247 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %250

248:                                              ; preds = %237
  %249 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %251

250:                                              ; preds = %.thread238, %.thread234
  %.pn181237 = phi { ptr, i32 } [ %247, %.thread234 ], [ %236, %.thread238 ]
  call void @__cxa_free_exception(ptr %233) #11
  br label %251

251:                                              ; preds = %248, %250, %246, %240
  %.pn181.pn = phi { ptr, i32 } [ %.pn181237, %250 ], [ %249, %248 ], [ %.pn180, %246 ], [ %241, %240 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #11
  br label %252

252:                                              ; preds = %251, %238
  %.pn181.pn.pn = phi { ptr, i32 } [ %.pn181.pn, %251 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %18) #11
  br label %670

253:                                              ; preds = %185, %178
  %.sink = phi i32 [ 0, %178 ], [ 1, %185 ]
  %254 = getelementptr inbounds i8, ptr %129, i64 16
  store i32 %.sink, ptr %254, align 8, !tbaa !45
  %255 = load ptr, ptr @_ZN4Simd4Base5Names5widthE, align 8, !tbaa !5
  %256 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef nonnull %124, ptr noundef %255)
          to label %257 unwind label %183

257:                                              ; preds = %253
  %258 = sext i32 %256 to i64
  %259 = getelementptr inbounds i8, ptr %129, i64 24
  store i64 %258, ptr %259, align 8, !tbaa !46
  %260 = load ptr, ptr @_ZN4Simd4Base5Names6heightE, align 8, !tbaa !5
  %261 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef nonnull %124, ptr noundef %260)
          to label %262 unwind label %183

262:                                              ; preds = %257
  %263 = sext i32 %261 to i64
  %264 = getelementptr inbounds i8, ptr %129, i64 32
  store i64 %263, ptr %264, align 8, !tbaa !47
  %265 = load i64, ptr %259, align 8, !tbaa !46
  %266 = icmp slt i64 %265, 1
  %267 = icmp slt i32 %261, 1
  %or.cond = or i1 %267, %266
  br i1 %or.cond, label %268, label %299

268:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %21) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %21)
          to label %269 unwind label %284

269:                                              ; preds = %268
  %270 = getelementptr inbounds i8, ptr %21, i64 16
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef nonnull @.str.28)
          to label %272 unwind label %286

272:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(128) %21)
          to label %273 unwind label %288

273:                                              ; preds = %272
  %274 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %274)
          to label %276 unwind label %290

276:                                              ; preds = %273
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %278 unwind label %290

278:                                              ; preds = %276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  %279 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(128) %21)
          to label %280 unwind label %.thread240

280:                                              ; preds = %278
  %281 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef %281)
          to label %283 unwind label %.thread244

.thread244:                                       ; preds = %280
  %282 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %296

283:                                              ; preds = %280
  invoke void @__cxa_throw(ptr nonnull %279, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %294

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

286:                                              ; preds = %269
  %287 = landingpad { ptr, i32 }
          catch ptr null
  br label %297

288:                                              ; preds = %272
  %289 = landingpad { ptr, i32 }
          catch ptr null
  br label %292

290:                                              ; preds = %276, %273
  %291 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %292

292:                                              ; preds = %290, %288
  %.pn202 = phi { ptr, i32 } [ %291, %290 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  br label %297

.thread240:                                       ; preds = %278
  %293 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %296

294:                                              ; preds = %283
  %295 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %297

296:                                              ; preds = %.thread244, %.thread240
  %.pn203243 = phi { ptr, i32 } [ %293, %.thread240 ], [ %282, %.thread244 ]
  call void @__cxa_free_exception(ptr %279) #11
  br label %297

297:                                              ; preds = %294, %296, %292, %286
  %.pn203.pn = phi { ptr, i32 } [ %.pn203243, %296 ], [ %295, %294 ], [ %.pn202, %292 ], [ %287, %286 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %21) #11
  br label %298

298:                                              ; preds = %297, %284
  %.pn203.pn.pn = phi { ptr, i32 } [ %.pn203.pn, %297 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %21) #11
  br label %670

299:                                              ; preds = %262
  %300 = load ptr, ptr @_ZN4Simd4Base5Names11stageParamsE, align 8, !tbaa !5
  %301 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %124, ptr noundef %300, i64 noundef 0, i1 noundef zeroext true)
          to label %302 unwind label %310

302:                                              ; preds = %299
  %.not = icmp eq ptr %301, null
  br i1 %.not, label %.thread323, label %303

303:                                              ; preds = %302
  %304 = load ptr, ptr @_ZN4Simd4Base5Names8maxDepthE, align 8, !tbaa !5
  %305 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %301, ptr noundef %304, i64 noundef 0, i1 noundef zeroext true)
          to label %306 unwind label %310

306:                                              ; preds = %303
  %.not184 = icmp eq ptr %305, null
  br i1 %.not184, label %.thread323, label %307

307:                                              ; preds = %306
  %308 = load ptr, ptr @_ZN4Simd4Base5Names8maxDepthE, align 8, !tbaa !5
  %309 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef nonnull %301, ptr noundef %308)
          to label %313 unwind label %310

310:                                              ; preds = %307, %303, %299
  %311 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

.thread323:                                       ; preds = %302, %306
  %312 = getelementptr inbounds i8, ptr %129, i64 8
  store i8 1, ptr %312, align 8, !tbaa !48
  br label %348

313:                                              ; preds = %307
  %314 = icmp eq i32 %309, 1
  %315 = getelementptr inbounds i8, ptr %129, i64 8
  %316 = zext i1 %314 to i8
  store i8 %316, ptr %315, align 8, !tbaa !48
  br i1 %314, label %348, label %317

317:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %24) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %318 unwind label %333

318:                                              ; preds = %317
  %319 = getelementptr inbounds i8, ptr %24, i64 16
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull @.str.29)
          to label %321 unwind label %335

321:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %322 unwind label %337

322:                                              ; preds = %321
  %323 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %323)
          to label %325 unwind label %339

325:                                              ; preds = %322
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %327 unwind label %339

327:                                              ; preds = %325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  %328 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %329 unwind label %.thread246

329:                                              ; preds = %327
  %330 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef %330)
          to label %332 unwind label %.thread250

.thread250:                                       ; preds = %329
  %331 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  br label %345

332:                                              ; preds = %329
  invoke void @__cxa_throw(ptr nonnull %328, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %343

333:                                              ; preds = %317
  %334 = landingpad { ptr, i32 }
          catch ptr null
  br label %347

335:                                              ; preds = %318
  %336 = landingpad { ptr, i32 }
          catch ptr null
  br label %346

337:                                              ; preds = %321
  %338 = landingpad { ptr, i32 }
          catch ptr null
  br label %341

339:                                              ; preds = %325, %322
  %340 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  br label %341

341:                                              ; preds = %339, %337
  %.pn185 = phi { ptr, i32 } [ %340, %339 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  br label %346

.thread246:                                       ; preds = %327
  %342 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  br label %345

343:                                              ; preds = %332
  %344 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  br label %346

345:                                              ; preds = %.thread250, %.thread246
  %.pn186249 = phi { ptr, i32 } [ %342, %.thread246 ], [ %331, %.thread250 ]
  call void @__cxa_free_exception(ptr %328) #11
  br label %346

346:                                              ; preds = %343, %345, %341, %335
  %.pn186.pn = phi { ptr, i32 } [ %.pn186249, %345 ], [ %344, %343 ], [ %.pn185, %341 ], [ %336, %335 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #11
  br label %347

347:                                              ; preds = %346, %333
  %.pn186.pn.pn = phi { ptr, i32 } [ %.pn186.pn, %346 ], [ %334, %333 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %24) #11
  br label %670

348:                                              ; preds = %.thread323, %313
  %349 = getelementptr inbounds i8, ptr %129, i64 8
  %350 = load ptr, ptr @_ZN4Simd4Base5Names13featureParamsE, align 8, !tbaa !5
  %351 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %124, ptr noundef %350, i64 noundef 0, i1 noundef zeroext true)
          to label %352 unwind label %381

352:                                              ; preds = %348
  %353 = load ptr, ptr @_ZN4Simd4Base5Names11maxCatCountE, align 8, !tbaa !5
  %354 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef %351, ptr noundef %353)
          to label %355 unwind label %381

355:                                              ; preds = %352
  %356 = getelementptr inbounds i8, ptr %129, i64 20
  store i32 %354, ptr %356, align 4, !tbaa !49
  %357 = add nsw i32 %354, 31
  %358 = sdiv i32 %357, 32
  %.inv = icmp slt i32 %354, 1
  %359 = add nsw i32 %358, 3
  %360 = select i1 %.inv, i32 4, i32 %359
  %361 = load ptr, ptr @_ZN4Simd4Base5Names6stagesE, align 8, !tbaa !5
  %362 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %124, ptr noundef %361, i64 noundef 0, i1 noundef zeroext true)
          to label %363 unwind label %383

363:                                              ; preds = %355
  %364 = icmp eq ptr %362, null
  br i1 %364, label %365, label %400

365:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %27) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %366 unwind label %385

366:                                              ; preds = %365
  %367 = getelementptr inbounds i8, ptr %27, i64 16
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull @.str.30)
          to label %369 unwind label %387

369:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %370 unwind label %389

370:                                              ; preds = %369
  %371 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %371)
          to label %373 unwind label %391

373:                                              ; preds = %370
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %375 unwind label %391

375:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #11
  %376 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %377 unwind label %.thread252

377:                                              ; preds = %375
  %378 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %376, ptr noundef %378)
          to label %380 unwind label %.thread256

.thread256:                                       ; preds = %377
  %379 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %397

380:                                              ; preds = %377
  invoke void @__cxa_throw(ptr nonnull %376, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %395

381:                                              ; preds = %352, %348
  %382 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

383:                                              ; preds = %403, %400, %355
  %384 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

385:                                              ; preds = %365
  %386 = landingpad { ptr, i32 }
          catch ptr null
  br label %399

387:                                              ; preds = %366
  %388 = landingpad { ptr, i32 }
          catch ptr null
  br label %398

389:                                              ; preds = %369
  %390 = landingpad { ptr, i32 }
          catch ptr null
  br label %393

391:                                              ; preds = %373, %370
  %392 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  br label %393

393:                                              ; preds = %391, %389
  %.pn200 = phi { ptr, i32 } [ %392, %391 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #11
  br label %398

.thread252:                                       ; preds = %375
  %394 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %397

395:                                              ; preds = %380
  %396 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %398

397:                                              ; preds = %.thread256, %.thread252
  %.pn201255 = phi { ptr, i32 } [ %394, %.thread252 ], [ %379, %.thread256 ]
  call void @__cxa_free_exception(ptr %376) #11
  br label %398

398:                                              ; preds = %395, %397, %393, %387
  %.pn201.pn = phi { ptr, i32 } [ %.pn201255, %397 ], [ %396, %395 ], [ %.pn200, %393 ], [ %388, %387 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27) #11
  br label %399

399:                                              ; preds = %398, %385
  %.pn201.pn.pn = phi { ptr, i32 } [ %.pn201.pn, %398 ], [ %386, %385 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %27) #11
  br label %670

400:                                              ; preds = %363
  %401 = getelementptr inbounds i8, ptr %129, i64 40
  %402 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef nonnull %362)
          to label %403 unwind label %383

403:                                              ; preds = %400
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %402)
          to label %404 unwind label %383

404:                                              ; preds = %403
  %405 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %362, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader289 unwind label %.loopexit.split-lp291

.preheader289:                                    ; preds = %404
  %.not187302 = icmp eq ptr %405, null
  br i1 %.not187302, label %._crit_edge306, label %.lr.ph305

.lr.ph305:                                        ; preds = %.preheader289
  %406 = getelementptr inbounds i8, ptr %30, i64 8
  %407 = getelementptr inbounds i8, ptr %30, i64 4
  %408 = getelementptr inbounds i8, ptr %129, i64 64
  %409 = getelementptr inbounds i8, ptr %129, i64 88
  %410 = getelementptr inbounds i8, ptr %129, i64 112
  %.off = add i32 %354, 62
  %.not196 = icmp ult i32 %.off, 63
  %411 = getelementptr inbounds i8, ptr %129, i64 136
  %412 = getelementptr inbounds i8, ptr %37, i64 8
  %413 = getelementptr inbounds i8, ptr %37, i64 12
  %414 = icmp sgt i32 %354, 0
  %415 = getelementptr inbounds i8, ptr %37, i64 4
  %smax = call i32 @llvm.smax.i32(i32 %358, i32 1)
  %416 = sext i32 %360 to i64
  %wide.trip.count = zext nneg i32 %smax to i64
  br label %419

._crit_edge306:                                   ; preds = %562, %.preheader289
  %417 = load ptr, ptr @_ZN4Simd4Base5Names8featuresE, align 8, !tbaa !5
  %418 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %124, ptr noundef %417, i64 noundef 0, i1 noundef zeroext true)
          to label %564 unwind label %577

.loopexit290:                                     ; preds = %479
  %lpad.loopexit292 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

.loopexit.split-lp291:                            ; preds = %404
  %lpad.loopexit.split-lp293 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

419:                                              ; preds = %.lr.ph305, %562
  %indvars.iv317 = phi i64 [ 0, %.lr.ph305 ], [ %indvars.iv.next318, %562 ]
  %.0153304 = phi ptr [ %405, %.lr.ph305 ], [ %480, %562 ]
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %30) #11
  %420 = load ptr, ptr @_ZN4Simd4Base5Names14stageThresholdE, align 8, !tbaa !5
  %421 = invoke noundef float @_ZN4Simd4Base3Xml8GetValueIfEET_PNS_3Xml4NodeIcEEPKc(ptr noundef nonnull %.0153304, ptr noundef %420)
          to label %422 unwind label %444

422:                                              ; preds = %419
  %423 = fadd float %421, 0xBEE4F8B580000000
  store float %423, ptr %406, align 4, !tbaa !50
  %424 = load ptr, ptr @_ZN4Simd4Base5Names15weakClassifiersE, align 8, !tbaa !5
  %425 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0153304, ptr noundef %424, i64 noundef 0, i1 noundef zeroext true)
          to label %426 unwind label %446

426:                                              ; preds = %422
  %427 = icmp eq ptr %425, null
  br i1 %427, label %428, label %463

428:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %31) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %429 unwind label %448

429:                                              ; preds = %428
  %430 = getelementptr inbounds i8, ptr %31, i64 16
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef nonnull @.str.31)
          to label %432 unwind label %450

432:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %433 unwind label %452

433:                                              ; preds = %432
  %434 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  %435 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %434)
          to label %436 unwind label %454

436:                                              ; preds = %433
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %438 unwind label %454

438:                                              ; preds = %436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #11
  %439 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(128) %31)
          to label %440 unwind label %.thread258

440:                                              ; preds = %438
  %441 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %439, ptr noundef %441)
          to label %443 unwind label %.thread262

.thread262:                                       ; preds = %440
  %442 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #11
  br label %460

443:                                              ; preds = %440
  invoke void @__cxa_throw(ptr nonnull %439, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %681 unwind label %458

444:                                              ; preds = %419
  %445 = landingpad { ptr, i32 }
          catch ptr null
  br label %563

446:                                              ; preds = %469, %465, %463, %422
  %447 = landingpad { ptr, i32 }
          catch ptr null
  br label %563

448:                                              ; preds = %428
  %449 = landingpad { ptr, i32 }
          catch ptr null
  br label %462

450:                                              ; preds = %429
  %451 = landingpad { ptr, i32 }
          catch ptr null
  br label %461

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

454:                                              ; preds = %436, %433
  %455 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  br label %456

456:                                              ; preds = %454, %452
  %.pn198 = phi { ptr, i32 } [ %455, %454 ], [ %453, %452 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #11
  br label %461

.thread258:                                       ; preds = %438
  %457 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #11
  br label %460

458:                                              ; preds = %443
  %459 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #11
  br label %461

460:                                              ; preds = %.thread262, %.thread258
  %.pn199261 = phi { ptr, i32 } [ %457, %.thread258 ], [ %442, %.thread262 ]
  call void @__cxa_free_exception(ptr %439) #11
  br label %461

461:                                              ; preds = %458, %460, %456, %450
  %.pn199.pn = phi { ptr, i32 } [ %.pn199261, %460 ], [ %459, %458 ], [ %.pn198, %456 ], [ %451, %450 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %31) #11
  br label %462

462:                                              ; preds = %461, %448
  %.pn199.pn.pn = phi { ptr, i32 } [ %.pn199.pn, %461 ], [ %449, %448 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %31) #11
  br label %563

463:                                              ; preds = %426
  %464 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef nonnull %425)
          to label %465 unwind label %446

465:                                              ; preds = %463
  %466 = trunc i64 %464 to i32
  store i32 %466, ptr %407, align 4, !tbaa !53
  %467 = call noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %408) #11
  %468 = trunc i64 %467 to i32
  store i32 %468, ptr %30, align 4, !tbaa !54
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %401, ptr noundef nonnull align 4 dereferenceable(12) %30)
          to label %469 unwind label %446

469:                                              ; preds = %465
  %470 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %indvars.iv317) #11
  %471 = load i32, ptr %470, align 4, !tbaa !54
  %472 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %indvars.iv317) #11
  %473 = getelementptr inbounds i8, ptr %472, i64 4
  %474 = load i32, ptr %473, align 4, !tbaa !53
  %475 = add nsw i32 %474, %471
  %476 = sext i32 %475 to i64
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %476)
          to label %477 unwind label %446

477:                                              ; preds = %469
  %478 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %425, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader283 unwind label %.loopexit.split-lp285

.preheader283:                                    ; preds = %477, %._crit_edge301
  %.0144 = phi ptr [ %551, %._crit_edge301 ], [ %478, %477 ]
  %.not195 = icmp eq ptr %.0144, null
  br i1 %.not195, label %479, label %481

479:                                              ; preds = %.preheader283
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %30) #11
  %480 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0153304, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %562 unwind label %.loopexit290

.loopexit284:                                     ; preds = %._crit_edge301
  %lpad.loopexit286 = landingpad { ptr, i32 }
          catch ptr null
  br label %563

.loopexit.split-lp285:                            ; preds = %477
  %lpad.loopexit.split-lp287 = landingpad { ptr, i32 }
          catch ptr null
  br label %563

481:                                              ; preds = %.preheader283
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #11
  %482 = load ptr, ptr @_ZN4Simd4Base5Names13internalNodesE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.34") align 8 %34, ptr noundef nonnull %.0144, ptr noundef %482)
          to label %483 unwind label %491

483:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #11
  %484 = load ptr, ptr @_ZN4Simd4Base5Names10leafValuesE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIfEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.14") align 8 %35, ptr noundef nonnull %.0144, ptr noundef %484)
          to label %485 unwind label %493

485:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #11
  %486 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  %487 = trunc i64 %486 to i32
  %488 = sdiv i32 %487, %360
  store i32 %488, ptr %36, align 4, !tbaa !55
  %489 = icmp sgt i32 %488, 1
  br i1 %489, label %490, label %495

490:                                              ; preds = %485
  store i8 0, ptr %349, align 8, !tbaa !48
  br label %495

491:                                              ; preds = %481
  %492 = landingpad { ptr, i32 }
          catch ptr null
  br label %561

493:                                              ; preds = %483
  %494 = landingpad { ptr, i32 }
          catch ptr null
  br label %560

495:                                              ; preds = %490, %485
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %408, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %496 unwind label %512

496:                                              ; preds = %495
  %497 = call noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %409) #11
  %498 = load i32, ptr %36, align 4, !tbaa !55
  %499 = sext i32 %498 to i64
  %500 = add i64 %497, %499
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %409, i64 noundef %500)
          to label %501 unwind label %512

501:                                              ; preds = %496
  %502 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %410) #11
  %503 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #11
  %504 = add i64 %503, %502
  invoke void @_ZNSt6vectorIfSaIfEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %504)
          to label %505 unwind label %512

505:                                              ; preds = %501
  br i1 %.not196, label %514, label %506

506:                                              ; preds = %505
  %507 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %411) #11
  %508 = load i32, ptr %36, align 4, !tbaa !55
  %509 = mul nsw i32 %508, %358
  %510 = sext i32 %509 to i64
  %511 = add i64 %507, %510
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %411, i64 noundef %511)
          to label %514 unwind label %512

512:                                              ; preds = %506, %501, %496, %495
  %513 = landingpad { ptr, i32 }
          catch ptr null
  br label %559

514:                                              ; preds = %506, %505
  %515 = load i32, ptr %36, align 4, !tbaa !55
  %516 = icmp sgt i32 %515, 0
  br i1 %516, label %.lr.ph298, label %.preheader282

.preheader282:                                    ; preds = %544, %514
  %517 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #11
  %.not312 = icmp eq i64 %517, 0
  br i1 %.not312, label %._crit_edge301, label %.lr.ph300

.lr.ph298:                                        ; preds = %514, %544
  %indvars.iv314 = phi i64 [ %indvars.iv.next315, %544 ], [ 0, %514 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #11
  %518 = mul nsw i64 %indvars.iv314, %416
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %518) #11
  %520 = load double, ptr %519, align 8, !tbaa !57
  %521 = fptosi double %520 to i32
  store i32 %521, ptr %412, align 4, !tbaa !59
  %522 = add nsw i64 %518, 1
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %522) #11
  %524 = load double, ptr %523, align 8, !tbaa !57
  %525 = fptosi double %524 to i32
  store i32 %525, ptr %413, align 4, !tbaa !61
  %526 = add nsw i64 %518, 2
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %526) #11
  %528 = load double, ptr %527, align 8, !tbaa !57
  %529 = fptosi double %528 to i32
  store i32 %529, ptr %37, align 4, !tbaa !62
  br i1 %.not196, label %539, label %.preheader281

.preheader281:                                    ; preds = %.lr.ph298
  br i1 %414, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader281
  %530 = add nuw nsw i64 %518, 3
  br label %531

531:                                              ; preds = %.lr.ph, %536
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %536 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #11
  %532 = add nsw i64 %530, %indvars.iv
  %533 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %532) #11
  %534 = load double, ptr %533, align 8, !tbaa !57
  %535 = fptosi double %534 to i32
  store i32 %535, ptr %38, align 4, !tbaa !63
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %411, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %536 unwind label %537

536:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #11
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %531, !llvm.loop !64

537:                                              ; preds = %531
  %538 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #11
  br label %550

539:                                              ; preds = %.lr.ph298
  %540 = add nsw i64 %518, 3
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %540) #11
  %542 = load double, ptr %541, align 8, !tbaa !57
  %543 = fptrunc double %542 to float
  br label %._crit_edge

._crit_edge:                                      ; preds = %536, %.preheader281, %539
  %storemerge = phi float [ %543, %539 ], [ 0.000000e+00, %.preheader281 ], [ 0.000000e+00, %536 ]
  store float %storemerge, ptr %415, align 4, !tbaa !66
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %409, ptr noundef nonnull align 4 dereferenceable(16) %37)
          to label %544 unwind label %548

544:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #11
  %indvars.iv.next315 = add nuw nsw i64 %indvars.iv314, 1
  %545 = load i32, ptr %36, align 4, !tbaa !55
  %546 = sext i32 %545 to i64
  %547 = icmp slt i64 %indvars.iv.next315, %546
  br i1 %547, label %.lr.ph298, label %.preheader282, !llvm.loop !67

548:                                              ; preds = %._crit_edge
  %549 = landingpad { ptr, i32 }
          catch ptr null
  br label %550

550:                                              ; preds = %548, %537
  %.pn197 = phi { ptr, i32 } [ %538, %537 ], [ %549, %548 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #11
  br label %559

._crit_edge301:                                   ; preds = %553, %.preheader282
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #11
  %551 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0144, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader283 unwind label %.loopexit284, !llvm.loop !68

.lr.ph300:                                        ; preds = %.preheader282, %553
  %.0141299 = phi i64 [ %554, %553 ], [ 0, %.preheader282 ]
  %552 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %.0141299) #11
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %410, ptr noundef nonnull align 4 dereferenceable(4) %552)
          to label %553 unwind label %557

553:                                              ; preds = %.lr.ph300
  %554 = add nuw i64 %.0141299, 1
  %555 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #11
  %556 = icmp ult i64 %554, %555
  br i1 %556, label %.lr.ph300, label %._crit_edge301, !llvm.loop !69

557:                                              ; preds = %.lr.ph300
  %558 = landingpad { ptr, i32 }
          catch ptr null
  br label %559

559:                                              ; preds = %557, %550, %512
  %.pn197.pn = phi { ptr, i32 } [ %.pn197, %550 ], [ %558, %557 ], [ %513, %512 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #11
  br label %560

560:                                              ; preds = %559, %493
  %.pn197.pn.pn = phi { ptr, i32 } [ %.pn197.pn, %559 ], [ %494, %493 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  br label %561

561:                                              ; preds = %560, %491
  %.pn197.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn, %560 ], [ %492, %491 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #11
  br label %563

562:                                              ; preds = %479
  %indvars.iv.next318 = add nuw nsw i64 %indvars.iv317, 1
  %.not187 = icmp eq ptr %480, null
  br i1 %.not187, label %._crit_edge306, label %419, !llvm.loop !70

563:                                              ; preds = %.loopexit284, %.loopexit.split-lp285, %446, %462, %561, %444
  %.pn199.pn.pn.pn.pn = phi { ptr, i32 } [ %445, %444 ], [ %.pn199.pn.pn, %462 ], [ %447, %446 ], [ %.pn197.pn.pn.pn, %561 ], [ %lpad.loopexit286, %.loopexit284 ], [ %lpad.loopexit.split-lp287, %.loopexit.split-lp285 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %30) #11
  br label %670

564:                                              ; preds = %._crit_edge306
  %565 = getelementptr inbounds i8, ptr %129, i64 16
  %566 = load i32, ptr %565, align 8, !tbaa !45
  %567 = icmp eq i32 %566, 0
  br i1 %567, label %568, label %628

568:                                              ; preds = %564
  %569 = getelementptr inbounds i8, ptr %129, i64 9
  store i8 0, ptr %569, align 1, !tbaa !71
  %570 = getelementptr inbounds i8, ptr %129, i64 160
  %571 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %418)
          to label %572 unwind label %577

572:                                              ; preds = %568
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %571)
          to label %573 unwind label %577

573:                                              ; preds = %572
  %574 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %418, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader275 unwind label %.loopexit.split-lp277

.preheader275:                                    ; preds = %573
  %575 = getelementptr inbounds i8, ptr %39, i64 4
  br label %576

576:                                              ; preds = %.preheader275, %625
  %.0138 = phi ptr [ %626, %625 ], [ %574, %.preheader275 ]
  %.not188 = icmp eq ptr %.0138, null
  br i1 %.not188, label %thread-pre-split, label %579

577:                                              ; preds = %635, %631, %572, %568, %._crit_edge306
  %578 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

.loopexit276:                                     ; preds = %625
  %lpad.loopexit278 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

.loopexit.split-lp277:                            ; preds = %573
  %lpad.loopexit.split-lp279 = landingpad { ptr, i32 }
          catch ptr null
  br label %670

579:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %39) #11
  invoke void @_ZN4Simd9Detection4Data11HaarFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(64) %39)
          to label %580 unwind label %587

580:                                              ; preds = %579
  %581 = load ptr, ptr @_ZN4Simd4Base5Names5rectsE, align 8, !tbaa !5
  %582 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0138, ptr noundef %581, i64 noundef 0, i1 noundef zeroext true)
          to label %583 unwind label %589

583:                                              ; preds = %580
  %584 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %582, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader269 unwind label %.loopexit.split-lp271

.preheader269:                                    ; preds = %583
  %.not192307 = icmp eq ptr %584, null
  br i1 %.not192307, label %._crit_edge311, label %.lr.ph310

._crit_edge311:                                   ; preds = %613, %.preheader269
  %585 = load ptr, ptr @_ZN4Simd4Base5Names6tiltedE, align 8, !tbaa !5
  %586 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0138, ptr noundef %585, i64 noundef 0, i1 noundef zeroext true)
          to label %616 unwind label %589

587:                                              ; preds = %579
  %588 = landingpad { ptr, i32 }
          catch ptr null
  br label %627

589:                                              ; preds = %624, %617, %._crit_edge311, %580
  %590 = landingpad { ptr, i32 }
          catch ptr null
  br label %627

.loopexit270:                                     ; preds = %591
  %lpad.loopexit272 = landingpad { ptr, i32 }
          catch ptr null
  br label %627

.loopexit.split-lp271:                            ; preds = %583
  %lpad.loopexit.split-lp273 = landingpad { ptr, i32 }
          catch ptr null
  br label %627

.lr.ph310:                                        ; preds = %.preheader269, %613
  %indvars.iv320 = phi i64 [ %indvars.iv.next321, %613 ], [ 0, %.preheader269 ]
  %.0135309 = phi ptr [ %612, %613 ], [ %584, %.preheader269 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #11
  invoke void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.34") align 8 %40, ptr noundef nonnull %.0135309)
          to label %591 unwind label %614

591:                                              ; preds = %.lr.ph310
  %592 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 0) #11
  %593 = load double, ptr %592, align 8, !tbaa !57
  %594 = fptosi double %593 to i32
  %595 = getelementptr inbounds [3 x %"struct.Simd::Detection::Data::WeightedRect"], ptr %575, i64 0, i64 %indvars.iv320
  store i32 %594, ptr %595, align 4, !tbaa !72
  %596 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 1) #11
  %597 = load double, ptr %596, align 8, !tbaa !57
  %598 = fptosi double %597 to i32
  %599 = getelementptr inbounds i8, ptr %595, i64 4
  store i32 %598, ptr %599, align 4, !tbaa !75
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 2) #11
  %601 = load double, ptr %600, align 8, !tbaa !57
  %602 = fptosi double %601 to i32
  %603 = getelementptr inbounds i8, ptr %595, i64 8
  store i32 %602, ptr %603, align 4, !tbaa !76
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 3) #11
  %605 = load double, ptr %604, align 8, !tbaa !57
  %606 = fptosi double %605 to i32
  %607 = getelementptr inbounds i8, ptr %595, i64 12
  store i32 %606, ptr %607, align 4, !tbaa !77
  %608 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 4) #11
  %609 = load double, ptr %608, align 8, !tbaa !57
  %610 = fptrunc double %609 to float
  %611 = getelementptr inbounds i8, ptr %595, i64 16
  store float %610, ptr %611, align 4, !tbaa !78
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #11
  %612 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0135309, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %613 unwind label %.loopexit270

613:                                              ; preds = %591
  %indvars.iv.next321 = add nuw nsw i64 %indvars.iv320, 1
  %.not192 = icmp eq ptr %612, null
  br i1 %.not192, label %._crit_edge311, label %.lr.ph310, !llvm.loop !79

614:                                              ; preds = %.lr.ph310
  %615 = landingpad { ptr, i32 }
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #11
  br label %627

616:                                              ; preds = %._crit_edge311
  %.not193 = icmp eq ptr %586, null
  br i1 %.not193, label %.critedge, label %617

617:                                              ; preds = %616
  %618 = load ptr, ptr @_ZN4Simd4Base5Names6tiltedE, align 8, !tbaa !5
  %619 = invoke noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef nonnull %.0138, ptr noundef %618)
          to label %620 unwind label %589

620:                                              ; preds = %617
  %621 = icmp ne i32 %619, 0
  %622 = zext i1 %621 to i8
  store i8 %622, ptr %39, align 4, !tbaa !80
  br i1 %621, label %623, label %624

623:                                              ; preds = %620
  store i8 1, ptr %569, align 1, !tbaa !71
  br label %624

.critedge:                                        ; preds = %616
  store i8 0, ptr %39, align 4, !tbaa !80
  br label %624

624:                                              ; preds = %.critedge, %623, %620
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %570, ptr noundef nonnull align 4 dereferenceable(64) %39)
          to label %625 unwind label %589

625:                                              ; preds = %624
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %39) #11
  %626 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0138, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %576 unwind label %.loopexit276, !llvm.loop !82

627:                                              ; preds = %.loopexit270, %.loopexit.split-lp271, %589, %614, %587
  %.pn194.pn.pn = phi { ptr, i32 } [ %588, %587 ], [ %590, %589 ], [ %615, %614 ], [ %lpad.loopexit272, %.loopexit270 ], [ %lpad.loopexit.split-lp273, %.loopexit.split-lp271 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %39) #11
  br label %670

thread-pre-split:                                 ; preds = %576
  %.pr = load i32, ptr %565, align 8, !tbaa !45
  br label %628

628:                                              ; preds = %thread-pre-split, %564
  %629 = phi i32 [ %.pr, %thread-pre-split ], [ %566, %564 ]
  %630 = icmp eq i32 %629, 1
  br i1 %630, label %631, label %.loopexit

631:                                              ; preds = %628
  %632 = getelementptr inbounds i8, ptr %129, i64 10
  store i8 1, ptr %632, align 2, !tbaa !83
  %633 = getelementptr inbounds i8, ptr %129, i64 184
  %634 = invoke noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef %418)
          to label %635 unwind label %577

635:                                              ; preds = %631
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %633, i64 noundef %634)
          to label %636 unwind label %577

636:                                              ; preds = %635
  %637 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %418, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %636
  %638 = getelementptr inbounds i8, ptr %41, i64 4
  %639 = getelementptr inbounds i8, ptr %41, i64 8
  %640 = getelementptr inbounds i8, ptr %41, i64 12
  br label %641

641:                                              ; preds = %.preheader, %663
  %.0 = phi ptr [ %664, %663 ], [ %637, %.preheader ]
  %.not189 = icmp eq ptr %.0, null
  br i1 %.not189, label %.loopexit, label %642

.loopexit268:                                     ; preds = %663
  %lpad.loopexit = landingpad { ptr, i32 }
          catch ptr null
  br label %670

.loopexit.split-lp:                               ; preds = %636
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          catch ptr null
  br label %670

642:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #11
  invoke void @_ZN4Simd9Detection4Data10LbpFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %41)
          to label %643 unwind label %658

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #11
  %644 = load ptr, ptr @_ZN4Simd4Base5Names4rectE, align 8, !tbaa !5
  invoke void @_ZN4Simd4Base3Xml9GetValuesIiEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.19") align 8 %42, ptr noundef nonnull %.0, ptr noundef %644)
          to label %645 unwind label %660

645:                                              ; preds = %643
  %646 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef 0) #11
  %647 = load i32, ptr %646, align 4, !tbaa !63
  store i32 %647, ptr %41, align 4, !tbaa !84
  %648 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef 1) #11
  %649 = load i32, ptr %648, align 4, !tbaa !63
  store i32 %649, ptr %638, align 4, !tbaa !86
  %650 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef 2) #11
  %651 = load i32, ptr %650, align 4, !tbaa !63
  store i32 %651, ptr %639, align 4, !tbaa !87
  %652 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef 3) #11
  %653 = load i32, ptr %652, align 4, !tbaa !63
  store i32 %653, ptr %640, align 4, !tbaa !88
  %654 = load i32, ptr %639, align 4, !tbaa !87
  %655 = mul nsw i32 %654, %653
  %656 = icmp sgt i32 %655, 256
  br i1 %656, label %657, label %662

657:                                              ; preds = %645
  store i8 0, ptr %632, align 2, !tbaa !83
  br label %662

658:                                              ; preds = %642
  %659 = landingpad { ptr, i32 }
          catch ptr null
  br label %668

660:                                              ; preds = %643
  %661 = landingpad { ptr, i32 }
          catch ptr null
  br label %667

662:                                              ; preds = %657, %645
  invoke void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %633, ptr noundef nonnull align 4 dereferenceable(16) %41)
          to label %663 unwind label %665

663:                                              ; preds = %662
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  %664 = invoke noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96) %.0, ptr noundef null, i64 noundef 0, i1 noundef zeroext true)
          to label %641 unwind label %.loopexit268, !llvm.loop !89

665:                                              ; preds = %662
  %666 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #11
  br label %667

667:                                              ; preds = %665, %660
  %.pn190 = phi { ptr, i32 } [ %666, %665 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #11
  br label %668

668:                                              ; preds = %667, %658
  %.pn190.pn = phi { ptr, i32 } [ %.pn190, %667 ], [ %659, %658 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  br label %670

.loopexit:                                        ; preds = %641, %628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %669

669:                                              ; preds = %125, %.loopexit
  %spec.select = phi ptr [ %129, %.loopexit ], [ null, %125 ]
  call void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %3) #11
  call void @llvm.lifetime.end.p0(i64 65672, ptr nonnull %3) #11
  br label %680

670:                                              ; preds = %.loopexit268, %.loopexit.split-lp, %.loopexit276, %.loopexit.split-lp277, %.loopexit290, %.loopexit.split-lp291, %310, %347, %383, %399, %577, %627, %668, %563, %381, %298, %252, %221, %183
  %.pn203.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn, %298 ], [ %184, %183 ], [ %.pn183.pn.pn, %221 ], [ %.pn181.pn.pn, %252 ], [ %.pn186.pn.pn, %347 ], [ %311, %310 ], [ %382, %381 ], [ %.pn201.pn.pn, %399 ], [ %384, %383 ], [ %.pn199.pn.pn.pn.pn, %563 ], [ %578, %577 ], [ %.pn194.pn.pn, %627 ], [ %.pn190.pn, %668 ], [ %lpad.loopexit292, %.loopexit290 ], [ %lpad.loopexit.split-lp293, %.loopexit.split-lp291 ], [ %lpad.loopexit278, %.loopexit276 ], [ %lpad.loopexit.split-lp279, %.loopexit.split-lp277 ], [ %lpad.loopexit, %.loopexit268 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %671

671:                                              ; preds = %670, %181
  %.pn203.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn, %670 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %672

672:                                              ; preds = %68, %126, %153, %159, %174, %671, %121, %86, %70
  %.pn210.pn.pn.pn.pn = phi { ptr, i32 } [ %69, %68 ], [ %.pn210.pn.pn, %86 ], [ %.pn208.pn.pn, %121 ], [ %71, %70 ], [ %.pn205.pn.pn, %174 ], [ %.pn203.pn.pn.pn.pn, %671 ], [ %.pn, %159 ], [ %154, %153 ], [ %127, %126 ]
  %.3 = phi ptr [ null, %68 ], [ null, %86 ], [ null, %121 ], [ null, %70 ], [ %129, %174 ], [ %129, %671 ], [ %129, %159 ], [ null, %153 ], [ null, %126 ]
  call void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672) %3) #11
  %.62 = extractvalue { ptr, i32 } %.pn210.pn.pn.pn.pn, 0
  call void @llvm.lifetime.end.p0(i64 65672, ptr nonnull %3) #11
  %673 = call ptr @__cxa_begin_catch(ptr %.62) #11
  %674 = icmp eq ptr %.3, null
  br i1 %674, label %679, label %675

675:                                              ; preds = %672
  %676 = load ptr, ptr %.3, align 8, !tbaa !90
  %677 = getelementptr inbounds i8, ptr %676, i64 8
  %678 = load ptr, ptr %677, align 8
  call void %678(ptr noundef nonnull align 8 dereferenceable(208) %.3) #11
  br label %679

679:                                              ; preds = %.thread264, %675, %672
  call void @__cxa_end_catch()
  br label %680

680:                                              ; preds = %669, %679
  %.1 = phi ptr [ null, %679 ], [ %spec.select, %669 ]
  ret ptr %.1

681:                                              ; preds = %443, %380, %332, %283, %237, %206, %152, %106, %65
  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: mustprogress uwtable
declare dso_local void @_ZN4Simd3Xml8DocumentIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(65672)) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Simd3Xml8DocumentIcE5ParseILi0EEEvPc(ptr noundef nonnull align 8 dereferenceable(65672), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Simd3Xml4NodeIcE9FirstNodeEPKcmb(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, i64 noundef, i1 noundef zeroext) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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 ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd9Detection4DataC2Ev(ptr noundef nonnull align 8 dereferenceable(208)) unnamed_addr #2 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml8GetValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_PNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef) local_unnamed_addr #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 #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN4Simd4Base3Xml8GetValueIiEET_PNS_3Xml4NodeIcEEPKc(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZN4Simd4Base3Xml7GetSizeEPNS_3Xml4NodeIcEE(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZN4Simd4Base3Xml8GetValueIfEET_PNS_3Xml4NodeIcEEPKc(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN4Simd9Detection4Data5StageESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.34") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIfEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.14") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Simd3Xml4NodeIcE11NextSiblingEPKcmb(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, i64 noundef, i1 noundef zeroext) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd9Detection4Data11HaarFeatureC2Ev(ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIdEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.34") align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4Simd4Base3Xml9GetValuesIiEESt6vectorIT_SaIS4_EEPNS_3Xml4NodeIcEEPKc(ptr dead_on_unwind noalias writable sret(%"class.std::vector.19") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4Simd3Xml8DocumentIcED2Ev(ptr noundef nonnull align 8 dereferenceable(65672)) unnamed_addr #9 align 2

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #10

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 = { 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 #3 = { 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 #4 = { "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 = { 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 #6 = { 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 #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { 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 #9 = { 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 #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { nounwind }
attributes #12 = { noreturn }
attributes #13 = { builtin allocsize(0) }
attributes #14 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !13, i64 12}
!10 = !{!"_ZTSN4Simd9Detection4DataE", !11, i64 0, !12, i64 8, !12, i64 9, !12, i64 10, !13, i64 12, !14, i64 16, !13, i64 20, !15, i64 24, !17, i64 40, !21, i64 64, !25, i64 88, !29, i64 112, !33, i64 136, !37, i64 160, !41, i64 184}
!11 = !{!"_ZTSN4Simd9DeletableE"}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS22SimdDetectionInfoFlags", !7, i64 0}
!15 = !{!"_ZTSN4Simd5PointIlEE", !16, i64 0, !16, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data5StageESaIS3_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5StageESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data5DTreeESaIS3_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data5DTreeESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data9DTreeNodeESaIS3_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data9DTreeNodeESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt6vectorIfSaIfEE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data11HaarFeatureESaIS3_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data11HaarFeatureESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTSSt6vectorIN4Simd9Detection4Data10LbpFeatureESaIS3_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN4Simd9Detection4Data10LbpFeatureESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!10, !14, i64 16}
!46 = !{!10, !16, i64 24}
!47 = !{!10, !16, i64 32}
!48 = !{!10, !12, i64 8}
!49 = !{!10, !13, i64 20}
!50 = !{!51, !52, i64 8}
!51 = !{!"_ZTSN4Simd9Detection4Data5StageE", !13, i64 0, !13, i64 4, !52, i64 8}
!52 = !{!"float", !7, i64 0}
!53 = !{!51, !13, i64 4}
!54 = !{!51, !13, i64 0}
!55 = !{!56, !13, i64 0}
!56 = !{!"_ZTSN4Simd9Detection4Data5DTreeE", !13, i64 0}
!57 = !{!58, !58, i64 0}
!58 = !{!"double", !7, i64 0}
!59 = !{!60, !13, i64 8}
!60 = !{!"_ZTSN4Simd9Detection4Data9DTreeNodeE", !13, i64 0, !52, i64 4, !13, i64 8, !13, i64 12}
!61 = !{!60, !13, i64 12}
!62 = !{!60, !13, i64 0}
!63 = !{!13, !13, i64 0}
!64 = distinct !{!64, !65}
!65 = !{!"llvm.loop.mustprogress"}
!66 = !{!60, !52, i64 4}
!67 = distinct !{!67, !65}
!68 = distinct !{!68, !65}
!69 = distinct !{!69, !65}
!70 = distinct !{!70, !65}
!71 = !{!10, !12, i64 9}
!72 = !{!73, !13, i64 0}
!73 = !{!"_ZTSN4Simd9Detection4Data12WeightedRectE", !74, i64 0, !52, i64 16}
!74 = !{!"_ZTSN4Simd9Detection4Data4RectE", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12}
!75 = !{!73, !13, i64 4}
!76 = !{!73, !13, i64 8}
!77 = !{!73, !13, i64 12}
!78 = !{!73, !52, i64 16}
!79 = distinct !{!79, !65}
!80 = !{!81, !12, i64 0}
!81 = !{!"_ZTSN4Simd9Detection4Data11HaarFeatureE", !12, i64 0, !7, i64 4}
!82 = distinct !{!82, !65}
!83 = !{!10, !12, i64 10}
!84 = !{!85, !13, i64 0}
!85 = !{!"_ZTSN4Simd9Detection4Data10LbpFeatureE", !74, i64 0}
!86 = !{!85, !13, i64 4}
!87 = !{!85, !13, i64 8}
!88 = !{!85, !13, i64 12}
!89 = distinct !{!89, !65}
!90 = !{!91, !91, i64 0}
!91 = !{!"vtable pointer", !8, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass