; LLVM IR from gvinciguerra/PGM-index :: tuner (tuner)

; 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.args::ArgumentParser" = type { %"class.args::Command", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, ptr, i8, %"struct.args::HelpParams" }
%"class.args::Command" = type { %"class.args::Group", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::function.10", i8, ptr, %"class.std::vector.13", %"class.std::vector.18", i8, i8, i8, ptr }
%"class.args::Group" = type { %"class.args::Base", %"class.std::vector.5", %"class.std::function" }
%"class.args::Base" = type { ptr, i32, i8, %"class.std::__cxx11::basic_string" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::function.10" = type { %"class.std::_Function_base", ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.args::HelpParams" = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, %"class.std::__cxx11::basic_string", i8, %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }
%"class.args::HelpFlag" = type { %"class.args::Flag" }
%"class.args::Flag" = type { %"class.args::FlagBase" }
%"class.args::FlagBase" = type { %"class.args::NamedBase.base", %"class.args::Matcher" }
%"class.args::NamedBase.base" = type <{ %"class.args::Base", %"class.std::__cxx11::basic_string", i8, [7 x i8], %"class.std::__cxx11::basic_string", i8, [7 x i8], %"class.std::vector.18", i8 }>
%"class.args::Matcher" = type { %"class.std::unordered_set", %"class.std::unordered_set.28" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_set.28" = type { %"class.std::_Hashtable.29" }
%"class.std::_Hashtable.29" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"struct.args::EitherFlag" = type { i8, i8, %"class.std::__cxx11::basic_string" }
%"class.args::ValueFlag" = type <{ %"class.args::ValueFlagBase", double, double, [8 x i8] }>
%"class.args::ValueFlagBase" = type { %"class.args::FlagBase" }
%"class.args::ValueFlag.48" = type <{ %"class.args::ValueFlagBase", float, float, [8 x i8] }>
%"class.args::ValueFlag.50" = type <{ %"class.args::ValueFlagBase", i64, i64, [8 x i8] }>
%"class.args::Positional" = type <{ %"class.args::PositionalBase.base", [6 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::PositionalBase.base" = type { %"class.args::NamedBase.base", i8 }
%"class.args::CompletionFlag" = type { %"class.args::ValueFlagBase", %"class.std::vector.18", i64, %"class.std::__cxx11::basic_string" }

@global_verbose = external dso_local global i8, align 1
@.str.10 = external hidden unnamed_addr constant [250 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZTIN4args5ErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args10CompletionE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args4HelpE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #3 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %"class.args::ArgumentParser", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.args::HelpFlag", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.args::Matcher", align 8
  %18 = alloca %"class.std::initializer_list", align 8
  %19 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.args::ValueFlag", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.args::Matcher", align 8
  %27 = alloca %"class.std::initializer_list", align 8
  %28 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %29 = alloca ptr, align 8
  %30 = alloca double, align 8
  %31 = alloca %"class.args::ValueFlag.48", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.args::Matcher", align 8
  %37 = alloca %"class.std::initializer_list", align 8
  %38 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %39 = alloca ptr, align 8
  %40 = alloca float, align 4
  %41 = alloca %"class.args::Flag", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.args::Matcher", align 8
  %47 = alloca %"class.std::initializer_list", align 8
  %48 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"class.args::Group", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::function", align 8
  %54 = alloca %"class.args::ValueFlag.50", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.args::Matcher", align 8
  %60 = alloca %"class.std::initializer_list", align 8
  %61 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %62 = alloca ptr, align 8
  %63 = alloca i64, align 8
  %64 = alloca %"class.args::ValueFlag.50", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.args::Matcher", align 8
  %70 = alloca %"class.std::initializer_list", align 8
  %71 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %72 = alloca ptr, align 8
  %73 = alloca i64, align 8
  %74 = alloca %"class.args::Group", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::function", align 8
  %78 = alloca %"class.args::Flag", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca %"class.args::Matcher", align 8
  %84 = alloca %"class.std::initializer_list", align 8
  %85 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %86 = alloca ptr, align 8
  %87 = alloca %"class.args::Flag", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.args::Matcher", align 8
  %93 = alloca %"class.std::initializer_list", align 8
  %94 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %95 = alloca ptr, align 8
  %96 = alloca %"class.args::Flag", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca %"class.args::Matcher", align 8
  %102 = alloca %"class.std::initializer_list", align 8
  %103 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %104 = alloca ptr, align 8
  %105 = alloca %"class.args::Flag", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"class.args::Matcher", align 8
  %111 = alloca %"class.std::initializer_list", align 8
  %112 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %113 = alloca ptr, align 8
  %114 = alloca %"class.args::Positional", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.args::CompletionFlag", align 8
  %120 = alloca %"class.args::Matcher", align 8
  %121 = alloca %"class.std::initializer_list", align 8
  %122 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca ptr, align 8
  %127 = alloca ptr, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1216, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %128 unwind label %365

128:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  invoke void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(1216) %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %129 unwind label %369

129:                                              ; preds = %128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  %130 = getelementptr inbounds %"class.args::ArgumentParser", ptr %6, i32 0, i32 11
  %131 = getelementptr inbounds %"struct.args::HelpParams", ptr %130, i32 0, i32 4
  store i32 2, ptr %131, align 8, !tbaa !11
  %132 = getelementptr inbounds %"class.args::ArgumentParser", ptr %6, i32 0, i32 11
  %133 = getelementptr inbounds %"struct.args::HelpParams", ptr %132, i32 0, i32 5
  store i32 25, ptr %133, align 4, !tbaa !37
  %134 = getelementptr inbounds %"class.args::ArgumentParser", ptr %6, i32 0, i32 11
  %135 = getelementptr inbounds %"struct.args::HelpParams", ptr %134, i32 0, i32 1
  store i32 0, ptr %135, align 4, !tbaa !38
  %136 = getelementptr inbounds %"class.args::ArgumentParser", ptr %6, i32 0, i32 11
  %137 = getelementptr inbounds %"struct.args::HelpParams", ptr %136, i32 0, i32 3
  store i32 0, ptr %137, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 272, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %138 unwind label %374

138:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %139 unwind label %378

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 112, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %19) #8
  store ptr %19, ptr %20, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 noundef signext 104)
          to label %140 unwind label %382

140:                                              ; preds = %139
  %141 = getelementptr inbounds %"struct.args::EitherFlag", ptr %19, i64 1
  store ptr %141, ptr %20, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %141, ptr noundef @.str.11)
          to label %142 unwind label %382

142:                                              ; preds = %140
  %143 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 0
  store ptr %19, ptr %143, align 8, !tbaa !40
  %144 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 1
  store i64 2, ptr %144, align 8, !tbaa !42
  %145 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %146 = load ptr, ptr %145, align 8
  %147 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %148 = load i64, ptr %147, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %17, ptr %146, i64 %148)
          to label %149 unwind label %393

149:                                              ; preds = %142
  invoke void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(272) %12, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(112) %17, i32 noundef 0)
          to label %150 unwind label %397

150:                                              ; preds = %149
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #8
  %151 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %19, i32 0, i32 0
  %152 = getelementptr inbounds %"struct.args::EitherFlag", ptr %151, i64 2
  br label %153

153:                                              ; preds = %153, %150
  %154 = phi ptr [ %152, %150 ], [ %155, %153 ]
  %155 = getelementptr inbounds %"struct.args::EitherFlag", ptr %154, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %155) #8
  %156 = icmp eq ptr %155, %151
  br i1 %156, label %157, label %153

157:                                              ; preds = %153
  call void @llvm.lifetime.end.p0(i64 80, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %158 unwind label %412

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %159 unwind label %416

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 112, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %28) #8
  store ptr %28, ptr %29, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 noundef signext 111)
          to label %160 unwind label %420

160:                                              ; preds = %159
  %161 = getelementptr inbounds %"struct.args::EitherFlag", ptr %28, i64 1
  store ptr %161, ptr %29, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %161, ptr noundef @.str.15)
          to label %162 unwind label %420

162:                                              ; preds = %160
  %163 = getelementptr inbounds %"class.std::initializer_list", ptr %27, i32 0, i32 0
  store ptr %28, ptr %163, align 8, !tbaa !40
  %164 = getelementptr inbounds %"class.std::initializer_list", ptr %27, i32 0, i32 1
  store i64 2, ptr %164, align 8, !tbaa !42
  %165 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8
  %167 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 1
  %168 = load i64, ptr %167, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %26, ptr %166, i64 %168)
          to label %169 unwind label %431

169:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  store double 1.000000e-02, ptr %30, align 8, !tbaa !43
  invoke void @_ZN4args9ValueFlagIdNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKdb(ptr noundef nonnull align 8 dereferenceable(289) %21, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(112) %26, ptr noundef nonnull align 8 dereferenceable(8) %30, i1 noundef zeroext false)
          to label %170 unwind label %435

170:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %26) #8
  %171 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %28, i32 0, i32 0
  %172 = getelementptr inbounds %"struct.args::EitherFlag", ptr %171, i64 2
  br label %173

173:                                              ; preds = %173, %170
  %174 = phi ptr [ %172, %170 ], [ %175, %173 ]
  %175 = getelementptr inbounds %"struct.args::EitherFlag", ptr %174, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %175) #8
  %176 = icmp eq ptr %175, %171
  br i1 %176, label %177, label %173

177:                                              ; preds = %173
  call void @llvm.lifetime.end.p0(i64 80, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 288, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %178 unwind label %450

178:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %179 unwind label %454

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 112, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %38) #8
  store ptr %38, ptr %39, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %38, i8 noundef signext 114)
          to label %180 unwind label %458

180:                                              ; preds = %179
  %181 = getelementptr inbounds %"struct.args::EitherFlag", ptr %38, i64 1
  store ptr %181, ptr %39, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %181, ptr noundef @.str.16)
          to label %182 unwind label %458

182:                                              ; preds = %180
  %183 = getelementptr inbounds %"class.std::initializer_list", ptr %37, i32 0, i32 0
  store ptr %38, ptr %183, align 8, !tbaa !40
  %184 = getelementptr inbounds %"class.std::initializer_list", ptr %37, i32 0, i32 1
  store i64 2, ptr %184, align 8, !tbaa !42
  %185 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 0
  %186 = load ptr, ptr %185, align 8
  %187 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 1
  %188 = load i64, ptr %187, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %36, ptr %186, i64 %188)
          to label %189 unwind label %469

189:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store float 0x3FD54FDF40000000, ptr %40, align 4, !tbaa !45
  invoke void @_ZN4args9ValueFlagIfNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKfb(ptr noundef nonnull align 8 dereferenceable(281) %31, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(112) %36, ptr noundef nonnull align 4 dereferenceable(4) %40, i1 noundef zeroext false)
          to label %190 unwind label %473

190:                                              ; preds = %189
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #8
  %191 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %38, i32 0, i32 0
  %192 = getelementptr inbounds %"struct.args::EitherFlag", ptr %191, i64 2
  br label %193

193:                                              ; preds = %193, %190
  %194 = phi ptr [ %192, %190 ], [ %195, %193 ]
  %195 = getelementptr inbounds %"struct.args::EitherFlag", ptr %194, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  %196 = icmp eq ptr %195, %191
  br i1 %196, label %197, label %193

197:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 80, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %198 unwind label %488

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %199 unwind label %492

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 112, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %48) #8
  store ptr %48, ptr %49, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %48, i8 noundef signext 118)
          to label %200 unwind label %496

200:                                              ; preds = %199
  %201 = getelementptr inbounds %"struct.args::EitherFlag", ptr %48, i64 1
  store ptr %201, ptr %49, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %201, ptr noundef @.str.18)
          to label %202 unwind label %496

202:                                              ; preds = %200
  %203 = getelementptr inbounds %"class.std::initializer_list", ptr %47, i32 0, i32 0
  store ptr %48, ptr %203, align 8, !tbaa !40
  %204 = getelementptr inbounds %"class.std::initializer_list", ptr %47, i32 0, i32 1
  store i64 2, ptr %204, align 8, !tbaa !42
  %205 = getelementptr inbounds { ptr, i64 }, ptr %47, i32 0, i32 0
  %206 = load ptr, ptr %205, align 8
  %207 = getelementptr inbounds { ptr, i64 }, ptr %47, i32 0, i32 1
  %208 = load i64, ptr %207, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %46, ptr %206, i64 %208)
          to label %209 unwind label %507

209:                                              ; preds = %202
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %41, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(112) %46, i1 noundef zeroext false)
          to label %210 unwind label %511

210:                                              ; preds = %209
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %46) #8
  %211 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %48, i32 0, i32 0
  %212 = getelementptr inbounds %"struct.args::EitherFlag", ptr %211, i64 2
  br label %213

213:                                              ; preds = %213, %210
  %214 = phi ptr [ %212, %210 ], [ %215, %213 ]
  %215 = getelementptr inbounds %"struct.args::EitherFlag", ptr %214, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %215) #8
  %216 = icmp eq ptr %215, %211
  br i1 %216, label %217, label %213

217:                                              ; preds = %213
  call void @llvm.lifetime.end.p0(i64 80, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %218 unwind label %526

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @_ZN4args5Group10Validators3XorERKS0_) #8
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104) %50, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %53, i32 noundef 2)
          to label %219 unwind label %530

219:                                              ; preds = %218
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %220 unwind label %535

220:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %221 unwind label %539

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 112, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %61) #8
  store ptr %61, ptr %62, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %61, i8 noundef signext 116)
          to label %222 unwind label %543

222:                                              ; preds = %221
  %223 = getelementptr inbounds %"struct.args::EitherFlag", ptr %61, i64 1
  store ptr %223, ptr %62, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %223, ptr noundef @.str.23)
          to label %224 unwind label %543

224:                                              ; preds = %222
  %225 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 0
  store ptr %61, ptr %225, align 8, !tbaa !40
  %226 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 1
  store i64 2, ptr %226, align 8, !tbaa !42
  %227 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 0
  %228 = load ptr, ptr %227, align 8
  %229 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 1
  %230 = load i64, ptr %229, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %59, ptr %228, i64 %230)
          to label %231 unwind label %554

231:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  store i64 0, ptr %63, align 8, !tbaa !47
  invoke void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289) %54, ptr noundef nonnull align 8 dereferenceable(104) %50, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(112) %59, ptr noundef nonnull align 8 dereferenceable(8) %63, i1 noundef zeroext false)
          to label %232 unwind label %558

232:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %59) #8
  %233 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %61, i32 0, i32 0
  %234 = getelementptr inbounds %"struct.args::EitherFlag", ptr %233, i64 2
  br label %235

235:                                              ; preds = %235, %232
  %236 = phi ptr [ %234, %232 ], [ %237, %235 ]
  %237 = getelementptr inbounds %"struct.args::EitherFlag", ptr %236, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %237) #8
  %238 = icmp eq ptr %237, %233
  br i1 %238, label %239, label %235

239:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 80, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %240 unwind label %573

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %241 unwind label %577

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 112, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %71) #8
  store ptr %71, ptr %72, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %71, i8 noundef signext 115)
          to label %242 unwind label %581

242:                                              ; preds = %241
  %243 = getelementptr inbounds %"struct.args::EitherFlag", ptr %71, i64 1
  store ptr %243, ptr %72, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %243, ptr noundef @.str.26)
          to label %244 unwind label %581

244:                                              ; preds = %242
  %245 = getelementptr inbounds %"class.std::initializer_list", ptr %70, i32 0, i32 0
  store ptr %71, ptr %245, align 8, !tbaa !40
  %246 = getelementptr inbounds %"class.std::initializer_list", ptr %70, i32 0, i32 1
  store i64 2, ptr %246, align 8, !tbaa !42
  %247 = getelementptr inbounds { ptr, i64 }, ptr %70, i32 0, i32 0
  %248 = load ptr, ptr %247, align 8
  %249 = getelementptr inbounds { ptr, i64 }, ptr %70, i32 0, i32 1
  %250 = load i64, ptr %249, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %69, ptr %248, i64 %250)
          to label %251 unwind label %592

251:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  store i64 0, ptr %73, align 8, !tbaa !47
  invoke void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289) %64, ptr noundef nonnull align 8 dereferenceable(104) %50, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(112) %69, ptr noundef nonnull align 8 dereferenceable(8) %73, i1 noundef zeroext false)
          to label %252 unwind label %596

252:                                              ; preds = %251
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %69) #8
  %253 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %71, i32 0, i32 0
  %254 = getelementptr inbounds %"struct.args::EitherFlag", ptr %253, i64 2
  br label %255

255:                                              ; preds = %255, %252
  %256 = phi ptr [ %254, %252 ], [ %257, %255 ]
  %257 = getelementptr inbounds %"struct.args::EitherFlag", ptr %256, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %257) #8
  %258 = icmp eq ptr %257, %253
  br i1 %258, label %259, label %255

259:                                              ; preds = %255
  call void @llvm.lifetime.end.p0(i64 80, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %260 unwind label %611

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @_ZN4args5Group10Validators3XorERKS0_) #8
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104) %74, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %77, i32 noundef 2)
          to label %261 unwind label %615

261:                                              ; preds = %260
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr %78) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %262 unwind label %620

262:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %263 unwind label %624

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 112, ptr %83) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %85) #8
  store ptr %85, ptr %86, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %85, i8 noundef signext 85)
          to label %264 unwind label %628

264:                                              ; preds = %263
  %265 = getelementptr inbounds %"struct.args::EitherFlag", ptr %85, i64 1
  store ptr %265, ptr %86, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %265, ptr noundef @.str.30)
          to label %266 unwind label %628

266:                                              ; preds = %264
  %267 = getelementptr inbounds %"class.std::initializer_list", ptr %84, i32 0, i32 0
  store ptr %85, ptr %267, align 8, !tbaa !40
  %268 = getelementptr inbounds %"class.std::initializer_list", ptr %84, i32 0, i32 1
  store i64 2, ptr %268, align 8, !tbaa !42
  %269 = getelementptr inbounds { ptr, i64 }, ptr %84, i32 0, i32 0
  %270 = load ptr, ptr %269, align 8
  %271 = getelementptr inbounds { ptr, i64 }, ptr %84, i32 0, i32 1
  %272 = load i64, ptr %271, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %83, ptr %270, i64 %272)
          to label %273 unwind label %639

273:                                              ; preds = %266
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %78, ptr noundef nonnull align 8 dereferenceable(104) %74, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(112) %83, i1 noundef zeroext false)
          to label %274 unwind label %643

274:                                              ; preds = %273
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %83) #8
  %275 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %85, i32 0, i32 0
  %276 = getelementptr inbounds %"struct.args::EitherFlag", ptr %275, i64 2
  br label %277

277:                                              ; preds = %277, %274
  %278 = phi ptr [ %276, %274 ], [ %279, %277 ]
  %279 = getelementptr inbounds %"struct.args::EitherFlag", ptr %278, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %279) #8
  %280 = icmp eq ptr %279, %275
  br i1 %280, label %281, label %277

281:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 80, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %282 unwind label %658

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %283 unwind label %662

283:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 112, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %94) #8
  store ptr %94, ptr %95, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %94, i8 noundef signext 73)
          to label %284 unwind label %666

284:                                              ; preds = %283
  %285 = getelementptr inbounds %"struct.args::EitherFlag", ptr %94, i64 1
  store ptr %285, ptr %95, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %285, ptr noundef @.str.32)
          to label %286 unwind label %666

286:                                              ; preds = %284
  %287 = getelementptr inbounds %"class.std::initializer_list", ptr %93, i32 0, i32 0
  store ptr %94, ptr %287, align 8, !tbaa !40
  %288 = getelementptr inbounds %"class.std::initializer_list", ptr %93, i32 0, i32 1
  store i64 2, ptr %288, align 8, !tbaa !42
  %289 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 0
  %290 = load ptr, ptr %289, align 8
  %291 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 1
  %292 = load i64, ptr %291, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %92, ptr %290, i64 %292)
          to label %293 unwind label %677

293:                                              ; preds = %286
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %87, ptr noundef nonnull align 8 dereferenceable(104) %74, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(112) %92, i1 noundef zeroext false)
          to label %294 unwind label %681

294:                                              ; preds = %293
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %92) #8
  %295 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %94, i32 0, i32 0
  %296 = getelementptr inbounds %"struct.args::EitherFlag", ptr %295, i64 2
  br label %297

297:                                              ; preds = %297, %294
  %298 = phi ptr [ %296, %294 ], [ %299, %297 ]
  %299 = getelementptr inbounds %"struct.args::EitherFlag", ptr %298, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %299) #8
  %300 = icmp eq ptr %299, %295
  br i1 %300, label %301, label %297

301:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 80, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %302 unwind label %696

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %303 unwind label %700

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 112, ptr %101) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %103) #8
  store ptr %103, ptr %104, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %103, i8 noundef signext 117)
          to label %304 unwind label %704

304:                                              ; preds = %303
  %305 = getelementptr inbounds %"struct.args::EitherFlag", ptr %103, i64 1
  store ptr %305, ptr %104, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %305, ptr noundef @.str.34)
          to label %306 unwind label %704

306:                                              ; preds = %304
  %307 = getelementptr inbounds %"class.std::initializer_list", ptr %102, i32 0, i32 0
  store ptr %103, ptr %307, align 8, !tbaa !40
  %308 = getelementptr inbounds %"class.std::initializer_list", ptr %102, i32 0, i32 1
  store i64 2, ptr %308, align 8, !tbaa !42
  %309 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 0
  %310 = load ptr, ptr %309, align 8
  %311 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 1
  %312 = load i64, ptr %311, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %101, ptr %310, i64 %312)
          to label %313 unwind label %715

313:                                              ; preds = %306
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %96, ptr noundef nonnull align 8 dereferenceable(104) %74, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(112) %101, i1 noundef zeroext false)
          to label %314 unwind label %719

314:                                              ; preds = %313
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %101) #8
  %315 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %103, i32 0, i32 0
  %316 = getelementptr inbounds %"struct.args::EitherFlag", ptr %315, i64 2
  br label %317

317:                                              ; preds = %317, %314
  %318 = phi ptr [ %316, %314 ], [ %319, %317 ]
  %319 = getelementptr inbounds %"struct.args::EitherFlag", ptr %318, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %319) #8
  %320 = icmp eq ptr %319, %315
  br i1 %320, label %321, label %317

321:                                              ; preds = %317
  call void @llvm.lifetime.end.p0(i64 80, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %101) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr %105) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %322 unwind label %734

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %323 unwind label %738

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 112, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %112) #8
  store ptr %112, ptr %113, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %112, i8 noundef signext 105)
          to label %324 unwind label %742

324:                                              ; preds = %323
  %325 = getelementptr inbounds %"struct.args::EitherFlag", ptr %112, i64 1
  store ptr %325, ptr %113, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %325, ptr noundef @.str.36)
          to label %326 unwind label %742

326:                                              ; preds = %324
  %327 = getelementptr inbounds %"class.std::initializer_list", ptr %111, i32 0, i32 0
  store ptr %112, ptr %327, align 8, !tbaa !40
  %328 = getelementptr inbounds %"class.std::initializer_list", ptr %111, i32 0, i32 1
  store i64 2, ptr %328, align 8, !tbaa !42
  %329 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 0
  %330 = load ptr, ptr %329, align 8
  %331 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 1
  %332 = load i64, ptr %331, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %110, ptr %330, i64 %332)
          to label %333 unwind label %753

333:                                              ; preds = %326
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %105, ptr noundef nonnull align 8 dereferenceable(104) %74, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(112) %110, i1 noundef zeroext false)
          to label %334 unwind label %757

334:                                              ; preds = %333
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %110) #8
  %335 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %112, i32 0, i32 0
  %336 = getelementptr inbounds %"struct.args::EitherFlag", ptr %335, i64 2
  br label %337

337:                                              ; preds = %337, %334
  %338 = phi ptr [ %336, %334 ], [ %339, %337 ]
  %339 = getelementptr inbounds %"struct.args::EitherFlag", ptr %338, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %339) #8
  %340 = icmp eq ptr %339, %335
  br i1 %340, label %341, label %337

341:                                              ; preds = %337
  call void @llvm.lifetime.end.p0(i64 80, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %110) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #8
  call void @llvm.lifetime.start.p0(i64 232, ptr %114) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %342 unwind label %772

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %343 unwind label %776

343:                                              ; preds = %342
  invoke void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEEC2ERNS_5GroupERKS6_SC_NS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(225) %114, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %117, i32 noundef 2)
          to label %344 unwind label %780

344:                                              ; preds = %343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 336, ptr %119) #8
  call void @llvm.lifetime.start.p0(i64 112, ptr %120) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %122) #8
  store ptr %122, ptr %123, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %122, ptr noundef @.str.39)
          to label %345 unwind label %786

345:                                              ; preds = %344
  %346 = getelementptr inbounds %"class.std::initializer_list", ptr %121, i32 0, i32 0
  store ptr %122, ptr %346, align 8, !tbaa !40
  %347 = getelementptr inbounds %"class.std::initializer_list", ptr %121, i32 0, i32 1
  store i64 1, ptr %347, align 8, !tbaa !42
  %348 = getelementptr inbounds { ptr, i64 }, ptr %121, i32 0, i32 0
  %349 = load ptr, ptr %348, align 8
  %350 = getelementptr inbounds { ptr, i64 }, ptr %121, i32 0, i32 1
  %351 = load i64, ptr %350, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %120, ptr %349, i64 %351)
          to label %352 unwind label %797

352:                                              ; preds = %345
  invoke void @_ZN4args14CompletionFlagC2INS_14ArgumentParserEEERT_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(336) %119, ptr noundef nonnull align 8 dereferenceable(1216) %6, ptr noundef nonnull align 8 dereferenceable(112) %120)
          to label %353 unwind label %801

353:                                              ; preds = %352
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %120) #8
  %354 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %122, i32 0, i32 0
  %355 = getelementptr inbounds %"struct.args::EitherFlag", ptr %354, i64 1
  br label %356

356:                                              ; preds = %356, %353
  %357 = phi ptr [ %355, %353 ], [ %358, %356 ]
  %358 = getelementptr inbounds %"struct.args::EitherFlag", ptr %357, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %358) #8
  %359 = icmp eq ptr %358, %354
  br i1 %359, label %360, label %356

360:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 40, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %120) #8
  %361 = load i32, ptr %4, align 4, !tbaa !5
  %362 = load ptr, ptr %5, align 8, !tbaa !9
  %363 = invoke noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(1216) %6, i32 noundef %361, ptr noundef %362)
          to label %364 unwind label %814

364:                                              ; preds = %360
  br label %881

365:                                              ; preds = %2
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %9, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %10, align 4
  br label %373

369:                                              ; preds = %128
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %9, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %373

373:                                              ; preds = %369, %365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  br label %928

374:                                              ; preds = %129
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %9, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %10, align 4
  br label %411

378:                                              ; preds = %138
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %9, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %10, align 4
  br label %410

382:                                              ; preds = %140, %139
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %9, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %10, align 4
  %386 = load ptr, ptr %20, align 8
  %387 = icmp eq ptr %19, %386
  br i1 %387, label %392, label %388

388:                                              ; preds = %388, %382
  %389 = phi ptr [ %386, %382 ], [ %390, %388 ]
  %390 = getelementptr inbounds %"struct.args::EitherFlag", ptr %389, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %390) #8
  %391 = icmp eq ptr %390, %19
  br i1 %391, label %392, label %388

392:                                              ; preds = %388, %382
  br label %409

393:                                              ; preds = %142
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %9, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %10, align 4
  br label %401

397:                                              ; preds = %149
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %9, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #8
  br label %401

401:                                              ; preds = %397, %393
  %402 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %19, i32 0, i32 0
  %403 = getelementptr inbounds %"struct.args::EitherFlag", ptr %402, i64 2
  br label %404

404:                                              ; preds = %404, %401
  %405 = phi ptr [ %403, %401 ], [ %406, %404 ]
  %406 = getelementptr inbounds %"struct.args::EitherFlag", ptr %405, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %406) #8
  %407 = icmp eq ptr %406, %402
  br i1 %407, label %408, label %404

408:                                              ; preds = %404
  br label %409

409:                                              ; preds = %408, %392
  call void @llvm.lifetime.end.p0(i64 80, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %410

410:                                              ; preds = %409, %378
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %411

411:                                              ; preds = %410, %374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  br label %927

412:                                              ; preds = %157
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %9, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %10, align 4
  br label %449

416:                                              ; preds = %158
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %9, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %10, align 4
  br label %448

420:                                              ; preds = %160, %159
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %9, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %10, align 4
  %424 = load ptr, ptr %29, align 8
  %425 = icmp eq ptr %28, %424
  br i1 %425, label %430, label %426

426:                                              ; preds = %426, %420
  %427 = phi ptr [ %424, %420 ], [ %428, %426 ]
  %428 = getelementptr inbounds %"struct.args::EitherFlag", ptr %427, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %428) #8
  %429 = icmp eq ptr %428, %28
  br i1 %429, label %430, label %426

430:                                              ; preds = %426, %420
  br label %447

431:                                              ; preds = %162
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %9, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %10, align 4
  br label %439

435:                                              ; preds = %169
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %9, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %26) #8
  br label %439

439:                                              ; preds = %435, %431
  %440 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %28, i32 0, i32 0
  %441 = getelementptr inbounds %"struct.args::EitherFlag", ptr %440, i64 2
  br label %442

442:                                              ; preds = %442, %439
  %443 = phi ptr [ %441, %439 ], [ %444, %442 ]
  %444 = getelementptr inbounds %"struct.args::EitherFlag", ptr %443, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %444) #8
  %445 = icmp eq ptr %444, %440
  br i1 %445, label %446, label %442

446:                                              ; preds = %442
  br label %447

447:                                              ; preds = %446, %430
  call void @llvm.lifetime.end.p0(i64 80, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %448

448:                                              ; preds = %447, %416
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %449

449:                                              ; preds = %448, %412
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  br label %926

450:                                              ; preds = %177
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %9, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %10, align 4
  br label %487

454:                                              ; preds = %178
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %9, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %10, align 4
  br label %486

458:                                              ; preds = %180, %179
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %9, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %10, align 4
  %462 = load ptr, ptr %39, align 8
  %463 = icmp eq ptr %38, %462
  br i1 %463, label %468, label %464

464:                                              ; preds = %464, %458
  %465 = phi ptr [ %462, %458 ], [ %466, %464 ]
  %466 = getelementptr inbounds %"struct.args::EitherFlag", ptr %465, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %466) #8
  %467 = icmp eq ptr %466, %38
  br i1 %467, label %468, label %464

468:                                              ; preds = %464, %458
  br label %485

469:                                              ; preds = %182
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %9, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %10, align 4
  br label %477

473:                                              ; preds = %189
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %9, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #8
  br label %477

477:                                              ; preds = %473, %469
  %478 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %38, i32 0, i32 0
  %479 = getelementptr inbounds %"struct.args::EitherFlag", ptr %478, i64 2
  br label %480

480:                                              ; preds = %480, %477
  %481 = phi ptr [ %479, %477 ], [ %482, %480 ]
  %482 = getelementptr inbounds %"struct.args::EitherFlag", ptr %481, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %482) #8
  %483 = icmp eq ptr %482, %478
  br i1 %483, label %484, label %480

484:                                              ; preds = %480
  br label %485

485:                                              ; preds = %484, %468
  call void @llvm.lifetime.end.p0(i64 80, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %486

486:                                              ; preds = %485, %454
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %487

487:                                              ; preds = %486, %450
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %925

488:                                              ; preds = %197
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %9, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %10, align 4
  br label %525

492:                                              ; preds = %198
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %9, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %10, align 4
  br label %524

496:                                              ; preds = %200, %199
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %9, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %10, align 4
  %500 = load ptr, ptr %49, align 8
  %501 = icmp eq ptr %48, %500
  br i1 %501, label %506, label %502

502:                                              ; preds = %502, %496
  %503 = phi ptr [ %500, %496 ], [ %504, %502 ]
  %504 = getelementptr inbounds %"struct.args::EitherFlag", ptr %503, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %504) #8
  %505 = icmp eq ptr %504, %48
  br i1 %505, label %506, label %502

506:                                              ; preds = %502, %496
  br label %523

507:                                              ; preds = %202
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %9, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %10, align 4
  br label %515

511:                                              ; preds = %209
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %9, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %46) #8
  br label %515

515:                                              ; preds = %511, %507
  %516 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %48, i32 0, i32 0
  %517 = getelementptr inbounds %"struct.args::EitherFlag", ptr %516, i64 2
  br label %518

518:                                              ; preds = %518, %515
  %519 = phi ptr [ %517, %515 ], [ %520, %518 ]
  %520 = getelementptr inbounds %"struct.args::EitherFlag", ptr %519, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %520) #8
  %521 = icmp eq ptr %520, %516
  br i1 %521, label %522, label %518

522:                                              ; preds = %518
  br label %523

523:                                              ; preds = %522, %506
  call void @llvm.lifetime.end.p0(i64 80, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %524

524:                                              ; preds = %523, %492
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %525

525:                                              ; preds = %524, %488
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %924

526:                                              ; preds = %217
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %9, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %10, align 4
  br label %534

530:                                              ; preds = %218
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %9, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %10, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %534

534:                                              ; preds = %530, %526
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %923

535:                                              ; preds = %219
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %9, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %10, align 4
  br label %572

539:                                              ; preds = %220
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %9, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %10, align 4
  br label %571

543:                                              ; preds = %222, %221
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %9, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %10, align 4
  %547 = load ptr, ptr %62, align 8
  %548 = icmp eq ptr %61, %547
  br i1 %548, label %553, label %549

549:                                              ; preds = %549, %543
  %550 = phi ptr [ %547, %543 ], [ %551, %549 ]
  %551 = getelementptr inbounds %"struct.args::EitherFlag", ptr %550, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %551) #8
  %552 = icmp eq ptr %551, %61
  br i1 %552, label %553, label %549

553:                                              ; preds = %549, %543
  br label %570

554:                                              ; preds = %224
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %9, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %10, align 4
  br label %562

558:                                              ; preds = %231
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %9, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %59) #8
  br label %562

562:                                              ; preds = %558, %554
  %563 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %61, i32 0, i32 0
  %564 = getelementptr inbounds %"struct.args::EitherFlag", ptr %563, i64 2
  br label %565

565:                                              ; preds = %565, %562
  %566 = phi ptr [ %564, %562 ], [ %567, %565 ]
  %567 = getelementptr inbounds %"struct.args::EitherFlag", ptr %566, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %567) #8
  %568 = icmp eq ptr %567, %563
  br i1 %568, label %569, label %565

569:                                              ; preds = %565
  br label %570

570:                                              ; preds = %569, %553
  call void @llvm.lifetime.end.p0(i64 80, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %571

571:                                              ; preds = %570, %539
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %572

572:                                              ; preds = %571, %535
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  br label %922

573:                                              ; preds = %239
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %9, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %10, align 4
  br label %610

577:                                              ; preds = %240
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %9, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %10, align 4
  br label %609

581:                                              ; preds = %242, %241
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %9, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %10, align 4
  %585 = load ptr, ptr %72, align 8
  %586 = icmp eq ptr %71, %585
  br i1 %586, label %591, label %587

587:                                              ; preds = %587, %581
  %588 = phi ptr [ %585, %581 ], [ %589, %587 ]
  %589 = getelementptr inbounds %"struct.args::EitherFlag", ptr %588, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %589) #8
  %590 = icmp eq ptr %589, %71
  br i1 %590, label %591, label %587

591:                                              ; preds = %587, %581
  br label %608

592:                                              ; preds = %244
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %9, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %10, align 4
  br label %600

596:                                              ; preds = %251
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %9, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %69) #8
  br label %600

600:                                              ; preds = %596, %592
  %601 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %71, i32 0, i32 0
  %602 = getelementptr inbounds %"struct.args::EitherFlag", ptr %601, i64 2
  br label %603

603:                                              ; preds = %603, %600
  %604 = phi ptr [ %602, %600 ], [ %605, %603 ]
  %605 = getelementptr inbounds %"struct.args::EitherFlag", ptr %604, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %605) #8
  %606 = icmp eq ptr %605, %601
  br i1 %606, label %607, label %603

607:                                              ; preds = %603
  br label %608

608:                                              ; preds = %607, %591
  call void @llvm.lifetime.end.p0(i64 80, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %609

609:                                              ; preds = %608, %577
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %610

610:                                              ; preds = %609, %573
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  br label %921

611:                                              ; preds = %259
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %9, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %10, align 4
  br label %619

615:                                              ; preds = %260
  %616 = landingpad { ptr, i32 }
          cleanup
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %9, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %10, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %619

619:                                              ; preds = %615, %611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %920

620:                                              ; preds = %261
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %9, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %10, align 4
  br label %657

624:                                              ; preds = %262
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %9, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %10, align 4
  br label %656

628:                                              ; preds = %264, %263
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %9, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %10, align 4
  %632 = load ptr, ptr %86, align 8
  %633 = icmp eq ptr %85, %632
  br i1 %633, label %638, label %634

634:                                              ; preds = %634, %628
  %635 = phi ptr [ %632, %628 ], [ %636, %634 ]
  %636 = getelementptr inbounds %"struct.args::EitherFlag", ptr %635, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %636) #8
  %637 = icmp eq ptr %636, %85
  br i1 %637, label %638, label %634

638:                                              ; preds = %634, %628
  br label %655

639:                                              ; preds = %266
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %9, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %10, align 4
  br label %647

643:                                              ; preds = %273
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %9, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %83) #8
  br label %647

647:                                              ; preds = %643, %639
  %648 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %85, i32 0, i32 0
  %649 = getelementptr inbounds %"struct.args::EitherFlag", ptr %648, i64 2
  br label %650

650:                                              ; preds = %650, %647
  %651 = phi ptr [ %649, %647 ], [ %652, %650 ]
  %652 = getelementptr inbounds %"struct.args::EitherFlag", ptr %651, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %652) #8
  %653 = icmp eq ptr %652, %648
  br i1 %653, label %654, label %650

654:                                              ; preds = %650
  br label %655

655:                                              ; preds = %654, %638
  call void @llvm.lifetime.end.p0(i64 80, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %656

656:                                              ; preds = %655, %624
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %657

657:                                              ; preds = %656, %620
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %919

658:                                              ; preds = %281
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %9, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %10, align 4
  br label %695

662:                                              ; preds = %282
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %9, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %10, align 4
  br label %694

666:                                              ; preds = %284, %283
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %9, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %10, align 4
  %670 = load ptr, ptr %95, align 8
  %671 = icmp eq ptr %94, %670
  br i1 %671, label %676, label %672

672:                                              ; preds = %672, %666
  %673 = phi ptr [ %670, %666 ], [ %674, %672 ]
  %674 = getelementptr inbounds %"struct.args::EitherFlag", ptr %673, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %674) #8
  %675 = icmp eq ptr %674, %94
  br i1 %675, label %676, label %672

676:                                              ; preds = %672, %666
  br label %693

677:                                              ; preds = %286
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %9, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %10, align 4
  br label %685

681:                                              ; preds = %293
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %9, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %92) #8
  br label %685

685:                                              ; preds = %681, %677
  %686 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %94, i32 0, i32 0
  %687 = getelementptr inbounds %"struct.args::EitherFlag", ptr %686, i64 2
  br label %688

688:                                              ; preds = %688, %685
  %689 = phi ptr [ %687, %685 ], [ %690, %688 ]
  %690 = getelementptr inbounds %"struct.args::EitherFlag", ptr %689, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %690) #8
  %691 = icmp eq ptr %690, %686
  br i1 %691, label %692, label %688

692:                                              ; preds = %688
  br label %693

693:                                              ; preds = %692, %676
  call void @llvm.lifetime.end.p0(i64 80, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %694

694:                                              ; preds = %693, %662
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %695

695:                                              ; preds = %694, %658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #8
  br label %918

696:                                              ; preds = %301
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %9, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %10, align 4
  br label %733

700:                                              ; preds = %302
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %9, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %10, align 4
  br label %732

704:                                              ; preds = %304, %303
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %9, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %10, align 4
  %708 = load ptr, ptr %104, align 8
  %709 = icmp eq ptr %103, %708
  br i1 %709, label %714, label %710

710:                                              ; preds = %710, %704
  %711 = phi ptr [ %708, %704 ], [ %712, %710 ]
  %712 = getelementptr inbounds %"struct.args::EitherFlag", ptr %711, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %712) #8
  %713 = icmp eq ptr %712, %103
  br i1 %713, label %714, label %710

714:                                              ; preds = %710, %704
  br label %731

715:                                              ; preds = %306
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %9, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %10, align 4
  br label %723

719:                                              ; preds = %313
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %9, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %101) #8
  br label %723

723:                                              ; preds = %719, %715
  %724 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %103, i32 0, i32 0
  %725 = getelementptr inbounds %"struct.args::EitherFlag", ptr %724, i64 2
  br label %726

726:                                              ; preds = %726, %723
  %727 = phi ptr [ %725, %723 ], [ %728, %726 ]
  %728 = getelementptr inbounds %"struct.args::EitherFlag", ptr %727, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %728) #8
  %729 = icmp eq ptr %728, %724
  br i1 %729, label %730, label %726

730:                                              ; preds = %726
  br label %731

731:                                              ; preds = %730, %714
  call void @llvm.lifetime.end.p0(i64 80, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %101) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %732

732:                                              ; preds = %731, %700
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %733

733:                                              ; preds = %732, %696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %917

734:                                              ; preds = %321
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %9, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %10, align 4
  br label %771

738:                                              ; preds = %322
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %9, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %10, align 4
  br label %770

742:                                              ; preds = %324, %323
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %9, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %10, align 4
  %746 = load ptr, ptr %113, align 8
  %747 = icmp eq ptr %112, %746
  br i1 %747, label %752, label %748

748:                                              ; preds = %748, %742
  %749 = phi ptr [ %746, %742 ], [ %750, %748 ]
  %750 = getelementptr inbounds %"struct.args::EitherFlag", ptr %749, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %750) #8
  %751 = icmp eq ptr %750, %112
  br i1 %751, label %752, label %748

752:                                              ; preds = %748, %742
  br label %769

753:                                              ; preds = %326
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %9, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %10, align 4
  br label %761

757:                                              ; preds = %333
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %9, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %110) #8
  br label %761

761:                                              ; preds = %757, %753
  %762 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %112, i32 0, i32 0
  %763 = getelementptr inbounds %"struct.args::EitherFlag", ptr %762, i64 2
  br label %764

764:                                              ; preds = %764, %761
  %765 = phi ptr [ %763, %761 ], [ %766, %764 ]
  %766 = getelementptr inbounds %"struct.args::EitherFlag", ptr %765, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %766) #8
  %767 = icmp eq ptr %766, %762
  br i1 %767, label %768, label %764

768:                                              ; preds = %764
  br label %769

769:                                              ; preds = %768, %752
  call void @llvm.lifetime.end.p0(i64 80, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %110) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %770

770:                                              ; preds = %769, %738
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  br label %771

771:                                              ; preds = %770, %734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #8
  br label %916

772:                                              ; preds = %341
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %9, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %10, align 4
  br label %785

776:                                              ; preds = %342
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %9, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %10, align 4
  br label %784

780:                                              ; preds = %343
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %9, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %784

784:                                              ; preds = %780, %776
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %785

785:                                              ; preds = %784, %772
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  br label %915

786:                                              ; preds = %344
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %9, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %10, align 4
  %790 = load ptr, ptr %123, align 8
  %791 = icmp eq ptr %122, %790
  br i1 %791, label %796, label %792

792:                                              ; preds = %792, %786
  %793 = phi ptr [ %790, %786 ], [ %794, %792 ]
  %794 = getelementptr inbounds %"struct.args::EitherFlag", ptr %793, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %794) #8
  %795 = icmp eq ptr %794, %122
  br i1 %795, label %796, label %792

796:                                              ; preds = %792, %786
  br label %813

797:                                              ; preds = %345
  %798 = landingpad { ptr, i32 }
          cleanup
  %799 = extractvalue { ptr, i32 } %798, 0
  store ptr %799, ptr %9, align 8
  %800 = extractvalue { ptr, i32 } %798, 1
  store i32 %800, ptr %10, align 4
  br label %805

801:                                              ; preds = %352
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %9, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %120) #8
  br label %805

805:                                              ; preds = %801, %797
  %806 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %122, i32 0, i32 0
  %807 = getelementptr inbounds %"struct.args::EitherFlag", ptr %806, i64 1
  br label %808

808:                                              ; preds = %808, %805
  %809 = phi ptr [ %807, %805 ], [ %810, %808 ]
  %810 = getelementptr inbounds %"struct.args::EitherFlag", ptr %809, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %810) #8
  %811 = icmp eq ptr %810, %806
  br i1 %811, label %812, label %808

812:                                              ; preds = %808
  br label %813

813:                                              ; preds = %812, %796
  call void @llvm.lifetime.end.p0(i64 40, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr %120) #8
  br label %914

814:                                              ; preds = %360
  %815 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4args10CompletionE
          catch ptr @_ZTIN4args4HelpE
          catch ptr @_ZTIN4args5ErrorE
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %9, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %10, align 4
  br label %818

818:                                              ; preds = %814
  %819 = load i32, ptr %10, align 4
  %820 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args10CompletionE) #8
  %821 = icmp eq i32 %819, %820
  br i1 %821, label %822, label %832

822:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  %823 = load ptr, ptr %9, align 8
  %824 = call ptr @__cxa_begin_catch(ptr %823) #8
  store ptr %824, ptr %127, align 8
  %825 = load ptr, ptr %127, align 8, !tbaa !9
  %826 = load ptr, ptr %825, align 8, !tbaa !48
  %827 = getelementptr inbounds ptr, ptr %826, i64 2
  %828 = load ptr, ptr %827, align 8
  %829 = call noundef ptr %828(ptr noundef nonnull align 8 dereferenceable(16) %825) #8
  %830 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %829)
          to label %831 unwind label %870

831:                                              ; preds = %822
  store i32 0, ptr %3, align 4
  store i32 1, ptr %125, align 4
  invoke void @__cxa_end_catch()
          to label %874 unwind label %875

832:                                              ; preds = %818
  %833 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args4HelpE) #8
  %834 = icmp eq i32 %819, %833
  br i1 %834, label %835, label %840

835:                                              ; preds = %832
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #8
  %836 = load ptr, ptr %9, align 8
  %837 = call ptr @__cxa_begin_catch(ptr %836) #8
  store ptr %837, ptr %126, align 8
  %838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(1216) %6)
          to label %839 unwind label %859

839:                                              ; preds = %835
  store i32 0, ptr %3, align 4
  store i32 1, ptr %125, align 4
  invoke void @__cxa_end_catch()
          to label %863 unwind label %864

840:                                              ; preds = %832
  %841 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args5ErrorE) #8
  %842 = icmp eq i32 %819, %841
  br i1 %842, label %843, label %913

843:                                              ; preds = %840
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %844 = load ptr, ptr %9, align 8
  %845 = call ptr @__cxa_begin_catch(ptr %844) #8
  store ptr %845, ptr %124, align 8
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(1216) %6)
          to label %847 unwind label %848

847:                                              ; preds = %843
  store i32 1, ptr %3, align 4
  store i32 1, ptr %125, align 4
  invoke void @__cxa_end_catch()
          to label %852 unwind label %853

848:                                              ; preds = %843
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %9, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %857 unwind label %934

852:                                              ; preds = %847
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %909

853:                                              ; preds = %847
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %9, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %10, align 4
  br label %858

857:                                              ; preds = %848
  br label %858

858:                                              ; preds = %857, %853
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %913

859:                                              ; preds = %835
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %9, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %868 unwind label %934

863:                                              ; preds = %839
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  br label %909

864:                                              ; preds = %839
  %865 = landingpad { ptr, i32 }
          cleanup
  %866 = extractvalue { ptr, i32 } %865, 0
  store ptr %866, ptr %9, align 8
  %867 = extractvalue { ptr, i32 } %865, 1
  store i32 %867, ptr %10, align 4
  br label %869

868:                                              ; preds = %859
  br label %869

869:                                              ; preds = %868, %864
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  br label %913

870:                                              ; preds = %822
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %9, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %879 unwind label %934

874:                                              ; preds = %831
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %909

875:                                              ; preds = %831
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %9, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %10, align 4
  br label %880

879:                                              ; preds = %870
  br label %880

880:                                              ; preds = %879, %875
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %913

881:                                              ; preds = %364
  %882 = invoke noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %41)
          to label %883 unwind label %889

883:                                              ; preds = %881
  %884 = zext i1 %882 to i8
  store i8 %884, ptr @global_verbose, align 1, !tbaa !50
  %885 = invoke noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %87)
          to label %886 unwind label %889

886:                                              ; preds = %883
  br i1 %885, label %887, label %893

887:                                              ; preds = %886
  invoke void @_Z9run_tunerIlEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %54, ptr noundef nonnull align 8 dereferenceable(289) %64, ptr noundef nonnull align 8 dereferenceable(289) %21, ptr noundef nonnull align 8 dereferenceable(281) %31, ptr noundef nonnull align 8 dereferenceable(225) %114)
          to label %888 unwind label %889

888:                                              ; preds = %887
  br label %893

889:                                              ; preds = %906, %903, %901, %898, %896, %893, %887, %883, %881
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %9, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %10, align 4
  br label %913

893:                                              ; preds = %888, %886
  %894 = invoke noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %78)
          to label %895 unwind label %889

895:                                              ; preds = %893
  br i1 %894, label %896, label %898

896:                                              ; preds = %895
  invoke void @_Z9run_tunerImEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %54, ptr noundef nonnull align 8 dereferenceable(289) %64, ptr noundef nonnull align 8 dereferenceable(289) %21, ptr noundef nonnull align 8 dereferenceable(281) %31, ptr noundef nonnull align 8 dereferenceable(225) %114)
          to label %897 unwind label %889

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897, %895
  %899 = invoke noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %105)
          to label %900 unwind label %889

900:                                              ; preds = %898
  br i1 %899, label %901, label %903

901:                                              ; preds = %900
  invoke void @_Z9run_tunerIiEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %54, ptr noundef nonnull align 8 dereferenceable(289) %64, ptr noundef nonnull align 8 dereferenceable(289) %21, ptr noundef nonnull align 8 dereferenceable(281) %31, ptr noundef nonnull align 8 dereferenceable(225) %114)
          to label %902 unwind label %889

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902, %900
  %904 = invoke noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %96)
          to label %905 unwind label %889

905:                                              ; preds = %903
  br i1 %904, label %906, label %908

906:                                              ; preds = %905
  invoke void @_Z9run_tunerIjEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %54, ptr noundef nonnull align 8 dereferenceable(289) %64, ptr noundef nonnull align 8 dereferenceable(289) %21, ptr noundef nonnull align 8 dereferenceable(281) %31, ptr noundef nonnull align 8 dereferenceable(225) %114)
          to label %907 unwind label %889

907:                                              ; preds = %906
  br label %908

908:                                              ; preds = %907, %905
  store i32 0, ptr %125, align 4
  br label %909

909:                                              ; preds = %908, %874, %863, %852
  call void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %119) #8
  call void @llvm.lifetime.end.p0(i64 336, ptr %119) #8
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225) %114) #8
  call void @llvm.lifetime.end.p0(i64 232, ptr %114) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %105) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %105) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %96) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %96) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %87) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %87) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %78) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %78) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %74) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %74) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %64) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr %64) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %54) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr %54) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %50) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %50) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %41) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %41) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(281) %31) #8
  call void @llvm.lifetime.end.p0(i64 288, ptr %31) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %21) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr %21) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %12) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr %12) #8
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216) %6) #8
  call void @llvm.lifetime.end.p0(i64 1216, ptr %6) #8
  %910 = load i32, ptr %125, align 4
  switch i32 %910, label %937 [
    i32 0, label %911
    i32 1, label %911
  ]

911:                                              ; preds = %909, %909
  %912 = load i32, ptr %3, align 4
  ret i32 %912

913:                                              ; preds = %889, %880, %869, %858, %840
  call void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %119) #8
  br label %914

914:                                              ; preds = %913, %813
  call void @llvm.lifetime.end.p0(i64 336, ptr %119) #8
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225) %114) #8
  br label %915

915:                                              ; preds = %914, %785
  call void @llvm.lifetime.end.p0(i64 232, ptr %114) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %105) #8
  br label %916

916:                                              ; preds = %915, %771
  call void @llvm.lifetime.end.p0(i64 272, ptr %105) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %96) #8
  br label %917

917:                                              ; preds = %916, %733
  call void @llvm.lifetime.end.p0(i64 272, ptr %96) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %87) #8
  br label %918

918:                                              ; preds = %917, %695
  call void @llvm.lifetime.end.p0(i64 272, ptr %87) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %78) #8
  br label %919

919:                                              ; preds = %918, %657
  call void @llvm.lifetime.end.p0(i64 272, ptr %78) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %74) #8
  br label %920

920:                                              ; preds = %919, %619
  call void @llvm.lifetime.end.p0(i64 104, ptr %74) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %64) #8
  br label %921

921:                                              ; preds = %920, %610
  call void @llvm.lifetime.end.p0(i64 296, ptr %64) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %54) #8
  br label %922

922:                                              ; preds = %921, %572
  call void @llvm.lifetime.end.p0(i64 296, ptr %54) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %50) #8
  br label %923

923:                                              ; preds = %922, %534
  call void @llvm.lifetime.end.p0(i64 104, ptr %50) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %41) #8
  br label %924

924:                                              ; preds = %923, %525
  call void @llvm.lifetime.end.p0(i64 272, ptr %41) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(281) %31) #8
  br label %925

925:                                              ; preds = %924, %487
  call void @llvm.lifetime.end.p0(i64 288, ptr %31) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %21) #8
  br label %926

926:                                              ; preds = %925, %449
  call void @llvm.lifetime.end.p0(i64 296, ptr %21) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %12) #8
  br label %927

927:                                              ; preds = %926, %411
  call void @llvm.lifetime.end.p0(i64 272, ptr %12) #8
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216) %6) #8
  br label %928

928:                                              ; preds = %927, %373
  call void @llvm.lifetime.end.p0(i64 1216, ptr %6) #8
  br label %929

929:                                              ; preds = %928
  %930 = load ptr, ptr %9, align 8
  %931 = load i32, ptr %10, align 4
  %932 = insertvalue { ptr, i32 } poison, ptr %930, 0
  %933 = insertvalue { ptr, i32 } %932, i32 %931, 1
  resume { ptr, i32 } %933

934:                                              ; preds = %870, %859, %848
  %935 = landingpad { ptr, i32 }
          catch ptr null
  %936 = extractvalue { ptr, i32 } %935, 0
  call void @__clang_call_terminate(ptr %936) #9
  unreachable

937:                                              ; preds = %909
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(1216), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40), i8 noundef signext) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112), ptr, i64) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagIdNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKdb(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagIfNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKfb(ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 4 dereferenceable(4), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4args5Group10Validators3XorERKS0_(ptr noundef nonnull align 8 dereferenceable(104)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEEC2ERNS_5GroupERKS6_SC_NS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(225), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args14CompletionFlagC2INS_14ArgumentParserEEERT_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(336), ptr noundef nonnull align 8 dereferenceable(1216), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(1216), i32 noundef, ptr noundef) #2 align 2

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #5

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1216)) #6

declare void @__cxa_end_catch()

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIlEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerImEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIiEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIjEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216)) unnamed_addr #4 align 2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 norecurse 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 = { 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 #5 = { nounwind memory(none) }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 544}
!12 = !{!"_ZTSN4args14ArgumentParserE", !13, i64 0, !18, i64 376, !18, i64 408, !18, i64 440, !18, i64 472, !17, i64 504, !17, i64 505, !17, i64 506, !17, i64 507, !10, i64 512, !17, i64 520, !36, i64 528}
!13 = !{!"_ZTSN4args7CommandE", !14, i64 0, !18, i64 104, !18, i64 136, !18, i64 168, !18, i64 200, !18, i64 232, !27, i64 264, !17, i64 296, !10, i64 304, !28, i64 312, !32, i64 336, !17, i64 360, !17, i64 361, !17, i64 362, !10, i64 368}
!14 = !{!"_ZTSN4args5GroupE", !15, i64 0, !21, i64 48, !25, i64 72}
!15 = !{!"_ZTSN4args4BaseE", !16, i64 8, !17, i64 12, !18, i64 16}
!16 = !{!"_ZTSN4args7OptionsE", !7, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !20, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIPN4args4BaseESaIS2_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIPN4args4BaseESaIS2_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!25 = !{!"_ZTSSt8functionIFbRKN4args5GroupEEE", !26, i64 0, !10, i64 24}
!26 = !{!"_ZTSSt14_Function_base", !7, i64 0, !10, i64 16}
!27 = !{!"_ZTSSt8functionIFvRN4args9SubparserEEE", !26, i64 0, !10, i64 24}
!28 = !{!"_ZTSSt6vectorISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!32 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!36 = !{!"_ZTSN4args10HelpParamsE", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !17, i64 32, !17, i64 33, !17, i64 34, !18, i64 40, !18, i64 72, !18, i64 104, !18, i64 136, !18, i64 168, !17, i64 200, !17, i64 201, !18, i64 208, !18, i64 240, !18, i64 272, !18, i64 304, !18, i64 336, !18, i64 368, !18, i64 400, !18, i64 432, !17, i64 464, !17, i64 465, !18, i64 472, !18, i64 504, !17, i64 536, !17, i64 537, !17, i64 538, !18, i64 544, !18, i64 576, !17, i64 608, !18, i64 616, !17, i64 648, !18, i64 656}
!37 = !{!12, !6, i64 548}
!38 = !{!12, !6, i64 532}
!39 = !{!12, !6, i64 540}
!40 = !{!41, !10, i64 0}
!41 = !{!"_ZTSSt16initializer_listIN4args10EitherFlagEE", !10, i64 0, !20, i64 8}
!42 = !{!41, !20, i64 8}
!43 = !{!44, !44, i64 0}
!44 = !{!"double", !7, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"float", !7, i64 0}
!47 = !{!20, !20, i64 0}
!48 = !{!49, !49, i64 0}
!49 = !{!"vtable pointer", !8, i64 0}
!50 = !{!17, !17, 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.args::ArgumentParser" = type { %"class.args::Command", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, ptr, i8, %"struct.args::HelpParams" }
%"class.args::Command" = type { %"class.args::Group", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::function.10", i8, ptr, %"class.std::vector.13", %"class.std::vector.18", i8, i8, i8, ptr }
%"class.args::Group" = type { %"class.args::Base", %"class.std::vector.5", %"class.std::function" }
%"class.args::Base" = type { ptr, i32, i8, %"class.std::__cxx11::basic_string" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::function.10" = type { %"class.std::_Function_base", ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>, std::allocator<std::tuple<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, unsigned int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.args::HelpParams" = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, %"class.std::__cxx11::basic_string", i8, %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }
%"class.args::HelpFlag" = type { %"class.args::Flag" }
%"class.args::Flag" = type { %"class.args::FlagBase" }
%"class.args::FlagBase" = type { %"class.args::NamedBase.base", %"class.args::Matcher" }
%"class.args::NamedBase.base" = type <{ %"class.args::Base", %"class.std::__cxx11::basic_string", i8, [7 x i8], %"class.std::__cxx11::basic_string", i8, [7 x i8], %"class.std::vector.18", i8 }>
%"class.args::Matcher" = type { %"class.std::unordered_set", %"class.std::unordered_set.28" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_set.28" = type { %"class.std::_Hashtable.29" }
%"class.std::_Hashtable.29" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.args::EitherFlag" = type { i8, i8, %"class.std::__cxx11::basic_string" }
%"class.args::ValueFlag" = type <{ %"class.args::ValueFlagBase", double, double, [8 x i8] }>
%"class.args::ValueFlagBase" = type { %"class.args::FlagBase" }
%"class.args::ValueFlag.48" = type <{ %"class.args::ValueFlagBase", float, float, [8 x i8] }>
%"class.args::ValueFlag.50" = type <{ %"class.args::ValueFlagBase", i64, i64, [8 x i8] }>
%"class.args::Positional" = type <{ %"class.args::PositionalBase.base", [6 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::PositionalBase.base" = type { %"class.args::NamedBase.base", i8 }
%"class.args::CompletionFlag" = type { %"class.args::ValueFlagBase", %"class.std::vector.18", i64, %"class.std::__cxx11::basic_string" }

@global_verbose = external dso_local local_unnamed_addr global i8, align 1
@.str.10 = external hidden unnamed_addr constant [250 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZTIN4args5ErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args10CompletionE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args4HelpE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.args::ArgumentParser", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.args::HelpFlag", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.args::Matcher", align 8
  %13 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %14 = alloca %"class.args::ValueFlag", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.args::Matcher", align 8
  %20 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %21 = alloca double, align 8
  %22 = alloca %"class.args::ValueFlag.48", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.args::Matcher", align 8
  %28 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %29 = alloca float, align 4
  %30 = alloca %"class.args::Flag", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.args::Matcher", align 8
  %36 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %37 = alloca %"class.args::Group", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::function", align 8
  %41 = alloca %"class.args::ValueFlag.50", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.args::Matcher", align 8
  %47 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %48 = alloca i64, align 8
  %49 = alloca %"class.args::ValueFlag.50", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.args::Matcher", align 8
  %55 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %56 = alloca i64, align 8
  %57 = alloca %"class.args::Group", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::function", align 8
  %61 = alloca %"class.args::Flag", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.args::Matcher", align 8
  %67 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %68 = alloca %"class.args::Flag", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca %"class.args::Matcher", align 8
  %74 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %75 = alloca %"class.args::Flag", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %"class.args::Matcher", align 8
  %81 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %82 = alloca %"class.args::Flag", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.args::Matcher", align 8
  %88 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %89 = alloca %"class.args::Positional", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.args::CompletionFlag", align 8
  %95 = alloca %"class.args::Matcher", align 8
  %96 = alloca [1 x %"struct.args::EitherFlag"], align 8
  call void @llvm.lifetime.start.p0(i64 1216, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %97 unwind label %184

97:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  invoke void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(1216) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %98 unwind label %186

98:                                               ; preds = %97
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  %99 = getelementptr inbounds i8, ptr %3, i64 544
  store i32 2, ptr %99, align 8, !tbaa !5
  %100 = getelementptr inbounds i8, ptr %3, i64 548
  store i32 25, ptr %100, align 4, !tbaa !35
  %101 = getelementptr inbounds i8, ptr %3, i64 532
  store i32 0, ptr %101, align 4, !tbaa !36
  %102 = getelementptr inbounds i8, ptr %3, i64 540
  store i32 0, ptr %102, align 4, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %103 unwind label %189

103:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %104 unwind label %191

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %13) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 noundef signext 104)
  %105 = getelementptr inbounds i8, ptr %13, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %105, ptr noundef nonnull @.str.11)
          to label %106 unwind label %.loopexit204.loopexit215

106:                                              ; preds = %104
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %12, ptr nonnull %13, i64 2)
          to label %107 unwind label %194

107:                                              ; preds = %106
  invoke void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(272) %7, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(112) %12, i32 noundef 0)
          to label %108 unwind label %196

108:                                              ; preds = %107
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #8
  %109 = getelementptr inbounds i8, ptr %13, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %109) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %110 unwind label %201

110:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %111 unwind label %203

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %20) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 noundef signext 111)
  %112 = getelementptr inbounds i8, ptr %20, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %112, ptr noundef nonnull @.str.15)
          to label %113 unwind label %.loopexit202.loopexit214

113:                                              ; preds = %111
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr nonnull %20, i64 2)
          to label %114 unwind label %206

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  store double 1.000000e-02, ptr %21, align 8, !tbaa !38
  invoke void @_ZN4args9ValueFlagIdNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKdb(ptr noundef nonnull align 8 dereferenceable(289) %14, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(8) %21, i1 noundef zeroext false)
          to label %115 unwind label %208

115:                                              ; preds = %114
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %19) #8
  %116 = getelementptr inbounds i8, ptr %20, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %116) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 288, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %117 unwind label %213

117:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %118 unwind label %215

118:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %28) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 noundef signext 114)
  %119 = getelementptr inbounds i8, ptr %28, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %119, ptr noundef nonnull @.str.16)
          to label %120 unwind label %.loopexit200.loopexit213

120:                                              ; preds = %118
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %27, ptr nonnull %28, i64 2)
          to label %121 unwind label %218

121:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  store float 0x3FD54FDF40000000, ptr %29, align 4, !tbaa !40
  invoke void @_ZN4args9ValueFlagIfNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKfb(ptr noundef nonnull align 8 dereferenceable(281) %22, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(112) %27, ptr noundef nonnull align 4 dereferenceable(4) %29, i1 noundef zeroext false)
          to label %122 unwind label %220

122:                                              ; preds = %121
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #8
  %123 = getelementptr inbounds i8, ptr %28, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %123) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %124 unwind label %225

124:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %125 unwind label %227

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %36) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %36, i8 noundef signext 118)
  %126 = getelementptr inbounds i8, ptr %36, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %126, ptr noundef nonnull @.str.18)
          to label %127 unwind label %.loopexit198.loopexit212

127:                                              ; preds = %125
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %35, ptr nonnull %36, i64 2)
          to label %128 unwind label %230

128:                                              ; preds = %127
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %30, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(112) %35, i1 noundef zeroext false)
          to label %129 unwind label %232

129:                                              ; preds = %128
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %35) #8
  %130 = getelementptr inbounds i8, ptr %36, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %130) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %131 unwind label %237

131:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @_ZN4args5Group10Validators3XorERKS0_) #8
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 2)
          to label %132 unwind label %239

132:                                              ; preds = %131
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %133 unwind label %242

133:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %134 unwind label %244

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %47) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %47, i8 noundef signext 116)
  %135 = getelementptr inbounds i8, ptr %47, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %135, ptr noundef nonnull @.str.23)
          to label %136 unwind label %.loopexit196.loopexit211

136:                                              ; preds = %134
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %46, ptr nonnull %47, i64 2)
          to label %137 unwind label %247

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  store i64 0, ptr %48, align 8, !tbaa !42
  invoke void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289) %41, ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(112) %46, ptr noundef nonnull align 8 dereferenceable(8) %48, i1 noundef zeroext false)
          to label %138 unwind label %249

138:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %46) #8
  %139 = getelementptr inbounds i8, ptr %47, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %139) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %140 unwind label %254

140:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %141 unwind label %256

141:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %54) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %55) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %55, i8 noundef signext 115)
  %142 = getelementptr inbounds i8, ptr %55, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %142, ptr noundef nonnull @.str.26)
          to label %143 unwind label %.loopexit194.loopexit210

143:                                              ; preds = %141
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr nonnull %55, i64 2)
          to label %144 unwind label %259

144:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  store i64 0, ptr %56, align 8, !tbaa !42
  invoke void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289) %49, ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(8) %56, i1 noundef zeroext false)
          to label %145 unwind label %261

145:                                              ; preds = %144
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #8
  %146 = getelementptr inbounds i8, ptr %55, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %146) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %147 unwind label %266

147:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @_ZN4args5Group10Validators3XorERKS0_) #8
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60, i32 noundef 2)
          to label %148 unwind label %268

148:                                              ; preds = %147
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %149 unwind label %271

149:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %150 unwind label %273

150:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %67) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %67, i8 noundef signext 85)
  %151 = getelementptr inbounds i8, ptr %67, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %151, ptr noundef nonnull @.str.30)
          to label %152 unwind label %.loopexit192.loopexit209

152:                                              ; preds = %150
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %66, ptr nonnull %67, i64 2)
          to label %153 unwind label %276

153:                                              ; preds = %152
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %61, ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(112) %66, i1 noundef zeroext false)
          to label %154 unwind label %278

154:                                              ; preds = %153
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %66) #8
  %155 = getelementptr inbounds i8, ptr %67, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %155) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %67) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %156 unwind label %283

156:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %157 unwind label %285

157:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %73) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %74) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %74, i8 noundef signext 73)
  %158 = getelementptr inbounds i8, ptr %74, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %158, ptr noundef nonnull @.str.32)
          to label %159 unwind label %.loopexit190.loopexit208

159:                                              ; preds = %157
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %73, ptr nonnull %74, i64 2)
          to label %160 unwind label %288

160:                                              ; preds = %159
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %68, ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(112) %73, i1 noundef zeroext false)
          to label %161 unwind label %290

161:                                              ; preds = %160
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %73) #8
  %162 = getelementptr inbounds i8, ptr %74, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %162) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %73) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %163 unwind label %295

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %164 unwind label %297

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %80) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %81) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %81, i8 noundef signext 117)
  %165 = getelementptr inbounds i8, ptr %81, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %165, ptr noundef nonnull @.str.34)
          to label %166 unwind label %.loopexit188.loopexit207

166:                                              ; preds = %164
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %80, ptr nonnull %81, i64 2)
          to label %167 unwind label %300

167:                                              ; preds = %166
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %75, ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(112) %80, i1 noundef zeroext false)
          to label %168 unwind label %302

168:                                              ; preds = %167
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #8
  %169 = getelementptr inbounds i8, ptr %81, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %169) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %82) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %170 unwind label %307

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %171 unwind label %309

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %88) #8
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %88, i8 noundef signext 105)
  %172 = getelementptr inbounds i8, ptr %88, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %172, ptr noundef nonnull @.str.36)
          to label %173 unwind label %.loopexit186.loopexit206

173:                                              ; preds = %171
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %87, ptr nonnull %88, i64 2)
          to label %174 unwind label %312

174:                                              ; preds = %173
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272) %82, ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(112) %87, i1 noundef zeroext false)
          to label %175 unwind label %314

175:                                              ; preds = %174
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %87) #8
  %176 = getelementptr inbounds i8, ptr %88, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %176) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %89) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %177 unwind label %319

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %178 unwind label %321

178:                                              ; preds = %177
  invoke void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEEC2ERNS_5GroupERKS6_SC_NS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(225) %89, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %92, i32 noundef 2)
          to label %179 unwind label %323

179:                                              ; preds = %178
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 336, ptr nonnull %94) #8
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %95) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %96) #8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %96, ptr noundef nonnull @.str.39)
          to label %180 unwind label %327

180:                                              ; preds = %179
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %95, ptr nonnull %96, i64 1)
          to label %181 unwind label %329

181:                                              ; preds = %180
  invoke void @_ZN4args14CompletionFlagC2INS_14ArgumentParserEEERT_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(336) %94, ptr noundef nonnull align 8 dereferenceable(1216) %3, ptr noundef nonnull align 8 dereferenceable(112) %95)
          to label %182 unwind label %331

182:                                              ; preds = %181
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %95) #8
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %96) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %95) #8
  %183 = invoke noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(1216) %3, i32 noundef %0, ptr noundef %1)
          to label %376 unwind label %333

184:                                              ; preds = %2
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %188

186:                                              ; preds = %97
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %188

188:                                              ; preds = %186, %184
  %.pn = phi { ptr, i32 } [ %187, %186 ], [ %185, %184 ]
  %.040 = extractvalue { ptr, i32 } %.pn, 0
  %.041 = extractvalue { ptr, i32 } %.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  br label %410

189:                                              ; preds = %98
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %200

191:                                              ; preds = %103
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %199

.loopexit204.loopexit215:                         ; preds = %104
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit204

194:                                              ; preds = %106
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit204.loopexit

196:                                              ; preds = %107
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #8
  br label %.loopexit204.loopexit

.loopexit204.loopexit:                            ; preds = %196, %194
  %.pn120 = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  %198 = getelementptr inbounds i8, ptr %13, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %198) #8
  br label %.loopexit204

.loopexit204:                                     ; preds = %.loopexit204.loopexit215, %.loopexit204.loopexit
  %.pn120.pn = phi { ptr, i32 } [ %.pn120, %.loopexit204.loopexit ], [ %193, %.loopexit204.loopexit215 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %199

199:                                              ; preds = %.loopexit204, %191
  %.pn120.pn.pn = phi { ptr, i32 } [ %.pn120.pn, %.loopexit204 ], [ %192, %191 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %200

200:                                              ; preds = %199, %189
  %.pn120.pn.pn.pn = phi { ptr, i32 } [ %.pn120.pn.pn, %199 ], [ %190, %189 ]
  %.4 = extractvalue { ptr, i32 } %.pn120.pn.pn.pn, 0
  %.445 = extractvalue { ptr, i32 } %.pn120.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %409

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

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

.loopexit202.loopexit214:                         ; preds = %111
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit202

206:                                              ; preds = %113
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit202.loopexit

208:                                              ; preds = %114
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %19) #8
  br label %.loopexit202.loopexit

.loopexit202.loopexit:                            ; preds = %208, %206
  %.pn125 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  %210 = getelementptr inbounds i8, ptr %20, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %210) #8
  br label %.loopexit202

.loopexit202:                                     ; preds = %.loopexit202.loopexit214, %.loopexit202.loopexit
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %.loopexit202.loopexit ], [ %205, %.loopexit202.loopexit214 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %211

211:                                              ; preds = %.loopexit202, %203
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %.loopexit202 ], [ %204, %203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %212

212:                                              ; preds = %211, %201
  %.pn125.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn, %211 ], [ %202, %201 ]
  %.8 = extractvalue { ptr, i32 } %.pn125.pn.pn.pn, 0
  %.849 = extractvalue { ptr, i32 } %.pn125.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br label %408

213:                                              ; preds = %115
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %224

215:                                              ; preds = %117
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %223

.loopexit200.loopexit213:                         ; preds = %118
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit200

218:                                              ; preds = %120
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit200.loopexit

220:                                              ; preds = %121
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #8
  br label %.loopexit200.loopexit

.loopexit200.loopexit:                            ; preds = %220, %218
  %.pn130 = phi { ptr, i32 } [ %221, %220 ], [ %219, %218 ]
  %222 = getelementptr inbounds i8, ptr %28, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %222) #8
  br label %.loopexit200

.loopexit200:                                     ; preds = %.loopexit200.loopexit213, %.loopexit200.loopexit
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %.loopexit200.loopexit ], [ %217, %.loopexit200.loopexit213 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %223

223:                                              ; preds = %.loopexit200, %215
  %.pn130.pn.pn = phi { ptr, i32 } [ %.pn130.pn, %.loopexit200 ], [ %216, %215 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %224

224:                                              ; preds = %223, %213
  %.pn130.pn.pn.pn = phi { ptr, i32 } [ %.pn130.pn.pn, %223 ], [ %214, %213 ]
  %.12 = extractvalue { ptr, i32 } %.pn130.pn.pn.pn, 0
  %.1253 = extractvalue { ptr, i32 } %.pn130.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  br label %407

225:                                              ; preds = %122
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %236

227:                                              ; preds = %124
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %235

.loopexit198.loopexit212:                         ; preds = %125
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit198

230:                                              ; preds = %127
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit198.loopexit

232:                                              ; preds = %128
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %35) #8
  br label %.loopexit198.loopexit

.loopexit198.loopexit:                            ; preds = %232, %230
  %.pn135 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ]
  %234 = getelementptr inbounds i8, ptr %36, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %234) #8
  br label %.loopexit198

.loopexit198:                                     ; preds = %.loopexit198.loopexit212, %.loopexit198.loopexit
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %.loopexit198.loopexit ], [ %229, %.loopexit198.loopexit212 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %235

235:                                              ; preds = %.loopexit198, %227
  %.pn135.pn.pn = phi { ptr, i32 } [ %.pn135.pn, %.loopexit198 ], [ %228, %227 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %236

236:                                              ; preds = %235, %225
  %.pn135.pn.pn.pn = phi { ptr, i32 } [ %.pn135.pn.pn, %235 ], [ %226, %225 ]
  %.16 = extractvalue { ptr, i32 } %.pn135.pn.pn.pn, 0
  %.1657 = extractvalue { ptr, i32 } %.pn135.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  br label %406

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

239:                                              ; preds = %131
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %241

241:                                              ; preds = %239, %237
  %.pn140 = phi { ptr, i32 } [ %240, %239 ], [ %238, %237 ]
  %.17 = extractvalue { ptr, i32 } %.pn140, 0
  %.1758 = extractvalue { ptr, i32 } %.pn140, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %405

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

244:                                              ; preds = %133
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %252

.loopexit196.loopexit211:                         ; preds = %134
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit196

247:                                              ; preds = %136
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit196.loopexit

249:                                              ; preds = %137
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %46) #8
  br label %.loopexit196.loopexit

.loopexit196.loopexit:                            ; preds = %249, %247
  %.pn142 = phi { ptr, i32 } [ %250, %249 ], [ %248, %247 ]
  %251 = getelementptr inbounds i8, ptr %47, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %251) #8
  br label %.loopexit196

.loopexit196:                                     ; preds = %.loopexit196.loopexit211, %.loopexit196.loopexit
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %.loopexit196.loopexit ], [ %246, %.loopexit196.loopexit211 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %252

252:                                              ; preds = %.loopexit196, %244
  %.pn142.pn.pn = phi { ptr, i32 } [ %.pn142.pn, %.loopexit196 ], [ %245, %244 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %253

253:                                              ; preds = %252, %242
  %.pn142.pn.pn.pn = phi { ptr, i32 } [ %.pn142.pn.pn, %252 ], [ %243, %242 ]
  %.21 = extractvalue { ptr, i32 } %.pn142.pn.pn.pn, 0
  %.2162 = extractvalue { ptr, i32 } %.pn142.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %404

254:                                              ; preds = %138
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %265

256:                                              ; preds = %140
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %264

.loopexit194.loopexit210:                         ; preds = %141
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit194

259:                                              ; preds = %143
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit194.loopexit

261:                                              ; preds = %144
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #8
  br label %.loopexit194.loopexit

.loopexit194.loopexit:                            ; preds = %261, %259
  %.pn147 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  %263 = getelementptr inbounds i8, ptr %55, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %263) #8
  br label %.loopexit194

.loopexit194:                                     ; preds = %.loopexit194.loopexit210, %.loopexit194.loopexit
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %.loopexit194.loopexit ], [ %258, %.loopexit194.loopexit210 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %264

264:                                              ; preds = %.loopexit194, %256
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %.loopexit194 ], [ %257, %256 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %265

265:                                              ; preds = %264, %254
  %.pn147.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn, %264 ], [ %255, %254 ]
  %.25 = extractvalue { ptr, i32 } %.pn147.pn.pn.pn, 0
  %.2566 = extractvalue { ptr, i32 } %.pn147.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  br label %403

266:                                              ; preds = %145
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %270

268:                                              ; preds = %147
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %270

270:                                              ; preds = %268, %266
  %.pn152 = phi { ptr, i32 } [ %269, %268 ], [ %267, %266 ]
  %.26 = extractvalue { ptr, i32 } %.pn152, 0
  %.2667 = extractvalue { ptr, i32 } %.pn152, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  br label %402

271:                                              ; preds = %148
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %282

273:                                              ; preds = %149
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %281

.loopexit192.loopexit209:                         ; preds = %150
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit192

276:                                              ; preds = %152
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit192.loopexit

278:                                              ; preds = %153
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %66) #8
  br label %.loopexit192.loopexit

.loopexit192.loopexit:                            ; preds = %278, %276
  %.pn154 = phi { ptr, i32 } [ %279, %278 ], [ %277, %276 ]
  %280 = getelementptr inbounds i8, ptr %67, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %280) #8
  br label %.loopexit192

.loopexit192:                                     ; preds = %.loopexit192.loopexit209, %.loopexit192.loopexit
  %.pn154.pn = phi { ptr, i32 } [ %.pn154, %.loopexit192.loopexit ], [ %275, %.loopexit192.loopexit209 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %67) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %281

281:                                              ; preds = %.loopexit192, %273
  %.pn154.pn.pn = phi { ptr, i32 } [ %.pn154.pn, %.loopexit192 ], [ %274, %273 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %282

282:                                              ; preds = %281, %271
  %.pn154.pn.pn.pn = phi { ptr, i32 } [ %.pn154.pn.pn, %281 ], [ %272, %271 ]
  %.30 = extractvalue { ptr, i32 } %.pn154.pn.pn.pn, 0
  %.3071 = extractvalue { ptr, i32 } %.pn154.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %401

283:                                              ; preds = %154
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %294

285:                                              ; preds = %156
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %293

.loopexit190.loopexit208:                         ; preds = %157
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit190

288:                                              ; preds = %159
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit190.loopexit

290:                                              ; preds = %160
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %73) #8
  br label %.loopexit190.loopexit

.loopexit190.loopexit:                            ; preds = %290, %288
  %.pn159 = phi { ptr, i32 } [ %291, %290 ], [ %289, %288 ]
  %292 = getelementptr inbounds i8, ptr %74, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %292) #8
  br label %.loopexit190

.loopexit190:                                     ; preds = %.loopexit190.loopexit208, %.loopexit190.loopexit
  %.pn159.pn = phi { ptr, i32 } [ %.pn159, %.loopexit190.loopexit ], [ %287, %.loopexit190.loopexit208 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %73) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %293

293:                                              ; preds = %.loopexit190, %285
  %.pn159.pn.pn = phi { ptr, i32 } [ %.pn159.pn, %.loopexit190 ], [ %286, %285 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %294

294:                                              ; preds = %293, %283
  %.pn159.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn, %293 ], [ %284, %283 ]
  %.34 = extractvalue { ptr, i32 } %.pn159.pn.pn.pn, 0
  %.3475 = extractvalue { ptr, i32 } %.pn159.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  br label %400

295:                                              ; preds = %161
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %306

297:                                              ; preds = %163
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %305

.loopexit188.loopexit207:                         ; preds = %164
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit188

300:                                              ; preds = %166
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit188.loopexit

302:                                              ; preds = %167
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #8
  br label %.loopexit188.loopexit

.loopexit188.loopexit:                            ; preds = %302, %300
  %.pn164 = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  %304 = getelementptr inbounds i8, ptr %81, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %304) #8
  br label %.loopexit188

.loopexit188:                                     ; preds = %.loopexit188.loopexit207, %.loopexit188.loopexit
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %.loopexit188.loopexit ], [ %299, %.loopexit188.loopexit207 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %305

305:                                              ; preds = %.loopexit188, %297
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %.loopexit188 ], [ %298, %297 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %306

306:                                              ; preds = %305, %295
  %.pn164.pn.pn.pn = phi { ptr, i32 } [ %.pn164.pn.pn, %305 ], [ %296, %295 ]
  %.38 = extractvalue { ptr, i32 } %.pn164.pn.pn.pn, 0
  %.3879 = extractvalue { ptr, i32 } %.pn164.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  br label %399

307:                                              ; preds = %168
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %318

309:                                              ; preds = %170
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %317

.loopexit186.loopexit206:                         ; preds = %171
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit186

312:                                              ; preds = %173
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit186.loopexit

314:                                              ; preds = %174
  %315 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %87) #8
  br label %.loopexit186.loopexit

.loopexit186.loopexit:                            ; preds = %314, %312
  %.pn169 = phi { ptr, i32 } [ %315, %314 ], [ %313, %312 ]
  %316 = getelementptr inbounds i8, ptr %88, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %316) #8
  br label %.loopexit186

.loopexit186:                                     ; preds = %.loopexit186.loopexit206, %.loopexit186.loopexit
  %.pn169.pn = phi { ptr, i32 } [ %.pn169, %.loopexit186.loopexit ], [ %311, %.loopexit186.loopexit206 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %317

317:                                              ; preds = %.loopexit186, %309
  %.pn169.pn.pn = phi { ptr, i32 } [ %.pn169.pn, %.loopexit186 ], [ %310, %309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %318

318:                                              ; preds = %317, %307
  %.pn169.pn.pn.pn = phi { ptr, i32 } [ %.pn169.pn.pn, %317 ], [ %308, %307 ]
  %.42 = extractvalue { ptr, i32 } %.pn169.pn.pn.pn, 0
  %.4283 = extractvalue { ptr, i32 } %.pn169.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #8
  br label %398

319:                                              ; preds = %175
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %326

321:                                              ; preds = %177
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %325

323:                                              ; preds = %178
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %325

325:                                              ; preds = %323, %321
  %.pn174 = phi { ptr, i32 } [ %324, %323 ], [ %322, %321 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %326

326:                                              ; preds = %325, %319
  %.pn174.pn = phi { ptr, i32 } [ %.pn174, %325 ], [ %320, %319 ]
  %.44 = extractvalue { ptr, i32 } %.pn174.pn, 0
  %.4485 = extractvalue { ptr, i32 } %.pn174.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #8
  br label %397

327:                                              ; preds = %179
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

329:                                              ; preds = %180
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

331:                                              ; preds = %181
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %95) #8
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %331, %329
  %.pn177 = phi { ptr, i32 } [ %332, %331 ], [ %330, %329 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %96) #8
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %327
  %.pn177.pn = phi { ptr, i32 } [ %328, %327 ], [ %.pn177, %.loopexit.loopexit ]
  %.46 = extractvalue { ptr, i32 } %.pn177.pn, 0
  %.4687 = extractvalue { ptr, i32 } %.pn177.pn, 1
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %95) #8
  br label %396

333:                                              ; preds = %182
  %334 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4args10CompletionE
          catch ptr @_ZTIN4args4HelpE
          catch ptr @_ZTIN4args5ErrorE
  %335 = extractvalue { ptr, i32 } %334, 0
  %336 = extractvalue { ptr, i32 } %334, 1
  %337 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args10CompletionE) #8
  %338 = icmp eq i32 %336, %337
  br i1 %338, label %339, label %347

339:                                              ; preds = %333
  %340 = call ptr @__cxa_begin_catch(ptr %335) #8
  %341 = load ptr, ptr %340, align 8, !tbaa !43
  %342 = getelementptr inbounds i8, ptr %341, i64 16
  %343 = load ptr, ptr %342, align 8
  %344 = call noundef ptr %343(ptr noundef nonnull align 8 dereferenceable(16) %340) #8
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %344)
          to label %346 unwind label %371

346:                                              ; preds = %339
  invoke void @__cxa_end_catch()
          to label %394 unwind label %373

347:                                              ; preds = %333
  %348 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args4HelpE) #8
  %349 = icmp eq i32 %336, %348
  br i1 %349, label %350, label %354

350:                                              ; preds = %347
  %351 = call ptr @__cxa_begin_catch(ptr %335) #8
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(1216) %3)
          to label %353 unwind label %366

353:                                              ; preds = %350
  invoke void @__cxa_end_catch()
          to label %394 unwind label %368

354:                                              ; preds = %347
  %355 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args5ErrorE) #8
  %356 = icmp eq i32 %336, %355
  br i1 %356, label %357, label %395

357:                                              ; preds = %354
  %358 = call ptr @__cxa_begin_catch(ptr %335) #8
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(1216) %3)
          to label %360 unwind label %361

360:                                              ; preds = %357
  invoke void @__cxa_end_catch()
          to label %394 unwind label %363

361:                                              ; preds = %357
  %362 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %365 unwind label %413

363:                                              ; preds = %360
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %365

365:                                              ; preds = %361, %363
  %.pn180 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  %.47 = extractvalue { ptr, i32 } %.pn180, 0
  %.4788 = extractvalue { ptr, i32 } %.pn180, 1
  br label %395

366:                                              ; preds = %350
  %367 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %370 unwind label %413

368:                                              ; preds = %353
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %370

370:                                              ; preds = %366, %368
  %.pn182 = phi { ptr, i32 } [ %369, %368 ], [ %367, %366 ]
  %.48 = extractvalue { ptr, i32 } %.pn182, 0
  %.4889 = extractvalue { ptr, i32 } %.pn182, 1
  br label %395

371:                                              ; preds = %339
  %372 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %375 unwind label %413

373:                                              ; preds = %346
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %375

375:                                              ; preds = %371, %373
  %.pn184 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  %.49 = extractvalue { ptr, i32 } %.pn184, 0
  %.4990 = extractvalue { ptr, i32 } %.pn184, 1
  br label %395

376:                                              ; preds = %182
  %377 = call noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %30)
  %378 = zext i1 %377 to i8
  store i8 %378, ptr @global_verbose, align 1, !tbaa !45
  %379 = call noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %68)
  br i1 %379, label %380, label %385

380:                                              ; preds = %376
  invoke void @_Z9run_tunerIlEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %41, ptr noundef nonnull align 8 dereferenceable(289) %49, ptr noundef nonnull align 8 dereferenceable(289) %14, ptr noundef nonnull align 8 dereferenceable(281) %22, ptr noundef nonnull align 8 dereferenceable(225) %89)
          to label %385 unwind label %381

381:                                              ; preds = %393, %390, %387, %380
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  %384 = extractvalue { ptr, i32 } %382, 1
  br label %395

385:                                              ; preds = %380, %376
  %386 = call noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %61)
  br i1 %386, label %387, label %388

387:                                              ; preds = %385
  invoke void @_Z9run_tunerImEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %41, ptr noundef nonnull align 8 dereferenceable(289) %49, ptr noundef nonnull align 8 dereferenceable(289) %14, ptr noundef nonnull align 8 dereferenceable(281) %22, ptr noundef nonnull align 8 dereferenceable(225) %89)
          to label %388 unwind label %381

388:                                              ; preds = %387, %385
  %389 = call noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %82)
  br i1 %389, label %390, label %391

390:                                              ; preds = %388
  invoke void @_Z9run_tunerIiEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %41, ptr noundef nonnull align 8 dereferenceable(289) %49, ptr noundef nonnull align 8 dereferenceable(289) %14, ptr noundef nonnull align 8 dereferenceable(281) %22, ptr noundef nonnull align 8 dereferenceable(225) %89)
          to label %391 unwind label %381

391:                                              ; preds = %390, %388
  %392 = call noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272) %75)
  br i1 %392, label %393, label %394

393:                                              ; preds = %391
  invoke void @_Z9run_tunerIjEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289) %41, ptr noundef nonnull align 8 dereferenceable(289) %49, ptr noundef nonnull align 8 dereferenceable(289) %14, ptr noundef nonnull align 8 dereferenceable(281) %22, ptr noundef nonnull align 8 dereferenceable(225) %89)
          to label %394 unwind label %381

394:                                              ; preds = %391, %393, %346, %353, %360
  %.0 = phi i32 [ 1, %360 ], [ 0, %353 ], [ 0, %346 ], [ 0, %393 ], [ 0, %391 ]
  call void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %94) #8
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %94) #8
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225) %89) #8
  call void @llvm.lifetime.end.p0(i64 232, ptr nonnull %89) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %82) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %82) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %75) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %75) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %68) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %68) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %61) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %61) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %57) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %57) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %49) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %49) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %41) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %41) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %37) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %37) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %30) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %30) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(281) %22) #8
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %22) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %14) #8
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %14) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %7) #8
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %7) #8
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216) %3) #8
  call void @llvm.lifetime.end.p0(i64 1216, ptr nonnull %3) #8
  ret i32 %.0

395:                                              ; preds = %381, %375, %370, %365, %354
  %.5091 = phi i32 [ %384, %381 ], [ %.4990, %375 ], [ %.4889, %370 ], [ %.4788, %365 ], [ %336, %354 ]
  %.50 = phi ptr [ %383, %381 ], [ %.49, %375 ], [ %.48, %370 ], [ %.47, %365 ], [ %335, %354 ]
  call void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %94) #8
  br label %396

396:                                              ; preds = %395, %.loopexit
  %.5192 = phi i32 [ %.5091, %395 ], [ %.4687, %.loopexit ]
  %.51 = phi ptr [ %.50, %395 ], [ %.46, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %94) #8
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225) %89) #8
  br label %397

397:                                              ; preds = %396, %326
  %.5293 = phi i32 [ %.5192, %396 ], [ %.4485, %326 ]
  %.52 = phi ptr [ %.51, %396 ], [ %.44, %326 ]
  call void @llvm.lifetime.end.p0(i64 232, ptr nonnull %89) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %82) #8
  br label %398

398:                                              ; preds = %397, %318
  %.5394 = phi i32 [ %.5293, %397 ], [ %.4283, %318 ]
  %.53 = phi ptr [ %.52, %397 ], [ %.42, %318 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %82) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %75) #8
  br label %399

399:                                              ; preds = %398, %306
  %.5495 = phi i32 [ %.5394, %398 ], [ %.3879, %306 ]
  %.54 = phi ptr [ %.53, %398 ], [ %.38, %306 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %75) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %68) #8
  br label %400

400:                                              ; preds = %399, %294
  %.5596 = phi i32 [ %.5495, %399 ], [ %.3475, %294 ]
  %.55 = phi ptr [ %.54, %399 ], [ %.34, %294 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %68) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %61) #8
  br label %401

401:                                              ; preds = %400, %282
  %.5697 = phi i32 [ %.5596, %400 ], [ %.3071, %282 ]
  %.56 = phi ptr [ %.55, %400 ], [ %.30, %282 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %61) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %57) #8
  br label %402

402:                                              ; preds = %401, %270
  %.5798 = phi i32 [ %.5697, %401 ], [ %.2667, %270 ]
  %.57 = phi ptr [ %.56, %401 ], [ %.26, %270 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %57) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %49) #8
  br label %403

403:                                              ; preds = %402, %265
  %.5899 = phi i32 [ %.5798, %402 ], [ %.2566, %265 ]
  %.58 = phi ptr [ %.57, %402 ], [ %.25, %265 ]
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %49) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %41) #8
  br label %404

404:                                              ; preds = %403, %253
  %.59100 = phi i32 [ %.5899, %403 ], [ %.2162, %253 ]
  %.59 = phi ptr [ %.58, %403 ], [ %.21, %253 ]
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %41) #8
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %37) #8
  br label %405

405:                                              ; preds = %404, %241
  %.60101 = phi i32 [ %.59100, %404 ], [ %.1758, %241 ]
  %.60 = phi ptr [ %.59, %404 ], [ %.17, %241 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %37) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %30) #8
  br label %406

406:                                              ; preds = %405, %236
  %.61102 = phi i32 [ %.60101, %405 ], [ %.1657, %236 ]
  %.61 = phi ptr [ %.60, %405 ], [ %.16, %236 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %30) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(281) %22) #8
  br label %407

407:                                              ; preds = %406, %224
  %.62103 = phi i32 [ %.61102, %406 ], [ %.1253, %224 ]
  %.62 = phi ptr [ %.61, %406 ], [ %.12, %224 ]
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %22) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(289) %14) #8
  br label %408

408:                                              ; preds = %407, %212
  %.63104 = phi i32 [ %.62103, %407 ], [ %.849, %212 ]
  %.63 = phi ptr [ %.62, %407 ], [ %.8, %212 ]
  call void @llvm.lifetime.end.p0(i64 296, ptr nonnull %14) #8
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272) %7) #8
  br label %409

409:                                              ; preds = %408, %200
  %.64105 = phi i32 [ %.63104, %408 ], [ %.445, %200 ]
  %.64 = phi ptr [ %.63, %408 ], [ %.4, %200 ]
  call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %7) #8
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216) %3) #8
  br label %410

410:                                              ; preds = %409, %188
  %.65106 = phi i32 [ %.64105, %409 ], [ %.041, %188 ]
  %.65 = phi ptr [ %.64, %409 ], [ %.040, %188 ]
  call void @llvm.lifetime.end.p0(i64 1216, ptr nonnull %3) #8
  %411 = insertvalue { ptr, i32 } poison, ptr %.65, 0
  %412 = insertvalue { ptr, i32 } %411, i32 %.65106, 1
  resume { ptr, i32 } %412

413:                                              ; preds = %371, %366, %361
  %414 = landingpad { ptr, i32 }
          catch ptr null
  %415 = extractvalue { ptr, i32 } %414, 0
  call void @__clang_call_terminate(ptr %415) #9
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(1216), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40), i8 noundef signext) unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112), ptr, i64) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagIdNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKdb(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagIfNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKfb(ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 4 dereferenceable(4), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(272), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4args5Group10Validators3XorERKS0_(ptr noundef nonnull align 8 dereferenceable(104)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EENS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagImNS_11ValueReaderEEC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_ONS_7MatcherERKmb(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEEC2ERNS_5GroupERKS6_SC_NS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(225), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args14CompletionFlagC2INS_14ArgumentParserEEERT_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(336), ptr noundef nonnull align 8 dereferenceable(1216), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(1216), i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #5

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1216)) local_unnamed_addr #6

declare void @__cxa_end_catch() local_unnamed_addr

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

; Function Attrs: 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 #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4args4Flag3GetEv(ptr noundef nonnull align 8 dereferenceable(272)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIlEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerImEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIiEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9run_tunerIjEvRN4args9ValueFlagImNS0_11ValueReaderEEES4_RNS1_IdS2_EERNS1_IfS2_EERNS0_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_EE(ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(289), ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(225)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args14CompletionFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(336)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(225)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(272)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(1216)) unnamed_addr #4 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 norecurse 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 = { 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 #5 = { nofree nosync nounwind memory(none) }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !34, i64 544}
!6 = !{!"_ZTSN4args14ArgumentParserE", !7, i64 0, !14, i64 376, !14, i64 408, !14, i64 440, !14, i64 472, !13, i64 504, !13, i64 505, !13, i64 506, !13, i64 507, !16, i64 512, !13, i64 520, !33, i64 528}
!7 = !{!"_ZTSN4args7CommandE", !8, i64 0, !14, i64 104, !14, i64 136, !14, i64 168, !14, i64 200, !14, i64 232, !24, i64 264, !13, i64 296, !16, i64 304, !25, i64 312, !29, i64 336, !13, i64 360, !13, i64 361, !13, i64 362, !16, i64 368}
!8 = !{!"_ZTSN4args5GroupE", !9, i64 0, !18, i64 48, !22, i64 72}
!9 = !{!"_ZTSN4args4BaseE", !10, i64 8, !13, i64 12, !14, i64 16}
!10 = !{!"_ZTSN4args7OptionsE", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"bool", !11, i64 0}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !15, i64 0, !17, i64 8, !11, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !16, i64 0}
!16 = !{!"any pointer", !11, i64 0}
!17 = !{!"long", !11, i64 0}
!18 = !{!"_ZTSSt6vectorIPN4args4BaseESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIPN4args4BaseESaIS2_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!22 = !{!"_ZTSSt8functionIFbRKN4args5GroupEEE", !23, i64 0, !16, i64 24}
!23 = !{!"_ZTSSt14_Function_base", !11, i64 0, !16, i64 16}
!24 = !{!"_ZTSSt8functionIFvRN4args9SubparserEEE", !23, i64 0, !16, i64 24}
!25 = !{!"_ZTSSt6vectorISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_jEESaIS7_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!29 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!33 = !{!"_ZTSN4args10HelpParamsE", !34, i64 0, !34, i64 4, !34, i64 8, !34, i64 12, !34, i64 16, !34, i64 20, !34, i64 24, !34, i64 28, !13, i64 32, !13, i64 33, !13, i64 34, !14, i64 40, !14, i64 72, !14, i64 104, !14, i64 136, !14, i64 168, !13, i64 200, !13, i64 201, !14, i64 208, !14, i64 240, !14, i64 272, !14, i64 304, !14, i64 336, !14, i64 368, !14, i64 400, !14, i64 432, !13, i64 464, !13, i64 465, !14, i64 472, !14, i64 504, !13, i64 536, !13, i64 537, !13, i64 538, !14, i64 544, !14, i64 576, !13, i64 608, !14, i64 616, !13, i64 648, !14, i64 656}
!34 = !{!"int", !11, i64 0}
!35 = !{!6, !34, i64 548}
!36 = !{!6, !34, i64 532}
!37 = !{!6, !34, i64 540}
!38 = !{!39, !39, i64 0}
!39 = !{!"double", !11, i64 0}
!40 = !{!41, !41, i64 0}
!41 = !{!"float", !11, i64 0}
!42 = !{!17, !17, i64 0}
!43 = !{!44, !44, i64 0}
!44 = !{!"vtable pointer", !12, i64 0}
!45 = !{!13, !13, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopSimplifyPass,SROAPass,SimplifyCFGPass