; LLVM IR from microsoft/X-Mem :: src/Configurator.ll (ZN4xmem12Configurator18configureFromInputEiPPc)

; 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 }
%"struct.xmem::Descriptor" = type { i32, i32, ptr, ptr, ptr, ptr }
%"struct.xmem::Stats" = type { i32, i32 }
%"class.xmem::Parser" = type <{ i32, i32, ptr, i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.0" = type { i8 }
%"struct.std::_List_const_iterator" = type { ptr }
%"class.xmem::Configurator" = type <{ i8, i8, i8, i8, i8, [3 x i8], i64, i32, i8, i8, i8, i8, %"class.std::__cxx11::list", %"class.std::__cxx11::list", i32, i8, i8, [2 x i8], i32, [4 x i8], %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<unsigned int, std::allocator<unsigned int>>::_List_impl" }
%"struct.std::__cxx11::_List_base<unsigned int, std::allocator<unsigned int>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.xmem::Option" = type <{ ptr, ptr, ptr, ptr, ptr, i32, [4 x i8] }>

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@_ZN4xmemL5usageE = external hidden constant [24 x %"struct.xmem::Descriptor"], align 16
@.str.1 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZN4xmem9g_verboseE = external global i8, align 1
@.str.4 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [130 x i8], align 1
@_ZN4xmem16g_num_numa_nodesE = external global i32, align 4
@.str.9 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [232 x i8], align 1
@_ZN4xmem18g_num_logical_cpusE = external global i32, align 4
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZN4xmem21g_starting_test_indexE = external global i32, align 4
@_ZN4xmem12g_test_indexE = external global i32, align 4
@.str.21 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [183 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@_ZN4xmem17g_large_page_sizeE = external global i64, align 8
@.str.64 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN4xmem11g_page_sizeE = external global i64, align 8
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4xmem12Configurator18configureFromInputEiPPc(ptr noundef nonnull align 8 dereferenceable(135) %0, i32 noundef %1, ptr noundef %2) #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %"struct.xmem::Stats", align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca %"class.xmem::Parser", align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.0", align 1
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i8, align 1
  %29 = alloca %"struct.std::_List_const_iterator", align 8
  %30 = alloca %"struct.std::_List_const_iterator", align 8
  %31 = alloca %"struct.std::_List_const_iterator", align 8
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i8, align 1
  %37 = alloca %"struct.std::_List_const_iterator", align 8
  %38 = alloca %"struct.std::_List_const_iterator", align 8
  %39 = alloca %"struct.std::_List_const_iterator", align 8
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca %"struct.std::_List_const_iterator", align 8
  %51 = alloca %"struct.std::_List_const_iterator", align 8
  %52 = alloca %"struct.std::_List_const_iterator", align 8
  %53 = alloca %"struct.std::_List_const_iterator", align 8
  %54 = alloca %"struct.std::_List_const_iterator", align 8
  %55 = alloca %"struct.std::_List_const_iterator", align 8
  %56 = alloca i64, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  %57 = load ptr, ptr %5, align 8
  %58 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 0
  %59 = load i8, ptr %58, align 8, !tbaa !11, !range !22, !noundef !23
  %60 = trunc i8 %59 to i1
  br i1 %60, label %61, label %64

61:                                               ; preds = %3
  %62 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str)
  %63 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 -2, ptr %4, align 4
  br label %1150

64:                                               ; preds = %3
  %65 = load i32, ptr %6, align 4, !tbaa !9
  %66 = icmp sgt i32 %65, 0
  %67 = zext i1 %66 to i32
  %68 = load i32, ptr %6, align 4, !tbaa !9
  %69 = sub nsw i32 %68, %67
  store i32 %69, ptr %6, align 4, !tbaa !9
  %70 = load i32, ptr %6, align 4, !tbaa !9
  %71 = icmp sgt i32 %70, 0
  %72 = zext i1 %71 to i32
  %73 = load ptr, ptr %7, align 8, !tbaa !5
  %74 = sext i32 %72 to i64
  %75 = getelementptr inbounds ptr, ptr %73, i64 %74
  store ptr %75, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %76 = load i32, ptr %6, align 4, !tbaa !9
  %77 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4xmem5StatsC2EPKNS_10DescriptorEiPPcib(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef @_ZN4xmemL5usageE, i32 noundef %76, ptr noundef %77, i32 noundef 0, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %78 = getelementptr inbounds %"struct.xmem::Stats", ptr %8, i32 0, i32 1
  %79 = load i32, ptr %78, align 4, !tbaa !24
  %80 = zext i32 %79 to i64
  %81 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %80, i64 48)
  %82 = extractvalue { i64, i1 } %81, 1
  %83 = extractvalue { i64, i1 } %81, 0
  %84 = select i1 %82, i64 -1, i64 %83
  %85 = call noalias noundef nonnull ptr @_Znam(i64 noundef %84) #10
  %86 = icmp eq i64 %80, 0
  br i1 %86, label %94, label %87

87:                                               ; preds = %64
  %88 = getelementptr inbounds %"class.xmem::Option", ptr %85, i64 %80
  br label %89

89:                                               ; preds = %91, %87
  %90 = phi ptr [ %85, %87 ], [ %92, %91 ]
  invoke void @_ZN4xmem6OptionC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %90)
          to label %91 unwind label %120

91:                                               ; preds = %89
  %92 = getelementptr inbounds %"class.xmem::Option", ptr %90, i64 1
  %93 = icmp eq ptr %92, %88
  br i1 %93, label %94, label %89

94:                                               ; preds = %91, %64
  store ptr %85, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %95 = getelementptr inbounds %"struct.xmem::Stats", ptr %8, i32 0, i32 0
  %96 = load i32, ptr %95, align 4, !tbaa !26
  %97 = zext i32 %96 to i64
  %98 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %97, i64 48)
  %99 = extractvalue { i64, i1 } %98, 1
  %100 = extractvalue { i64, i1 } %98, 0
  %101 = select i1 %99, i64 -1, i64 %100
  %102 = call noalias noundef nonnull ptr @_Znam(i64 noundef %101) #10
  %103 = icmp eq i64 %97, 0
  br i1 %103, label %111, label %104

104:                                              ; preds = %94
  %105 = getelementptr inbounds %"class.xmem::Option", ptr %102, i64 %97
  br label %106

106:                                              ; preds = %108, %104
  %107 = phi ptr [ %102, %104 ], [ %109, %108 ]
  invoke void @_ZN4xmem6OptionC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %107)
          to label %108 unwind label %124

108:                                              ; preds = %106
  %109 = getelementptr inbounds %"class.xmem::Option", ptr %107, i64 1
  %110 = icmp eq ptr %109, %105
  br i1 %110, label %111, label %106

111:                                              ; preds = %108, %94
  store ptr %102, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #9
  %112 = load i32, ptr %6, align 4, !tbaa !9
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = load ptr, ptr %9, align 8, !tbaa !5
  %115 = load ptr, ptr %12, align 8, !tbaa !5
  call void @_ZN4xmem6ParserC2EPKNS_10DescriptorEiPPcPNS_6OptionES7_ibi(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef @_ZN4xmemL5usageE, i32 noundef %112, ptr noundef %113, ptr noundef %114, ptr noundef %115, i32 noundef 0, i1 noundef zeroext false, i32 noundef -1)
  %116 = call noundef zeroext i1 @_ZN4xmem6Parser5errorEv(ptr noundef nonnull align 8 dereferenceable(17) %13)
  br i1 %116, label %117, label %128

117:                                              ; preds = %111
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.1)
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

120:                                              ; preds = %89
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %10, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %11, align 4
  call void @_ZdaPvm(ptr noundef %85, i64 noundef %84) #11
  br label %1149

124:                                              ; preds = %106
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %10, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %11, align 4
  call void @_ZdaPvm(ptr noundef %102, i64 noundef %101) #11
  br label %1148

128:                                              ; preds = %111
  %129 = call noundef i32 @_ZN4xmem6Parser15nonOptionsCountEv(ptr noundef nonnull align 8 dereferenceable(17) %13)
  %130 = icmp sgt i32 %129, 0
  br i1 %130, label %131, label %134

131:                                              ; preds = %128
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.2)
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

134:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %135 = load ptr, ptr %9, align 8, !tbaa !5
  %136 = getelementptr inbounds %"class.xmem::Option", ptr %135, i64 0
  %137 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %136)
  store ptr %137, ptr %14, align 8, !tbaa !5
  br label %138

138:                                              ; preds = %165, %134
  %139 = load ptr, ptr %14, align 8, !tbaa !5
  %140 = icmp ne ptr %139, null
  br i1 %140, label %142, label %141

141:                                              ; preds = %138
  store i32 3, ptr %15, align 4
  br label %168

142:                                              ; preds = %138
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.3)
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  %144 = load ptr, ptr %14, align 8, !tbaa !5
  %145 = getelementptr inbounds %"class.xmem::Option", ptr %144, i32 0, i32 3
  %146 = load ptr, ptr %145, align 8, !tbaa !27
  %147 = load ptr, ptr %14, align 8, !tbaa !5
  %148 = getelementptr inbounds %"class.xmem::Option", ptr %147, i32 0, i32 5
  %149 = load i32, ptr %148, align 8, !tbaa !29
  %150 = sext i32 %149 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %146, i64 noundef %150, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %151 unwind label %156

151:                                              ; preds = %142
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %153 unwind label %160

153:                                              ; preds = %151
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %155 unwind label %160

155:                                              ; preds = %153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  store i32 2, ptr %15, align 4
  br label %168

156:                                              ; preds = %142
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %10, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %11, align 4
  br label %164

160:                                              ; preds = %153, %151
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %10, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %164

164:                                              ; preds = %160, %156
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  br label %1148

165:                                              ; No predecessors!
  %166 = load ptr, ptr %14, align 8, !tbaa !5
  %167 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %166)
  store ptr %167, ptr %14, align 8, !tbaa !5
  br label %138, !llvm.loop !30

168:                                              ; preds = %155, %141
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  %169 = load i32, ptr %15, align 4
  switch i32 %169, label %1147 [
    i32 3, label %170
    i32 2, label %1138
  ]

170:                                              ; preds = %168
  %171 = load ptr, ptr %9, align 8, !tbaa !5
  %172 = getelementptr inbounds %"class.xmem::Option", ptr %171, i64 14
  %173 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %172)
  %174 = icmp ne ptr %173, null
  br i1 %174, label %175, label %177

175:                                              ; preds = %170
  %176 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 22
  store i8 1, ptr %176, align 1, !tbaa !32
  store i8 1, ptr @_ZN4xmem9g_verboseE, align 1, !tbaa !33
  br label %177

177:                                              ; preds = %175, %170
  %178 = load ptr, ptr %9, align 8, !tbaa !5
  %179 = getelementptr inbounds %"class.xmem::Option", ptr %178, i64 8
  %180 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %179)
  %181 = icmp ne ptr %180, null
  br i1 %181, label %192, label %182

182:                                              ; preds = %177
  %183 = load ptr, ptr %9, align 8, !tbaa !5
  %184 = getelementptr inbounds %"class.xmem::Option", ptr %183, i64 12
  %185 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %184)
  %186 = icmp ne ptr %185, null
  br i1 %186, label %192, label %187

187:                                              ; preds = %182
  %188 = load ptr, ptr %9, align 8, !tbaa !5
  %189 = getelementptr inbounds %"class.xmem::Option", ptr %188, i64 3
  %190 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %189)
  %191 = icmp ne ptr %190, null
  br i1 %191, label %192, label %196

192:                                              ; preds = %187, %182, %177
  %193 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 3
  store i8 0, ptr %193, align 1, !tbaa !34
  %194 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 4
  store i8 0, ptr %194, align 4, !tbaa !35
  %195 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 1
  store i8 0, ptr %195, align 1, !tbaa !36
  br label %196

196:                                              ; preds = %192, %187
  %197 = load ptr, ptr %9, align 8, !tbaa !5
  %198 = getelementptr inbounds %"class.xmem::Option", ptr %197, i64 8
  %199 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %198)
  %200 = icmp ne ptr %199, null
  br i1 %200, label %201, label %203

201:                                              ; preds = %196
  %202 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 3
  store i8 1, ptr %202, align 1, !tbaa !34
  br label %203

203:                                              ; preds = %201, %196
  %204 = load ptr, ptr %9, align 8, !tbaa !5
  %205 = getelementptr inbounds %"class.xmem::Option", ptr %204, i64 12
  %206 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %205)
  %207 = icmp ne ptr %206, null
  br i1 %207, label %208, label %210

208:                                              ; preds = %203
  %209 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 4
  store i8 1, ptr %209, align 4, !tbaa !35
  br label %210

210:                                              ; preds = %208, %203
  %211 = load ptr, ptr %9, align 8, !tbaa !5
  %212 = getelementptr inbounds %"class.xmem::Option", ptr %211, i64 3
  %213 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %212)
  %214 = icmp ne ptr %213, null
  br i1 %214, label %215, label %251

215:                                              ; preds = %210
  %216 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 1
  store i8 1, ptr %216, align 1, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %217 = load ptr, ptr %9, align 8, !tbaa !5
  %218 = getelementptr inbounds %"class.xmem::Option", ptr %217, i64 3
  %219 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %218)
  store ptr %219, ptr %18, align 8, !tbaa !5
  br label %220

220:                                              ; preds = %246, %215
  %221 = load ptr, ptr %18, align 8, !tbaa !5
  %222 = icmp ne ptr %221, null
  br i1 %222, label %223, label %247

223:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store ptr null, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %224 = load ptr, ptr %18, align 8, !tbaa !5
  %225 = getelementptr inbounds %"class.xmem::Option", ptr %224, i32 0, i32 4
  %226 = load ptr, ptr %225, align 8, !tbaa !37
  %227 = call i64 @strtoul(ptr noundef %226, ptr noundef %19, i32 noundef 10) #9
  %228 = trunc i64 %227 to i32
  store i32 %228, ptr %20, align 4, !tbaa !9
  %229 = load i32, ptr %20, align 4, !tbaa !9
  switch i32 %229, label %232 [
    i32 0, label %230
  ]

230:                                              ; preds = %223
  %231 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 2
  store i8 1, ptr %231, align 2, !tbaa !38
  br label %241

232:                                              ; preds = %223
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.4)
  %234 = load i32, ptr %20, align 4, !tbaa !9
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %233, i32 noundef %234)
  %236 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef @.str.5)
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef @.str.6)
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %238, i32 noundef 0)
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %244

241:                                              ; preds = %230
  %242 = load ptr, ptr %18, align 8, !tbaa !5
  %243 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %242)
  store ptr %243, ptr %18, align 8, !tbaa !5
  store i32 0, ptr %15, align 4
  br label %244

244:                                              ; preds = %241, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  %245 = load i32, ptr %15, align 4
  switch i32 %245, label %248 [
    i32 0, label %246
  ]

246:                                              ; preds = %244
  br label %220, !llvm.loop !39

247:                                              ; preds = %220
  store i32 0, ptr %15, align 4
  br label %248

248:                                              ; preds = %247, %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  %249 = load i32, ptr %15, align 4
  switch i32 %249, label %1147 [
    i32 0, label %250
    i32 2, label %1138
  ]

250:                                              ; preds = %248
  br label %251

251:                                              ; preds = %250, %210
  %252 = load ptr, ptr %9, align 8, !tbaa !5
  %253 = getelementptr inbounds %"class.xmem::Option", ptr %252, i64 15
  %254 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %253)
  %255 = icmp ne ptr %254, null
  br i1 %255, label %256, label %280

256:                                              ; preds = %251
  %257 = load ptr, ptr %9, align 8, !tbaa !5
  %258 = getelementptr inbounds %"class.xmem::Option", ptr %257, i64 15
  %259 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %57, ptr noundef %258)
  br i1 %259, label %261, label %260

260:                                              ; preds = %256
  br label %1138

261:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  store ptr null, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %262 = load ptr, ptr %9, align 8, !tbaa !5
  %263 = getelementptr inbounds %"class.xmem::Option", ptr %262, i64 15
  %264 = getelementptr inbounds %"class.xmem::Option", ptr %263, i32 0, i32 4
  %265 = load ptr, ptr %264, align 8, !tbaa !37
  %266 = call i64 @strtoul(ptr noundef %265, ptr noundef %21, i32 noundef 10) #9
  store i64 %266, ptr %22, align 8, !tbaa !40
  %267 = load i64, ptr %22, align 8, !tbaa !40
  %268 = urem i64 %267, 4
  %269 = icmp ne i64 %268, 0
  br i1 %269, label %270, label %273

270:                                              ; preds = %261
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.7)
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %277

273:                                              ; preds = %261
  %274 = load i64, ptr %22, align 8, !tbaa !40
  %275 = mul i64 %274, 1024
  %276 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  store i64 %275, ptr %276, align 8, !tbaa !41
  store i32 0, ptr %15, align 4
  br label %277

277:                                              ; preds = %273, %270
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  %278 = load i32, ptr %15, align 4
  switch i32 %278, label %1147 [
    i32 0, label %279
    i32 2, label %1138
  ]

279:                                              ; preds = %277
  br label %280

280:                                              ; preds = %279, %251
  %281 = load ptr, ptr %9, align 8, !tbaa !5
  %282 = getelementptr inbounds %"class.xmem::Option", ptr %281, i64 13
  %283 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %282)
  %284 = icmp ne ptr %283, null
  br i1 %284, label %285, label %289

285:                                              ; preds = %280
  %286 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  store i8 0, ptr %286, align 2, !tbaa !42
  %287 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  store i32 0, ptr %23, align 4, !tbaa !9
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %287, ptr noundef nonnull align 4 dereferenceable(4) %23)
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  %288 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  store i32 0, ptr %24, align 4, !tbaa !9
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %288, ptr noundef nonnull align 4 dereferenceable(4) %24)
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %289

289:                                              ; preds = %285, %280
  %290 = load ptr, ptr %9, align 8, !tbaa !5
  %291 = getelementptr inbounds %"class.xmem::Option", ptr %290, i64 16
  %292 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %291)
  %293 = icmp ne ptr %292, null
  br i1 %293, label %294, label %363

294:                                              ; preds = %289
  %295 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %296 = load i8, ptr %295, align 2, !tbaa !42, !range !22, !noundef !23
  %297 = trunc i8 %296 to i1
  br i1 %297, label %301, label %298

298:                                              ; preds = %294
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.8)
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %362

301:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %302 = load ptr, ptr %9, align 8, !tbaa !5
  %303 = getelementptr inbounds %"class.xmem::Option", ptr %302, i64 16
  %304 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %303)
  store ptr %304, ptr %25, align 8, !tbaa !5
  br label %305

305:                                              ; preds = %356, %301
  %306 = load ptr, ptr %25, align 8, !tbaa !5
  %307 = icmp ne ptr %306, null
  br i1 %307, label %308, label %357

308:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  store ptr null, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %309 = load ptr, ptr %25, align 8, !tbaa !5
  %310 = getelementptr inbounds %"class.xmem::Option", ptr %309, i32 0, i32 4
  %311 = load ptr, ptr %310, align 8, !tbaa !37
  %312 = call i64 @strtoul(ptr noundef %311, ptr noundef %26, i32 noundef 10) #9
  %313 = trunc i64 %312 to i32
  store i32 %313, ptr %27, align 4, !tbaa !9
  %314 = load i32, ptr %27, align 4, !tbaa !9
  %315 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %316 = icmp uge i32 %314, %315
  br i1 %316, label %317, label %326

317:                                              ; preds = %308
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.9)
  %319 = load i32, ptr %27, align 4, !tbaa !9
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %318, i32 noundef %319)
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef @.str.10)
  %322 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %321, i32 noundef %322)
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef @.str.11)
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %354

326:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #9
  store i8 0, ptr %28, align 1, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %327 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  %328 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %327) #9
  %329 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %29, i32 0, i32 0
  store ptr %328, ptr %329, align 8
  br label %330

330:                                              ; preds = %343, %326
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %331 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  %332 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %331) #9
  %333 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %30, i32 0, i32 0
  store ptr %332, ptr %333, align 8
  %334 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br i1 %334, label %336, label %335

335:                                              ; preds = %330
  store i32 11, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %346

336:                                              ; preds = %330
  %337 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = load i32, ptr %27, align 4, !tbaa !9
  %340 = icmp eq i32 %338, %339
  br i1 %340, label %341, label %342

341:                                              ; preds = %336
  store i8 1, ptr %28, align 1, !tbaa !33
  br label %342

342:                                              ; preds = %341, %336
  br label %343

343:                                              ; preds = %342
  %344 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 0) #9
  %345 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %31, i32 0, i32 0
  store ptr %344, ptr %345, align 8
  br label %330, !llvm.loop !43

346:                                              ; preds = %335
  %347 = load i8, ptr %28, align 1, !tbaa !33, !range !22, !noundef !23
  %348 = trunc i8 %347 to i1
  br i1 %348, label %351, label %349

349:                                              ; preds = %346
  %350 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %350, ptr noundef nonnull align 4 dereferenceable(4) %27)
  br label %351

351:                                              ; preds = %349, %346
  %352 = load ptr, ptr %25, align 8, !tbaa !5
  %353 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %352)
  store ptr %353, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #9
  store i32 0, ptr %15, align 4
  br label %354

354:                                              ; preds = %351, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  %355 = load i32, ptr %15, align 4
  switch i32 %355, label %359 [
    i32 0, label %356
  ]

356:                                              ; preds = %354
  br label %305, !llvm.loop !44

357:                                              ; preds = %305
  %358 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  call void @_ZNSt7__cxx114listIjSaIjEE4sortEv(ptr noundef nonnull align 8 dereferenceable(24) %358)
  store i32 0, ptr %15, align 4
  br label %359

359:                                              ; preds = %357, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  %360 = load i32, ptr %15, align 4
  switch i32 %360, label %1147 [
    i32 0, label %361
    i32 2, label %1138
  ]

361:                                              ; preds = %359
  br label %362

362:                                              ; preds = %361, %298
  br label %380

363:                                              ; preds = %289
  %364 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %365 = load i8, ptr %364, align 2, !tbaa !42, !range !22, !noundef !23
  %366 = trunc i8 %365 to i1
  br i1 %366, label %367, label %379

367:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  store i32 0, ptr %32, align 4, !tbaa !9
  br label %368

368:                                              ; preds = %375, %367
  %369 = load i32, ptr %32, align 4, !tbaa !9
  %370 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %371 = icmp ult i32 %369, %370
  br i1 %371, label %373, label %372

372:                                              ; preds = %368
  store i32 14, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %378

373:                                              ; preds = %368
  %374 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %374, ptr noundef nonnull align 4 dereferenceable(4) %32)
  br label %375

375:                                              ; preds = %373
  %376 = load i32, ptr %32, align 4, !tbaa !9
  %377 = add i32 %376, 1
  store i32 %377, ptr %32, align 4, !tbaa !9
  br label %368, !llvm.loop !45

378:                                              ; preds = %372
  br label %379

379:                                              ; preds = %378, %363
  br label %380

380:                                              ; preds = %379, %362
  %381 = load ptr, ptr %9, align 8, !tbaa !5
  %382 = getelementptr inbounds %"class.xmem::Option", ptr %381, i64 18
  %383 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %382)
  %384 = icmp ne ptr %383, null
  br i1 %384, label %385, label %454

385:                                              ; preds = %380
  %386 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %387 = load i8, ptr %386, align 2, !tbaa !42, !range !22, !noundef !23
  %388 = trunc i8 %387 to i1
  br i1 %388, label %392, label %389

389:                                              ; preds = %385
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.12)
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %453

392:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %393 = load ptr, ptr %9, align 8, !tbaa !5
  %394 = getelementptr inbounds %"class.xmem::Option", ptr %393, i64 18
  %395 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %394)
  store ptr %395, ptr %33, align 8, !tbaa !5
  br label %396

396:                                              ; preds = %447, %392
  %397 = load ptr, ptr %33, align 8, !tbaa !5
  %398 = icmp ne ptr %397, null
  br i1 %398, label %399, label %448

399:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  store ptr null, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %400 = load ptr, ptr %33, align 8, !tbaa !5
  %401 = getelementptr inbounds %"class.xmem::Option", ptr %400, i32 0, i32 4
  %402 = load ptr, ptr %401, align 8, !tbaa !37
  %403 = call i64 @strtoul(ptr noundef %402, ptr noundef %34, i32 noundef 10) #9
  %404 = trunc i64 %403 to i32
  store i32 %404, ptr %35, align 4, !tbaa !9
  %405 = load i32, ptr %35, align 4, !tbaa !9
  %406 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %407 = icmp uge i32 %405, %406
  br i1 %407, label %408, label %417

408:                                              ; preds = %399
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.13)
  %410 = load i32, ptr %35, align 4, !tbaa !9
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %409, i32 noundef %410)
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %411, ptr noundef @.str.10)
  %413 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %412, i32 noundef %413)
  %415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %414, ptr noundef @.str.11)
  %416 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %445

417:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #9
  store i8 0, ptr %36, align 1, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %418 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  %419 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %418) #9
  %420 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %37, i32 0, i32 0
  store ptr %419, ptr %420, align 8
  br label %421

421:                                              ; preds = %434, %417
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %422 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  %423 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %422) #9
  %424 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %38, i32 0, i32 0
  store ptr %423, ptr %424, align 8
  %425 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br i1 %425, label %427, label %426

426:                                              ; preds = %421
  store i32 19, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %437

427:                                              ; preds = %421
  %428 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = load i32, ptr %35, align 4, !tbaa !9
  %431 = icmp eq i32 %429, %430
  br i1 %431, label %432, label %433

432:                                              ; preds = %427
  store i8 1, ptr %36, align 1, !tbaa !33
  br label %433

433:                                              ; preds = %432, %427
  br label %434

434:                                              ; preds = %433
  %435 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %37, i32 noundef 0) #9
  %436 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %39, i32 0, i32 0
  store ptr %435, ptr %436, align 8
  br label %421, !llvm.loop !46

437:                                              ; preds = %426
  %438 = load i8, ptr %36, align 1, !tbaa !33, !range !22, !noundef !23
  %439 = trunc i8 %438 to i1
  br i1 %439, label %442, label %440

440:                                              ; preds = %437
  %441 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %441, ptr noundef nonnull align 4 dereferenceable(4) %35)
  br label %442

442:                                              ; preds = %440, %437
  %443 = load ptr, ptr %33, align 8, !tbaa !5
  %444 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %443)
  store ptr %444, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  store i32 0, ptr %15, align 4
  br label %445

445:                                              ; preds = %442, %408
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  %446 = load i32, ptr %15, align 4
  switch i32 %446, label %450 [
    i32 0, label %447
  ]

447:                                              ; preds = %445
  br label %396, !llvm.loop !47

448:                                              ; preds = %396
  %449 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  call void @_ZNSt7__cxx114listIjSaIjEE4sortEv(ptr noundef nonnull align 8 dereferenceable(24) %449)
  store i32 0, ptr %15, align 4
  br label %450

450:                                              ; preds = %448, %445
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  %451 = load i32, ptr %15, align 4
  switch i32 %451, label %1147 [
    i32 0, label %452
    i32 2, label %1138
  ]

452:                                              ; preds = %450
  br label %453

453:                                              ; preds = %452, %389
  br label %471

454:                                              ; preds = %380
  %455 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %456 = load i8, ptr %455, align 2, !tbaa !42, !range !22, !noundef !23
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %470

458:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !9
  br label %459

459:                                              ; preds = %466, %458
  %460 = load i32, ptr %40, align 4, !tbaa !9
  %461 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !9
  %462 = icmp ult i32 %460, %461
  br i1 %462, label %464, label %463

463:                                              ; preds = %459
  store i32 22, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %469

464:                                              ; preds = %459
  %465 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %465, ptr noundef nonnull align 4 dereferenceable(4) %40)
  br label %466

466:                                              ; preds = %464
  %467 = load i32, ptr %40, align 4, !tbaa !9
  %468 = add i32 %467, 1
  store i32 %468, ptr %40, align 4, !tbaa !9
  br label %459, !llvm.loop !48

469:                                              ; preds = %463
  br label %470

470:                                              ; preds = %469, %454
  br label %471

471:                                              ; preds = %470, %453
  %472 = load ptr, ptr %9, align 8, !tbaa !5
  %473 = getelementptr inbounds %"class.xmem::Option", ptr %472, i64 17
  %474 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %473)
  %475 = icmp ne ptr %474, null
  br i1 %475, label %476, label %485

476:                                              ; preds = %471
  %477 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %478 = load i8, ptr %477, align 2, !tbaa !42, !range !22, !noundef !23
  %479 = trunc i8 %478 to i1
  br i1 %479, label %480, label %483

480:                                              ; preds = %476
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.14)
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

483:                                              ; preds = %476
  %484 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 23
  store i8 1, ptr %484, align 2, !tbaa !49
  br label %485

485:                                              ; preds = %483, %471
  %486 = load ptr, ptr %9, align 8, !tbaa !5
  %487 = getelementptr inbounds %"class.xmem::Option", ptr %486, i64 7
  %488 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %487)
  %489 = icmp ne ptr %488, null
  br i1 %489, label %490, label %517

490:                                              ; preds = %485
  %491 = load ptr, ptr %9, align 8, !tbaa !5
  %492 = getelementptr inbounds %"class.xmem::Option", ptr %491, i64 7
  %493 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %57, ptr noundef %492)
  br i1 %493, label %495, label %494

494:                                              ; preds = %490
  br label %1138

495:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  store ptr null, ptr %41, align 8, !tbaa !5
  %496 = load ptr, ptr %9, align 8, !tbaa !5
  %497 = getelementptr inbounds %"class.xmem::Option", ptr %496, i64 7
  %498 = getelementptr inbounds %"class.xmem::Option", ptr %497, i32 0, i32 4
  %499 = load ptr, ptr %498, align 8, !tbaa !37
  %500 = call i64 @strtoul(ptr noundef %499, ptr noundef %41, i32 noundef 10) #9
  %501 = trunc i64 %500 to i32
  %502 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 7
  store i32 %501, ptr %502, align 8, !tbaa !50
  %503 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 7
  %504 = load i32, ptr %503, align 8, !tbaa !50
  %505 = load i32, ptr @_ZN4xmem18g_num_logical_cpusE, align 4, !tbaa !9
  %506 = icmp ugt i32 %504, %505
  br i1 %506, label %507, label %513

507:                                              ; preds = %495
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.15)
  %509 = load i32, ptr @_ZN4xmem18g_num_logical_cpusE, align 4, !tbaa !9
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %508, i32 noundef %509)
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef @.str.16)
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %514

513:                                              ; preds = %495
  store i32 0, ptr %15, align 4
  br label %514

514:                                              ; preds = %513, %507
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  %515 = load i32, ptr %15, align 4
  switch i32 %515, label %1147 [
    i32 0, label %516
    i32 2, label %1138
  ]

516:                                              ; preds = %514
  br label %517

517:                                              ; preds = %516, %485
  %518 = load ptr, ptr %9, align 8, !tbaa !5
  %519 = getelementptr inbounds %"class.xmem::Option", ptr %518, i64 2
  %520 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %519)
  %521 = icmp ne ptr %520, null
  br i1 %521, label %522, label %560

522:                                              ; preds = %517
  %523 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 8
  store i8 0, ptr %523, align 4, !tbaa !51
  %524 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 9
  store i8 0, ptr %524, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %525 = load ptr, ptr %9, align 8, !tbaa !5
  %526 = getelementptr inbounds %"class.xmem::Option", ptr %525, i64 2
  %527 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %526)
  store ptr %527, ptr %42, align 8, !tbaa !5
  br label %528

528:                                              ; preds = %555, %522
  %529 = load ptr, ptr %42, align 8, !tbaa !5
  %530 = icmp ne ptr %529, null
  br i1 %530, label %531, label %556

531:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  store ptr null, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %532 = load ptr, ptr %42, align 8, !tbaa !5
  %533 = getelementptr inbounds %"class.xmem::Option", ptr %532, i32 0, i32 4
  %534 = load ptr, ptr %533, align 8, !tbaa !37
  %535 = call i64 @strtoul(ptr noundef %534, ptr noundef %43, i32 noundef 10) #9
  %536 = trunc i64 %535 to i32
  store i32 %536, ptr %44, align 4, !tbaa !9
  %537 = load i32, ptr %44, align 4, !tbaa !9
  switch i32 %537, label %542 [
    i32 32, label %538
    i32 64, label %540
  ]

538:                                              ; preds = %531
  %539 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 8
  store i8 1, ptr %539, align 4, !tbaa !51
  br label %550

540:                                              ; preds = %531
  %541 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 9
  store i8 1, ptr %541, align 1, !tbaa !52
  br label %550

542:                                              ; preds = %531
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.17)
  %544 = load i32, ptr %44, align 4, !tbaa !9
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %543, i32 noundef %544)
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %545, ptr noundef @.str.18)
  %547 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %546, ptr noundef @.str.19)
  %548 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %547, ptr noundef @.str.20)
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %548, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %553

550:                                              ; preds = %540, %538
  %551 = load ptr, ptr %42, align 8, !tbaa !5
  %552 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %551)
  store ptr %552, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %15, align 4
  br label %553

553:                                              ; preds = %550, %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  %554 = load i32, ptr %15, align 4
  switch i32 %554, label %557 [
    i32 0, label %555
  ]

555:                                              ; preds = %553
  br label %528, !llvm.loop !53

556:                                              ; preds = %528
  store i32 0, ptr %15, align 4
  br label %557

557:                                              ; preds = %556, %553
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  %558 = load i32, ptr %15, align 4
  switch i32 %558, label %1147 [
    i32 0, label %559
    i32 2, label %1138
  ]

559:                                              ; preds = %557
  br label %560

560:                                              ; preds = %559, %517
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = getelementptr inbounds %"class.xmem::Option", ptr %561, i64 9
  %563 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %562)
  %564 = icmp ne ptr %563, null
  br i1 %564, label %565, label %578

565:                                              ; preds = %560
  %566 = load ptr, ptr %9, align 8, !tbaa !5
  %567 = getelementptr inbounds %"class.xmem::Option", ptr %566, i64 9
  %568 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %57, ptr noundef %567)
  br i1 %568, label %570, label %569

569:                                              ; preds = %565
  br label %1138

570:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  store ptr null, ptr %45, align 8, !tbaa !5
  %571 = load ptr, ptr %9, align 8, !tbaa !5
  %572 = getelementptr inbounds %"class.xmem::Option", ptr %571, i64 9
  %573 = getelementptr inbounds %"class.xmem::Option", ptr %572, i32 0, i32 4
  %574 = load ptr, ptr %573, align 8, !tbaa !37
  %575 = call i64 @strtoul(ptr noundef %574, ptr noundef %45, i32 noundef 10) #9
  %576 = trunc i64 %575 to i32
  %577 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 14
  store i32 %576, ptr %577, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %578

578:                                              ; preds = %570, %560
  %579 = load ptr, ptr %9, align 8, !tbaa !5
  %580 = getelementptr inbounds %"class.xmem::Option", ptr %579, i64 10
  %581 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %580)
  %582 = icmp ne ptr %581, null
  br i1 %582, label %588, label %583

583:                                              ; preds = %578
  %584 = load ptr, ptr %9, align 8, !tbaa !5
  %585 = getelementptr inbounds %"class.xmem::Option", ptr %584, i64 11
  %586 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %585)
  %587 = icmp ne ptr %586, null
  br i1 %587, label %588, label %591

588:                                              ; preds = %583, %578
  %589 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  store i8 0, ptr %589, align 4, !tbaa !55
  %590 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 16
  store i8 0, ptr %590, align 1, !tbaa !56
  br label %591

591:                                              ; preds = %588, %583
  %592 = load ptr, ptr %9, align 8, !tbaa !5
  %593 = getelementptr inbounds %"class.xmem::Option", ptr %592, i64 10
  %594 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %593)
  %595 = icmp ne ptr %594, null
  br i1 %595, label %596, label %598

596:                                              ; preds = %591
  %597 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  store i8 1, ptr %597, align 4, !tbaa !55
  br label %598

598:                                              ; preds = %596, %591
  %599 = load ptr, ptr %9, align 8, !tbaa !5
  %600 = getelementptr inbounds %"class.xmem::Option", ptr %599, i64 11
  %601 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %600)
  %602 = icmp ne ptr %601, null
  br i1 %602, label %603, label %605

603:                                              ; preds = %598
  %604 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 16
  store i8 1, ptr %604, align 1, !tbaa !56
  br label %605

605:                                              ; preds = %603, %598
  %606 = load ptr, ptr %9, align 8, !tbaa !5
  %607 = getelementptr inbounds %"class.xmem::Option", ptr %606, i64 6
  %608 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %607)
  %609 = icmp ne ptr %608, null
  br i1 %609, label %610, label %623

610:                                              ; preds = %605
  %611 = load ptr, ptr %9, align 8, !tbaa !5
  %612 = getelementptr inbounds %"class.xmem::Option", ptr %611, i64 6
  %613 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %57, ptr noundef %612)
  br i1 %613, label %615, label %614

614:                                              ; preds = %610
  br label %1138

615:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  store ptr null, ptr %46, align 8, !tbaa !5
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = getelementptr inbounds %"class.xmem::Option", ptr %616, i64 6
  %618 = getelementptr inbounds %"class.xmem::Option", ptr %617, i32 0, i32 4
  %619 = load ptr, ptr %618, align 8, !tbaa !37
  %620 = call i64 @strtoul(ptr noundef %619, ptr noundef %46, i32 noundef 10) #9
  %621 = trunc i64 %620 to i32
  %622 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 18
  store i32 %621, ptr %622, align 8, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %623

623:                                              ; preds = %615, %605
  %624 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 18
  %625 = load i32, ptr %624, align 8, !tbaa !57
  store i32 %625, ptr @_ZN4xmem21g_starting_test_indexE, align 4, !tbaa !9
  %626 = load i32, ptr @_ZN4xmem21g_starting_test_indexE, align 4, !tbaa !9
  store i32 %626, ptr @_ZN4xmem12g_test_indexE, align 4, !tbaa !9
  %627 = load ptr, ptr %9, align 8, !tbaa !5
  %628 = getelementptr inbounds %"class.xmem::Option", ptr %627, i64 4
  %629 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %628)
  %630 = icmp ne ptr %629, null
  br i1 %630, label %631, label %644

631:                                              ; preds = %623
  %632 = load ptr, ptr %9, align 8, !tbaa !5
  %633 = getelementptr inbounds %"class.xmem::Option", ptr %632, i64 4
  %634 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %57, ptr noundef %633)
  br i1 %634, label %636, label %635

635:                                              ; preds = %631
  br label %1138

636:                                              ; preds = %631
  %637 = load ptr, ptr %9, align 8, !tbaa !5
  %638 = getelementptr inbounds %"class.xmem::Option", ptr %637, i64 4
  %639 = getelementptr inbounds %"class.xmem::Option", ptr %638, i32 0, i32 4
  %640 = load ptr, ptr %639, align 8, !tbaa !37
  %641 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 20
  %642 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef %640)
  %643 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 21
  store i8 1, ptr %643, align 8, !tbaa !58
  br label %644

644:                                              ; preds = %636, %623
  %645 = load ptr, ptr %9, align 8, !tbaa !5
  %646 = getelementptr inbounds %"class.xmem::Option", ptr %645, i64 19
  %647 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %646)
  %648 = icmp ne ptr %647, null
  br i1 %648, label %654, label %649

649:                                              ; preds = %644
  %650 = load ptr, ptr %9, align 8, !tbaa !5
  %651 = getelementptr inbounds %"class.xmem::Option", ptr %650, i64 20
  %652 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %651)
  %653 = icmp ne ptr %652, null
  br i1 %653, label %654, label %657

654:                                              ; preds = %649, %644
  %655 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 24
  store i8 0, ptr %655, align 1, !tbaa !59
  %656 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 25
  store i8 0, ptr %656, align 4, !tbaa !60
  br label %657

657:                                              ; preds = %654, %649
  %658 = load ptr, ptr %9, align 8, !tbaa !5
  %659 = getelementptr inbounds %"class.xmem::Option", ptr %658, i64 19
  %660 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %659)
  %661 = icmp ne ptr %660, null
  br i1 %661, label %662, label %664

662:                                              ; preds = %657
  %663 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 24
  store i8 1, ptr %663, align 1, !tbaa !59
  br label %664

664:                                              ; preds = %662, %657
  %665 = load ptr, ptr %9, align 8, !tbaa !5
  %666 = getelementptr inbounds %"class.xmem::Option", ptr %665, i64 20
  %667 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %666)
  %668 = icmp ne ptr %667, null
  br i1 %668, label %669, label %671

669:                                              ; preds = %664
  %670 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 25
  store i8 1, ptr %670, align 4, !tbaa !60
  br label %671

671:                                              ; preds = %669, %664
  %672 = load ptr, ptr %9, align 8, !tbaa !5
  %673 = getelementptr inbounds %"class.xmem::Option", ptr %672, i64 21
  %674 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %673)
  %675 = icmp ne ptr %674, null
  br i1 %675, label %676, label %736

676:                                              ; preds = %671
  %677 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 26
  store i8 0, ptr %677, align 1, !tbaa !61
  %678 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 27
  store i8 0, ptr %678, align 2, !tbaa !62
  %679 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 28
  store i8 0, ptr %679, align 1, !tbaa !63
  %680 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 29
  store i8 0, ptr %680, align 8, !tbaa !64
  %681 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 30
  store i8 0, ptr %681, align 1, !tbaa !65
  %682 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 31
  store i8 0, ptr %682, align 2, !tbaa !66
  %683 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 32
  store i8 0, ptr %683, align 1, !tbaa !67
  %684 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 33
  store i8 0, ptr %684, align 4, !tbaa !68
  %685 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 34
  store i8 0, ptr %685, align 1, !tbaa !69
  %686 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 35
  store i8 0, ptr %686, align 2, !tbaa !70
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %687 = load ptr, ptr %9, align 8, !tbaa !5
  %688 = getelementptr inbounds %"class.xmem::Option", ptr %687, i64 21
  %689 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %688)
  store ptr %689, ptr %47, align 8, !tbaa !5
  br label %690

690:                                              ; preds = %731, %676
  %691 = load ptr, ptr %47, align 8, !tbaa !5
  %692 = icmp ne ptr %691, null
  br i1 %692, label %693, label %732

693:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  store ptr null, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %694 = load ptr, ptr %47, align 8, !tbaa !5
  %695 = getelementptr inbounds %"class.xmem::Option", ptr %694, i32 0, i32 4
  %696 = load ptr, ptr %695, align 8, !tbaa !37
  %697 = call i64 @strtoul(ptr noundef %696, ptr noundef %48, i32 noundef 10) #9
  %698 = trunc i64 %697 to i32
  store i32 %698, ptr %49, align 4, !tbaa !9
  %699 = load i32, ptr %49, align 4, !tbaa !9
  switch i32 %699, label %720 [
    i32 1, label %700
    i32 -1, label %702
    i32 2, label %704
    i32 -2, label %706
    i32 4, label %708
    i32 -4, label %710
    i32 8, label %712
    i32 -8, label %714
    i32 16, label %716
    i32 -16, label %718
  ]

700:                                              ; preds = %693
  %701 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 26
  store i8 1, ptr %701, align 1, !tbaa !61
  br label %726

702:                                              ; preds = %693
  %703 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 27
  store i8 1, ptr %703, align 2, !tbaa !62
  br label %726

704:                                              ; preds = %693
  %705 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 28
  store i8 1, ptr %705, align 1, !tbaa !63
  br label %726

706:                                              ; preds = %693
  %707 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 29
  store i8 1, ptr %707, align 8, !tbaa !64
  br label %726

708:                                              ; preds = %693
  %709 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 30
  store i8 1, ptr %709, align 1, !tbaa !65
  br label %726

710:                                              ; preds = %693
  %711 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 31
  store i8 1, ptr %711, align 2, !tbaa !66
  br label %726

712:                                              ; preds = %693
  %713 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 32
  store i8 1, ptr %713, align 1, !tbaa !67
  br label %726

714:                                              ; preds = %693
  %715 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 33
  store i8 1, ptr %715, align 4, !tbaa !68
  br label %726

716:                                              ; preds = %693
  %717 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 34
  store i8 1, ptr %717, align 1, !tbaa !69
  br label %726

718:                                              ; preds = %693
  %719 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 35
  store i8 1, ptr %719, align 2, !tbaa !70
  br label %726

720:                                              ; preds = %693
  %721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.21)
  %722 = load i32, ptr %49, align 4, !tbaa !9
  %723 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %721, i32 noundef %722)
  %724 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %723, ptr noundef @.str.22)
  %725 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %724, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 2, ptr %15, align 4
  br label %729

726:                                              ; preds = %718, %716, %714, %712, %710, %708, %706, %704, %702, %700
  %727 = load ptr, ptr %47, align 8, !tbaa !5
  %728 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %727)
  store ptr %728, ptr %47, align 8, !tbaa !5
  store i32 0, ptr %15, align 4
  br label %729

729:                                              ; preds = %726, %720
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  %730 = load i32, ptr %15, align 4
  switch i32 %730, label %733 [
    i32 0, label %731
  ]

731:                                              ; preds = %729
  br label %690, !llvm.loop !71

732:                                              ; preds = %690
  store i32 0, ptr %15, align 4
  br label %733

733:                                              ; preds = %732, %729
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  %734 = load i32, ptr %15, align 4
  switch i32 %734, label %1147 [
    i32 0, label %735
    i32 2, label %1138
  ]

735:                                              ; preds = %733
  br label %736

736:                                              ; preds = %735, %671
  %737 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 3
  %738 = load i8, ptr %737, align 1, !tbaa !34, !range !22, !noundef !23
  %739 = trunc i8 %738 to i1
  br i1 %739, label %751, label %740

740:                                              ; preds = %736
  %741 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 4
  %742 = load i8, ptr %741, align 4, !tbaa !35, !range !22, !noundef !23
  %743 = trunc i8 %742 to i1
  br i1 %743, label %751, label %744

744:                                              ; preds = %740
  %745 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 1
  %746 = load i8, ptr %745, align 1, !tbaa !36, !range !22, !noundef !23
  %747 = trunc i8 %746 to i1
  br i1 %747, label %751, label %748

748:                                              ; preds = %744
  %749 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.23)
  %750 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %749, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

751:                                              ; preds = %744, %740, %736
  %752 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  %753 = load i8, ptr %752, align 4, !tbaa !55, !range !22, !noundef !23
  %754 = trunc i8 %753 to i1
  br i1 %754, label %762, label %755

755:                                              ; preds = %751
  %756 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 16
  %757 = load i8, ptr %756, align 1, !tbaa !56, !range !22, !noundef !23
  %758 = trunc i8 %757 to i1
  br i1 %758, label %762, label %759

759:                                              ; preds = %755
  %760 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.24)
  %761 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

762:                                              ; preds = %755, %751
  %763 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 24
  %764 = load i8, ptr %763, align 1, !tbaa !59, !range !22, !noundef !23
  %765 = trunc i8 %764 to i1
  br i1 %765, label %773, label %766

766:                                              ; preds = %762
  %767 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 25
  %768 = load i8, ptr %767, align 4, !tbaa !60, !range !22, !noundef !23
  %769 = trunc i8 %768 to i1
  br i1 %769, label %773, label %770

770:                                              ; preds = %766
  %771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.25)
  %772 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %771, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1138

773:                                              ; preds = %766, %762
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = getelementptr inbounds %"class.xmem::Option", ptr %774, i64 1
  %776 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %775)
  %777 = icmp ne ptr %776, null
  br i1 %777, label %778, label %799

778:                                              ; preds = %773
  %779 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 3
  store i8 1, ptr %779, align 1, !tbaa !34
  %780 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 4
  store i8 1, ptr %780, align 4, !tbaa !35
  %781 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 1
  store i8 1, ptr %781, align 1, !tbaa !36
  %782 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 2
  store i8 1, ptr %782, align 2, !tbaa !38
  %783 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 8
  store i8 1, ptr %783, align 4, !tbaa !51
  %784 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 9
  store i8 1, ptr %784, align 1, !tbaa !52
  %785 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  store i8 1, ptr %785, align 4, !tbaa !55
  %786 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 16
  store i8 1, ptr %786, align 1, !tbaa !56
  %787 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 24
  store i8 1, ptr %787, align 1, !tbaa !59
  %788 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 25
  store i8 1, ptr %788, align 4, !tbaa !60
  %789 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 26
  store i8 1, ptr %789, align 1, !tbaa !61
  %790 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 27
  store i8 1, ptr %790, align 2, !tbaa !62
  %791 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 28
  store i8 1, ptr %791, align 1, !tbaa !63
  %792 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 29
  store i8 1, ptr %792, align 8, !tbaa !64
  %793 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 30
  store i8 1, ptr %793, align 1, !tbaa !65
  %794 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 31
  store i8 1, ptr %794, align 2, !tbaa !66
  %795 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 32
  store i8 1, ptr %795, align 1, !tbaa !67
  %796 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 33
  store i8 1, ptr %796, align 4, !tbaa !68
  %797 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 34
  store i8 1, ptr %797, align 1, !tbaa !69
  %798 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 35
  store i8 1, ptr %798, align 2, !tbaa !70
  br label %799

799:                                              ; preds = %778, %773
  %800 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  %801 = load i8, ptr %800, align 4, !tbaa !55, !range !22, !noundef !23
  %802 = trunc i8 %801 to i1
  br i1 %802, label %803, label %810

803:                                              ; preds = %799
  %804 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 8
  %805 = load i8, ptr %804, align 4, !tbaa !51, !range !22, !noundef !23
  %806 = trunc i8 %805 to i1
  br i1 %806, label %807, label %810

807:                                              ; preds = %803
  %808 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.26)
  %809 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %808, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %810

810:                                              ; preds = %807, %803, %799
  %811 = load ptr, ptr %9, align 8, !tbaa !5
  %812 = getelementptr inbounds %"class.xmem::Option", ptr %811, i64 5
  %813 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %812)
  %814 = icmp ne ptr %813, null
  br i1 %814, label %820, label %815

815:                                              ; preds = %810
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  %817 = getelementptr inbounds %"class.xmem::Option", ptr %816, i64 0
  %818 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %817)
  %819 = icmp ne ptr %818, null
  br i1 %819, label %820, label %821

820:                                              ; preds = %815, %810
  br label %1137

821:                                              ; preds = %815
  %822 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %823 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 22
  %824 = load i8, ptr %823, align 1, !tbaa !32, !range !22, !noundef !23
  %825 = trunc i8 %824 to i1
  br i1 %825, label %826, label %1058

826:                                              ; preds = %821
  %827 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
  %828 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %827, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %829 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.28)
  %830 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %829, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %831 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 4
  %832 = load i8, ptr %831, align 4, !tbaa !35, !range !22, !noundef !23
  %833 = trunc i8 %832 to i1
  br i1 %833, label %834, label %837

834:                                              ; preds = %826
  %835 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
  %836 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %835, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %837

837:                                              ; preds = %834, %826
  %838 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 3
  %839 = load i8, ptr %838, align 1, !tbaa !34, !range !22, !noundef !23
  %840 = trunc i8 %839 to i1
  br i1 %840, label %841, label %853

841:                                              ; preds = %837
  %842 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
  %843 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 7
  %844 = load i32, ptr %843, align 8, !tbaa !50
  %845 = icmp ugt i32 %844, 1
  br i1 %845, label %846, label %848

846:                                              ; preds = %841
  %847 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
  br label %850

848:                                              ; preds = %841
  %849 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
  br label %850

850:                                              ; preds = %848, %846
  %851 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
  %852 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %851, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %853

853:                                              ; preds = %850, %837
  %854 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 1
  %855 = load i8, ptr %854, align 1, !tbaa !36, !range !22, !noundef !23
  %856 = trunc i8 %855 to i1
  br i1 %856, label %857, label %860

857:                                              ; preds = %853
  %858 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
  %859 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %858, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %860

860:                                              ; preds = %857, %853
  %861 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
  %863 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %862, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %864 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.36)
  %865 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 15
  %866 = load i8, ptr %865, align 4, !tbaa !55, !range !22, !noundef !23
  %867 = trunc i8 %866 to i1
  br i1 %867, label %868, label %870

868:                                              ; preds = %860
  %869 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  br label %872

870:                                              ; preds = %860
  %871 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  br label %872

872:                                              ; preds = %870, %868
  %873 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %874 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.39)
  %875 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 16
  %876 = load i8, ptr %875, align 1, !tbaa !56, !range !22, !noundef !23
  %877 = trunc i8 %876 to i1
  br i1 %877, label %878, label %880

878:                                              ; preds = %872
  %879 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  br label %882

880:                                              ; preds = %872
  %881 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  br label %882

882:                                              ; preds = %880, %878
  %883 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %884 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.40)
  %885 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 24
  %886 = load i8, ptr %885, align 1, !tbaa !59, !range !22, !noundef !23
  %887 = trunc i8 %886 to i1
  br i1 %887, label %888, label %890

888:                                              ; preds = %882
  %889 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  br label %892

890:                                              ; preds = %882
  %891 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  br label %892

892:                                              ; preds = %890, %888
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %894 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
  %895 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 25
  %896 = load i8, ptr %895, align 4, !tbaa !60, !range !22, !noundef !23
  %897 = trunc i8 %896 to i1
  br i1 %897, label %898, label %900

898:                                              ; preds = %892
  %899 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  br label %902

900:                                              ; preds = %892
  %901 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  br label %902

902:                                              ; preds = %900, %898
  %903 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %904 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.42)
  %905 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 8
  %906 = load i8, ptr %905, align 4, !tbaa !51, !range !22, !noundef !23
  %907 = trunc i8 %906 to i1
  br i1 %907, label %908, label %910

908:                                              ; preds = %902
  %909 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.43)
  br label %910

910:                                              ; preds = %908, %902
  %911 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 9
  %912 = load i8, ptr %911, align 1, !tbaa !52, !range !22, !noundef !23
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %916

914:                                              ; preds = %910
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  br label %916

916:                                              ; preds = %914, %910
  %917 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %918 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.44)
  %919 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 26
  %920 = load i8, ptr %919, align 1, !tbaa !61, !range !22, !noundef !23
  %921 = trunc i8 %920 to i1
  br i1 %921, label %922, label %924

922:                                              ; preds = %916
  %923 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.45)
  br label %924

924:                                              ; preds = %922, %916
  %925 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 27
  %926 = load i8, ptr %925, align 2, !tbaa !62, !range !22, !noundef !23
  %927 = trunc i8 %926 to i1
  br i1 %927, label %928, label %930

928:                                              ; preds = %924
  %929 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.46)
  br label %930

930:                                              ; preds = %928, %924
  %931 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 28
  %932 = load i8, ptr %931, align 1, !tbaa !63, !range !22, !noundef !23
  %933 = trunc i8 %932 to i1
  br i1 %933, label %934, label %936

934:                                              ; preds = %930
  %935 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.47)
  br label %936

936:                                              ; preds = %934, %930
  %937 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 29
  %938 = load i8, ptr %937, align 8, !tbaa !64, !range !22, !noundef !23
  %939 = trunc i8 %938 to i1
  br i1 %939, label %940, label %942

940:                                              ; preds = %936
  %941 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.48)
  br label %942

942:                                              ; preds = %940, %936
  %943 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 30
  %944 = load i8, ptr %943, align 1, !tbaa !65, !range !22, !noundef !23
  %945 = trunc i8 %944 to i1
  br i1 %945, label %946, label %948

946:                                              ; preds = %942
  %947 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.49)
  br label %948

948:                                              ; preds = %946, %942
  %949 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 31
  %950 = load i8, ptr %949, align 2, !tbaa !66, !range !22, !noundef !23
  %951 = trunc i8 %950 to i1
  br i1 %951, label %952, label %954

952:                                              ; preds = %948
  %953 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
  br label %954

954:                                              ; preds = %952, %948
  %955 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 32
  %956 = load i8, ptr %955, align 1, !tbaa !67, !range !22, !noundef !23
  %957 = trunc i8 %956 to i1
  br i1 %957, label %958, label %960

958:                                              ; preds = %954
  %959 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.51)
  br label %960

960:                                              ; preds = %958, %954
  %961 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 33
  %962 = load i8, ptr %961, align 4, !tbaa !68, !range !22, !noundef !23
  %963 = trunc i8 %962 to i1
  br i1 %963, label %964, label %966

964:                                              ; preds = %960
  %965 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.52)
  br label %966

966:                                              ; preds = %964, %960
  %967 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 34
  %968 = load i8, ptr %967, align 1, !tbaa !69, !range !22, !noundef !23
  %969 = trunc i8 %968 to i1
  br i1 %969, label %970, label %972

970:                                              ; preds = %966
  %971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.53)
  br label %972

972:                                              ; preds = %970, %966
  %973 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 35
  %974 = load i8, ptr %973, align 2, !tbaa !70, !range !22, !noundef !23
  %975 = trunc i8 %974 to i1
  br i1 %975, label %976, label %978

976:                                              ; preds = %972
  %977 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.54)
  br label %978

978:                                              ; preds = %976, %972
  %979 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %980 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.55)
  %981 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 7
  %982 = load i32, ptr %981, align 8, !tbaa !50
  %983 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %982)
  %984 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %983, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %985 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.56)
  %986 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 10
  %987 = load i8, ptr %986, align 2, !tbaa !42, !range !22, !noundef !23
  %988 = trunc i8 %987 to i1
  br i1 %988, label %989, label %992

989:                                              ; preds = %978
  %990 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  %991 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %990, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %995

992:                                              ; preds = %978
  %993 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  %994 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %993, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %995

995:                                              ; preds = %992, %989
  %996 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.57)
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %997 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  %998 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %997) #9
  %999 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %50, i32 0, i32 0
  store ptr %998, ptr %999, align 8
  br label %1000

1000:                                             ; preds = %1011, %995
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %1001 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 12
  %1002 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %1001) #9
  %1003 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %51, i32 0, i32 0
  store ptr %1002, ptr %1003, align 8
  %1004 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br i1 %1004, label %1006, label %1005

1005:                                             ; preds = %1000
  store i32 32, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %1014

1006:                                             ; preds = %1000
  %1007 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  %1008 = load i32, ptr %1007, align 4, !tbaa !9
  %1009 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1008)
  %1010 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1009, ptr noundef @.str.58)
  br label %1011

1011:                                             ; preds = %1006
  %1012 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %50, i32 noundef 0) #9
  %1013 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %52, i32 0, i32 0
  store ptr %1012, ptr %1013, align 8
  br label %1000, !llvm.loop !72

1014:                                             ; preds = %1005
  %1015 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1016 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.59)
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %1017 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  %1018 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %1017) #9
  %1019 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %53, i32 0, i32 0
  store ptr %1018, ptr %1019, align 8
  br label %1020

1020:                                             ; preds = %1031, %1014
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %1021 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 13
  %1022 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %1021) #9
  %1023 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %54, i32 0, i32 0
  store ptr %1022, ptr %1023, align 8
  %1024 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br i1 %1024, label %1026, label %1025

1025:                                             ; preds = %1020
  store i32 35, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %1034

1026:                                             ; preds = %1020
  %1027 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  %1028 = load i32, ptr %1027, align 4, !tbaa !9
  %1029 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1028)
  %1030 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1029, ptr noundef @.str.58)
  br label %1031

1031:                                             ; preds = %1026
  %1032 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef 0) #9
  %1033 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %55, i32 0, i32 0
  store ptr %1032, ptr %1033, align 8
  br label %1020, !llvm.loop !73

1034:                                             ; preds = %1025
  %1035 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1036 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.60)
  %1037 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 23
  %1038 = load i8, ptr %1037, align 2, !tbaa !49, !range !22, !noundef !23
  %1039 = trunc i8 %1038 to i1
  br i1 %1039, label %1040, label %1043

1040:                                             ; preds = %1034
  %1041 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
  %1042 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1041, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1046

1043:                                             ; preds = %1034
  %1044 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
  %1045 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1044, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1046

1046:                                             ; preds = %1043, %1040
  %1047 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.61)
  %1048 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 14
  %1049 = load i32, ptr %1048, align 8, !tbaa !54
  %1050 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1049)
  %1051 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1050, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1052 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.62)
  %1053 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 18
  %1054 = load i32, ptr %1053, align 8, !tbaa !57
  %1055 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1054)
  %1056 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1055, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1057 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1058

1058:                                             ; preds = %1046, %821
  %1059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.63)
  %1060 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 23
  %1061 = load i8, ptr %1060, align 2, !tbaa !49, !range !22, !noundef !23
  %1062 = trunc i8 %1061 to i1
  br i1 %1062, label %1063, label %1106

1063:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  store i64 0, ptr %56, align 8, !tbaa !40
  %1064 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1065 = load i64, ptr %1064, align 8, !tbaa !41
  %1066 = load i64, ptr @_ZN4xmem17g_large_page_sizeE, align 8, !tbaa !40
  %1067 = icmp ule i64 %1065, %1066
  br i1 %1067, label %1068, label %1069

1068:                                             ; preds = %1063
  store i64 1, ptr %56, align 8, !tbaa !40
  br label %1087

1069:                                             ; preds = %1063
  %1070 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1071 = load i64, ptr %1070, align 8, !tbaa !41
  %1072 = load i64, ptr @_ZN4xmem17g_large_page_sizeE, align 8, !tbaa !40
  %1073 = urem i64 %1071, %1072
  %1074 = icmp eq i64 %1073, 0
  br i1 %1074, label %1075, label %1080

1075:                                             ; preds = %1069
  %1076 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1077 = load i64, ptr %1076, align 8, !tbaa !41
  %1078 = load i64, ptr @_ZN4xmem17g_large_page_sizeE, align 8, !tbaa !40
  %1079 = udiv i64 %1077, %1078
  store i64 %1079, ptr %56, align 8, !tbaa !40
  br label %1086

1080:                                             ; preds = %1069
  %1081 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1082 = load i64, ptr %1081, align 8, !tbaa !41
  %1083 = load i64, ptr @_ZN4xmem17g_large_page_sizeE, align 8, !tbaa !40
  %1084 = udiv i64 %1082, %1083
  %1085 = add i64 %1084, 1
  store i64 %1085, ptr %56, align 8, !tbaa !40
  br label %1086

1086:                                             ; preds = %1080, %1075
  br label %1087

1087:                                             ; preds = %1086, %1068
  %1088 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1089 = load i64, ptr %1088, align 8, !tbaa !41
  %1090 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %1089)
  %1091 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1090, ptr noundef @.str.64)
  %1092 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1093 = load i64, ptr %1092, align 8, !tbaa !41
  %1094 = udiv i64 %1093, 1024
  %1095 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1091, i64 noundef %1094)
  %1096 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1095, ptr noundef @.str.65)
  %1097 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1098 = load i64, ptr %1097, align 8, !tbaa !41
  %1099 = udiv i64 %1098, 1048576
  %1100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1096, i64 noundef %1099)
  %1101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1100, ptr noundef @.str.66)
  %1102 = load i64, ptr %56, align 8, !tbaa !40
  %1103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1101, i64 noundef %1102)
  %1104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1103, ptr noundef @.str.67)
  %1105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1104, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %1128

1106:                                             ; preds = %1058
  %1107 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1108 = load i64, ptr %1107, align 8, !tbaa !41
  %1109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %1108)
  %1110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1109, ptr noundef @.str.64)
  %1111 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1112 = load i64, ptr %1111, align 8, !tbaa !41
  %1113 = udiv i64 %1112, 1024
  %1114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1110, i64 noundef %1113)
  %1115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1114, ptr noundef @.str.65)
  %1116 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1117 = load i64, ptr %1116, align 8, !tbaa !41
  %1118 = udiv i64 %1117, 1048576
  %1119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1115, i64 noundef %1118)
  %1120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1119, ptr noundef @.str.68)
  %1121 = getelementptr inbounds %"class.xmem::Configurator", ptr %57, i32 0, i32 6
  %1122 = load i64, ptr %1121, align 8, !tbaa !41
  %1123 = load i64, ptr @_ZN4xmem11g_page_sizeE, align 8, !tbaa !40
  %1124 = udiv i64 %1122, %1123
  %1125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1120, i64 noundef %1124)
  %1126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1125, ptr noundef @.str.69)
  %1127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1126, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1128

1128:                                             ; preds = %1106, %1087
  %1129 = load ptr, ptr %9, align 8, !tbaa !5
  %1130 = icmp eq ptr %1129, null
  br i1 %1130, label %1132, label %1131

1131:                                             ; preds = %1128
  call void @_ZdaPv(ptr noundef %1129) #11
  br label %1132

1132:                                             ; preds = %1131, %1128
  %1133 = load ptr, ptr %12, align 8, !tbaa !5
  %1134 = icmp eq ptr %1133, null
  br i1 %1134, label %1136, label %1135

1135:                                             ; preds = %1132
  call void @_ZdaPv(ptr noundef %1133) #11
  br label %1136

1136:                                             ; preds = %1135, %1132
  store i32 0, ptr %4, align 4
  store i32 1, ptr %15, align 4
  br label %1147

1137:                                             ; preds = %820
  call void @_ZN4xmem10printUsageISoEEvRT_PKNS_10DescriptorEiii(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @_ZN4xmemL5usageE, i32 noundef 80, i32 noundef 50, i32 noundef 75)
  br label %1138

1138:                                             ; preds = %1137, %770, %759, %748, %733, %635, %614, %569, %557, %514, %494, %480, %450, %359, %277, %260, %248, %168, %131, %117
  %1139 = load ptr, ptr %9, align 8, !tbaa !5
  %1140 = icmp eq ptr %1139, null
  br i1 %1140, label %1142, label %1141

1141:                                             ; preds = %1138
  call void @_ZdaPv(ptr noundef %1139) #11
  br label %1142

1142:                                             ; preds = %1141, %1138
  %1143 = load ptr, ptr %12, align 8, !tbaa !5
  %1144 = icmp eq ptr %1143, null
  br i1 %1144, label %1146, label %1145

1145:                                             ; preds = %1142
  call void @_ZdaPv(ptr noundef %1143) #11
  br label %1146

1146:                                             ; preds = %1145, %1142
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %15, align 4
  br label %1147

1147:                                             ; preds = %1146, %1136, %733, %557, %514, %450, %359, %277, %248, %168
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %1150

1148:                                             ; preds = %164, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %1149

1149:                                             ; preds = %1148, %120
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %1152

1150:                                             ; preds = %1147, %61
  %1151 = load i32, ptr %4, align 4
  ret i32 %1151

1152:                                             ; preds = %1149
  %1153 = load ptr, ptr %10, align 8
  %1154 = load i32, ptr %11, align 4
  %1155 = insertvalue { ptr, i32 } poison, ptr %1153, 0
  %1156 = insertvalue { ptr, i32 } %1155, i32 %1154, 1
  resume { ptr, i32 } %1156
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4xmem5StatsC2EPKNS_10DescriptorEiPPcib(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, i32 noundef, ptr noundef, i32 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #3

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4xmem6ParserC2EPKNS_10DescriptorEiPPcPNS_6OptionES7_ibi(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i1 noundef zeroext, i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4xmem6Parser5errorEv(ptr noundef nonnull align 8 dereferenceable(17)) #5 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44)) #0 align 2

; Function Attrs: nounwind
declare i64 @strtoul(ptr noundef, ptr noundef, i32 noundef) #7

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #8

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

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

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

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #6

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"_ZTSN4xmem12ConfiguratorE", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !14, i64 8, !10, i64 16, !13, i64 20, !13, i64 21, !13, i64 22, !15, i64 24, !15, i64 48, !10, i64 72, !13, i64 76, !13, i64 77, !10, i64 80, !20, i64 88, !13, i64 120, !13, i64 121, !13, i64 122, !13, i64 123, !13, i64 124, !13, i64 125, !13, i64 126, !13, i64 127, !13, i64 128, !13, i64 129, !13, i64 130, !13, i64 131, !13, i64 132, !13, i64 133, !13, i64 134}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"_ZTSNSt7__cxx114listIjSaIjEEE", !16, i64 0}
!16 = !{!"_ZTSNSt7__cxx1110_List_baseIjSaIjEEE", !17, i64 0}
!17 = !{!"_ZTSNSt7__cxx1110_List_baseIjSaIjEE10_List_implE", !18, i64 0}
!18 = !{!"_ZTSNSt8__detail17_List_node_headerE", !19, i64 0, !14, i64 16}
!19 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !14, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!25, !10, i64 4}
!25 = !{!"_ZTSN4xmem5StatsE", !10, i64 0, !10, i64 4}
!26 = !{!25, !10, i64 0}
!27 = !{!28, !6, i64 24}
!28 = !{!"_ZTSN4xmem6OptionE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40}
!29 = !{!28, !10, i64 40}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!12, !13, i64 121}
!33 = !{!13, !13, i64 0}
!34 = !{!12, !13, i64 3}
!35 = !{!12, !13, i64 4}
!36 = !{!12, !13, i64 1}
!37 = !{!28, !6, i64 32}
!38 = !{!12, !13, i64 2}
!39 = distinct !{!39, !31}
!40 = !{!14, !14, i64 0}
!41 = !{!12, !14, i64 8}
!42 = !{!12, !13, i64 22}
!43 = distinct !{!43, !31}
!44 = distinct !{!44, !31}
!45 = distinct !{!45, !31}
!46 = distinct !{!46, !31}
!47 = distinct !{!47, !31}
!48 = distinct !{!48, !31}
!49 = !{!12, !13, i64 122}
!50 = !{!12, !10, i64 16}
!51 = !{!12, !13, i64 20}
!52 = !{!12, !13, i64 21}
!53 = distinct !{!53, !31}
!54 = !{!12, !10, i64 72}
!55 = !{!12, !13, i64 76}
!56 = !{!12, !13, i64 77}
!57 = !{!12, !10, i64 80}
!58 = !{!12, !13, i64 120}
!59 = !{!12, !13, i64 123}
!60 = !{!12, !13, i64 124}
!61 = !{!12, !13, i64 125}
!62 = !{!12, !13, i64 126}
!63 = !{!12, !13, i64 127}
!64 = !{!12, !13, i64 128}
!65 = !{!12, !13, i64 129}
!66 = !{!12, !13, i64 130}
!67 = !{!12, !13, i64 131}
!68 = !{!12, !13, i64 132}
!69 = !{!12, !13, i64 133}
!70 = !{!12, !13, i64 134}
!71 = distinct !{!71, !31}
!72 = distinct !{!72, !31}
!73 = distinct !{!73, !31}


; 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 }
%"struct.xmem::Descriptor" = type { i32, i32, ptr, ptr, ptr, ptr }
%"struct.xmem::Stats" = type { i32, i32 }
%"class.xmem::Parser" = type <{ i32, i32, ptr, i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.0" = type { i8 }
%"struct.std::_List_const_iterator" = type { ptr }
%"class.xmem::Option" = type <{ ptr, ptr, ptr, ptr, ptr, i32, [4 x i8] }>

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [89 x i8], align 1
@_ZN4xmemL5usageE = external hidden constant [24 x %"struct.xmem::Descriptor"], align 16
@.str.1 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZN4xmem9g_verboseE = external local_unnamed_addr global i8, align 1
@.str.4 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [130 x i8], align 1
@_ZN4xmem16g_num_numa_nodesE = external local_unnamed_addr global i32, align 4
@.str.9 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [232 x i8], align 1
@_ZN4xmem18g_num_logical_cpusE = external local_unnamed_addr global i32, align 4
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZN4xmem21g_starting_test_indexE = external local_unnamed_addr global i32, align 4
@_ZN4xmem12g_test_indexE = external local_unnamed_addr global i32, align 4
@.str.21 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [183 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@_ZN4xmem17g_large_page_sizeE = external local_unnamed_addr global i64, align 8
@.str.64 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN4xmem11g_page_sizeE = external local_unnamed_addr global i64, align 8
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4xmem12Configurator18configureFromInputEiPPc(ptr noundef nonnull align 8 dereferenceable(135) %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"struct.xmem::Stats", align 4
  %5 = alloca %"class.xmem::Parser", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.0", align 1
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"struct.std::_List_const_iterator", align 8
  %15 = alloca %"struct.std::_List_const_iterator", align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"struct.std::_List_const_iterator", align 8
  %20 = alloca %"struct.std::_List_const_iterator", align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"struct.std::_List_const_iterator", align 8
  %28 = alloca %"struct.std::_List_const_iterator", align 8
  %29 = alloca %"struct.std::_List_const_iterator", align 8
  %30 = alloca %"struct.std::_List_const_iterator", align 8
  %31 = load i8, ptr %0, align 8, !tbaa !5, !range !20, !noundef !21
  %32 = trunc nuw i8 %31 to i1
  br i1 %32, label %33, label %36

33:                                               ; preds = %3
  %34 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str)
  %35 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %716

36:                                               ; preds = %3
  %37 = icmp sgt i32 %1, 0
  %.neg = sext i1 %37 to i32
  %38 = add i32 %.neg, %1
  %39 = icmp sgt i32 %38, 0
  %40 = zext i1 %39 to i64
  %41 = getelementptr inbounds ptr, ptr %2, i64 %40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  call void @_ZN4xmem5StatsC2EPKNS_10DescriptorEiPPcib(ptr noundef nonnull align 4 dereferenceable(8) %4, ptr noundef nonnull @_ZN4xmemL5usageE, i32 noundef %38, ptr noundef %41, i32 noundef 0, i1 noundef zeroext false)
  %42 = getelementptr inbounds i8, ptr %4, i64 4
  %43 = load i32, ptr %42, align 4, !tbaa !22
  %44 = zext i32 %43 to i64
  %45 = mul nuw nsw i64 %44, 48
  %46 = call noalias noundef nonnull ptr @_Znam(i64 noundef %45) #10
  %47 = icmp eq i32 %43, 0
  br i1 %47, label %.loopexit221, label %48

48:                                               ; preds = %36
  %49 = getelementptr inbounds %"class.xmem::Option", ptr %46, i64 %44
  br label %50

50:                                               ; preds = %50, %48
  %51 = phi ptr [ %46, %48 ], [ %52, %50 ]
  call void @_ZN4xmem6OptionC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %51)
  %52 = getelementptr inbounds i8, ptr %51, i64 48
  %53 = icmp eq ptr %52, %49
  br i1 %53, label %.loopexit221, label %50

.loopexit221:                                     ; preds = %50, %36
  %54 = load i32, ptr %4, align 4, !tbaa !24
  %55 = zext i32 %54 to i64
  %56 = mul nuw nsw i64 %55, 48
  %57 = call noalias noundef nonnull ptr @_Znam(i64 noundef %56) #10
  %58 = icmp eq i32 %54, 0
  br i1 %58, label %.loopexit, label %59

59:                                               ; preds = %.loopexit221
  %60 = getelementptr inbounds %"class.xmem::Option", ptr %57, i64 %55
  br label %61

61:                                               ; preds = %61, %59
  %62 = phi ptr [ %57, %59 ], [ %63, %61 ]
  call void @_ZN4xmem6OptionC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %62)
  %63 = getelementptr inbounds i8, ptr %62, i64 48
  %64 = icmp eq ptr %63, %60
  br i1 %64, label %.loopexit, label %61

.loopexit:                                        ; preds = %61, %.loopexit221
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #9
  call void @_ZN4xmem6ParserC2EPKNS_10DescriptorEiPPcPNS_6OptionES7_ibi(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull @_ZN4xmemL5usageE, i32 noundef %38, ptr noundef %41, ptr noundef nonnull %46, ptr noundef nonnull %57, i32 noundef 0, i1 noundef zeroext false, i32 noundef -1)
  %65 = call noundef zeroext i1 @_ZN4xmem6Parser5errorEv(ptr noundef nonnull align 8 dereferenceable(17) %5)
  br i1 %65, label %66, label %69

66:                                               ; preds = %.loopexit
  %67 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.1)
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

69:                                               ; preds = %.loopexit
  %70 = call noundef i32 @_ZN4xmem6Parser15nonOptionsCountEv(ptr noundef nonnull align 8 dereferenceable(17) %5)
  %71 = icmp sgt i32 %70, 0
  br i1 %71, label %72, label %75

72:                                               ; preds = %69
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.2)
  %74 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

75:                                               ; preds = %69
  %76 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %46)
  %.not = icmp eq ptr %76, null
  br i1 %.not, label %94, label %77

77:                                               ; preds = %75
  %78 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.3)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #9
  %79 = getelementptr inbounds i8, ptr %76, i64 24
  %80 = load ptr, ptr %79, align 8, !tbaa !25
  %81 = getelementptr inbounds i8, ptr %76, i64 40
  %82 = load i32, ptr %81, align 8, !tbaa !27
  %83 = sext i32 %82 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %80, i64 noundef %83, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %84 unwind label %88

84:                                               ; preds = %77
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %86 unwind label %90

86:                                               ; preds = %84
  %87 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %93 unwind label %90

88:                                               ; preds = %77
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %92

90:                                               ; preds = %86, %84
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %92

92:                                               ; preds = %90, %88
  %.pn = phi { ptr, i32 } [ %91, %90 ], [ %89, %88 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  resume { ptr, i32 } %.pn

93:                                               ; preds = %86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  br label %715

94:                                               ; preds = %75
  %95 = getelementptr inbounds i8, ptr %46, i64 672
  %96 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %95)
  %.not138 = icmp eq ptr %96, null
  br i1 %.not138, label %99, label %97

97:                                               ; preds = %94
  %98 = getelementptr inbounds i8, ptr %0, i64 121
  store i8 1, ptr %98, align 1, !tbaa !28
  store i8 1, ptr @_ZN4xmem9g_verboseE, align 1, !tbaa !29
  br label %99

99:                                               ; preds = %97, %94
  %100 = getelementptr inbounds i8, ptr %46, i64 384
  %101 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %100)
  %.not139 = icmp eq ptr %101, null
  br i1 %.not139, label %102, label %108

102:                                              ; preds = %99
  %103 = getelementptr inbounds i8, ptr %46, i64 576
  %104 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %103)
  %.not140 = icmp eq ptr %104, null
  br i1 %.not140, label %105, label %108

105:                                              ; preds = %102
  %106 = getelementptr inbounds i8, ptr %46, i64 144
  %107 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %106)
  %.not141 = icmp eq ptr %107, null
  br i1 %.not141, label %112, label %108

108:                                              ; preds = %105, %102, %99
  %109 = getelementptr inbounds i8, ptr %0, i64 3
  store i8 0, ptr %109, align 1, !tbaa !30
  %110 = getelementptr inbounds i8, ptr %0, i64 4
  store i8 0, ptr %110, align 4, !tbaa !31
  %111 = getelementptr inbounds i8, ptr %0, i64 1
  store i8 0, ptr %111, align 1, !tbaa !32
  br label %112

112:                                              ; preds = %108, %105
  %113 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %100)
  %.not142 = icmp eq ptr %113, null
  br i1 %.not142, label %116, label %114

114:                                              ; preds = %112
  %115 = getelementptr inbounds i8, ptr %0, i64 3
  store i8 1, ptr %115, align 1, !tbaa !30
  br label %116

116:                                              ; preds = %114, %112
  %117 = getelementptr inbounds i8, ptr %46, i64 576
  %118 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %117)
  %.not143 = icmp eq ptr %118, null
  br i1 %.not143, label %121, label %119

119:                                              ; preds = %116
  %120 = getelementptr inbounds i8, ptr %0, i64 4
  store i8 1, ptr %120, align 4, !tbaa !31
  br label %121

121:                                              ; preds = %119, %116
  %122 = getelementptr inbounds i8, ptr %46, i64 144
  %123 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %122)
  %.not144 = icmp eq ptr %123, null
  br i1 %.not144, label %.thread190, label %124

124:                                              ; preds = %121
  %125 = getelementptr inbounds i8, ptr %0, i64 1
  store i8 1, ptr %125, align 1, !tbaa !32
  %126 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %122)
  %.not145224 = icmp eq ptr %126, null
  br i1 %.not145224, label %.thread190, label %.lr.ph

.lr.ph:                                           ; preds = %124
  %127 = getelementptr inbounds i8, ptr %0, i64 2
  br label %128

128:                                              ; preds = %.lr.ph, %133
  %.0129225 = phi ptr [ %126, %.lr.ph ], [ %134, %133 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  store ptr null, ptr %8, align 8, !tbaa !33
  %129 = getelementptr inbounds i8, ptr %.0129225, i64 32
  %130 = load ptr, ptr %129, align 8, !tbaa !34
  %131 = call i64 @strtoul(ptr noundef %130, ptr noundef nonnull %8, i32 noundef 10) #9
  %132 = trunc i64 %131 to i32
  %cond4 = icmp eq i32 %132, 0
  br i1 %cond4, label %133, label %135

133:                                              ; preds = %128
  store i8 1, ptr %127, align 2, !tbaa !35
  %134 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %.0129225)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  %.not145 = icmp eq ptr %134, null
  br i1 %.not145, label %.thread190, label %128, !llvm.loop !36

135:                                              ; preds = %128
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.4)
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %136, i32 noundef %132)
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull @.str.5)
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull @.str.6)
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %140, i32 noundef 0)
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br label %715

.thread190:                                       ; preds = %133, %124, %121
  %143 = getelementptr inbounds i8, ptr %46, i64 720
  %144 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %143)
  %.not146 = icmp eq ptr %144, null
  br i1 %.not146, label %157, label %145

145:                                              ; preds = %.thread190
  %146 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %0, ptr noundef nonnull %143)
  br i1 %146, label %147, label %715

147:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  store ptr null, ptr %9, align 8, !tbaa !33
  %148 = getelementptr inbounds i8, ptr %46, i64 752
  %149 = load ptr, ptr %148, align 8, !tbaa !34
  %150 = call i64 @strtoul(ptr noundef %149, ptr noundef nonnull %9, i32 noundef 10) #9
  %151 = and i64 %150, 3
  %.not147 = icmp eq i64 %151, 0
  br i1 %.not147, label %.thread192, label %154

.thread192:                                       ; preds = %147
  %152 = shl i64 %150, 10
  %153 = getelementptr inbounds i8, ptr %0, i64 8
  store i64 %152, ptr %153, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %157

154:                                              ; preds = %147
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.7)
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %715

157:                                              ; preds = %.thread192, %.thread190
  %158 = getelementptr inbounds i8, ptr %46, i64 624
  %159 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %158)
  %.not148 = icmp eq ptr %159, null
  br i1 %.not148, label %164, label %160

160:                                              ; preds = %157
  %161 = getelementptr inbounds i8, ptr %0, i64 22
  store i8 0, ptr %161, align 2, !tbaa !39
  %162 = getelementptr inbounds i8, ptr %0, i64 24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #9
  store i32 0, ptr %10, align 4, !tbaa !40
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %162, ptr noundef nonnull align 4 dereferenceable(4) %10)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #9
  %163 = getelementptr inbounds i8, ptr %0, i64 48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #9
  store i32 0, ptr %11, align 4, !tbaa !40
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %163, ptr noundef nonnull align 4 dereferenceable(4) %11)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9
  br label %164

164:                                              ; preds = %160, %157
  %165 = getelementptr inbounds i8, ptr %46, i64 768
  %166 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %165)
  %.not149 = icmp eq ptr %166, null
  %167 = getelementptr inbounds i8, ptr %0, i64 22
  %168 = load i8, ptr %167, align 2, !tbaa !39, !range !20, !noundef !21
  %169 = trunc nuw i8 %168 to i1
  br i1 %.not149, label %206, label %170

170:                                              ; preds = %164
  br i1 %169, label %.split, label %171

171:                                              ; preds = %170
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.8)
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %.thread198

.split:                                           ; preds = %170
  %174 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %165)
  %.not150228 = icmp eq ptr %174, null
  br i1 %.not150228, label %._crit_edge231, label %.lr.ph230

.lr.ph230:                                        ; preds = %.split
  %175 = getelementptr inbounds i8, ptr %0, i64 24
  br label %176

176:                                              ; preds = %.lr.ph230, %194
  %.0127229 = phi ptr [ %174, %.lr.ph230 ], [ %195, %194 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  store ptr null, ptr %12, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #9
  %177 = getelementptr inbounds i8, ptr %.0127229, i64 32
  %178 = load ptr, ptr %177, align 8, !tbaa !34
  %179 = call i64 @strtoul(ptr noundef %178, ptr noundef nonnull %12, i32 noundef 10) #9
  %180 = trunc i64 %179 to i32
  store i32 %180, ptr %13, align 4, !tbaa !40
  %181 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %.not151 = icmp ugt i32 %181, %180
  br i1 %.not151, label %182, label %197

182:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %183 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #9
  store ptr %183, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %184 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #9
  store ptr %184, ptr %15, align 8
  %185 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  br i1 %185, label %.lr.ph227, label %.critedge

._crit_edge:                                      ; preds = %.lr.ph227
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  br i1 %spec.select, label %194, label %193

.lr.ph227:                                        ; preds = %182, %.lr.ph227
  %.0125226 = phi i1 [ %spec.select, %.lr.ph227 ], [ false, %182 ]
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  %187 = load i32, ptr %186, align 4, !tbaa !40
  %188 = load i32, ptr %13, align 4, !tbaa !40
  %189 = icmp eq i32 %187, %188
  %spec.select = select i1 %189, i1 true, i1 %.0125226
  %190 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %14, i32 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %191 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #9
  store ptr %191, ptr %15, align 8
  %192 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  br i1 %192, label %.lr.ph227, label %._crit_edge, !llvm.loop !41

.critedge:                                        ; preds = %182
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  br label %193

193:                                              ; preds = %.critedge, %._crit_edge
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %175, ptr noundef nonnull align 4 dereferenceable(4) %13)
  br label %194

194:                                              ; preds = %._crit_edge, %193
  %195 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %.0127229)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  %.not150 = icmp eq ptr %195, null
  br i1 %.not150, label %._crit_edge231, label %176

._crit_edge231:                                   ; preds = %194, %.split
  %196 = getelementptr inbounds i8, ptr %0, i64 24
  call void @_ZNSt7__cxx114listIjSaIjEE4sortEv(ptr noundef nonnull align 8 dereferenceable(24) %196)
  br label %.thread198

197:                                              ; preds = %176
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.9)
  %199 = load i32, ptr %13, align 4, !tbaa !40
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %198, i32 noundef %199)
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull @.str.10)
  %202 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %203 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %201, i32 noundef %202)
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @.str.11)
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %715

206:                                              ; preds = %164
  br i1 %169, label %207, label %.thread198

207:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !40
  %208 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %.not263 = icmp eq i32 %208, 0
  br i1 %.not263, label %._crit_edge234, label %.lr.ph233

.lr.ph233:                                        ; preds = %207
  %209 = getelementptr inbounds i8, ptr %0, i64 24
  br label %210

._crit_edge234:                                   ; preds = %210, %207
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  br label %.thread198

210:                                              ; preds = %.lr.ph233, %210
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef nonnull align 4 dereferenceable(4) %16)
  %211 = load i32, ptr %16, align 4, !tbaa !40
  %212 = add i32 %211, 1
  store i32 %212, ptr %16, align 4, !tbaa !40
  %213 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %214 = icmp ult i32 %212, %213
  br i1 %214, label %210, label %._crit_edge234, !llvm.loop !42

.thread198:                                       ; preds = %._crit_edge231, %206, %._crit_edge234, %171
  %215 = getelementptr inbounds i8, ptr %46, i64 864
  %216 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %215)
  %.not152 = icmp eq ptr %216, null
  %217 = getelementptr inbounds i8, ptr %0, i64 22
  %218 = load i8, ptr %217, align 2, !tbaa !39, !range !20, !noundef !21
  %219 = trunc nuw i8 %218 to i1
  br i1 %.not152, label %256, label %220

220:                                              ; preds = %.thread198
  br i1 %219, label %.split240, label %221

221:                                              ; preds = %220
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.12)
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %.thread204

.split240:                                        ; preds = %220
  %224 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %215)
  %.not154241 = icmp eq ptr %224, null
  br i1 %.not154241, label %._crit_edge244, label %.lr.ph243

.lr.ph243:                                        ; preds = %.split240
  %225 = getelementptr inbounds i8, ptr %0, i64 48
  br label %226

226:                                              ; preds = %.lr.ph243, %244
  %.0121242 = phi ptr [ %224, %.lr.ph243 ], [ %245, %244 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  store ptr null, ptr %17, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  %227 = getelementptr inbounds i8, ptr %.0121242, i64 32
  %228 = load ptr, ptr %227, align 8, !tbaa !34
  %229 = call i64 @strtoul(ptr noundef %228, ptr noundef nonnull %17, i32 noundef 10) #9
  %230 = trunc i64 %229 to i32
  store i32 %230, ptr %18, align 4, !tbaa !40
  %231 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %.not155 = icmp ugt i32 %231, %230
  br i1 %.not155, label %232, label %247

232:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %233 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #9
  store ptr %233, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  %234 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #9
  store ptr %234, ptr %20, align 8
  %235 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br i1 %235, label %.lr.ph237, label %.critedge262

._crit_edge238:                                   ; preds = %.lr.ph237
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  br i1 %spec.select180, label %244, label %243

.lr.ph237:                                        ; preds = %232, %.lr.ph237
  %.0119235 = phi i1 [ %spec.select180, %.lr.ph237 ], [ false, %232 ]
  %236 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #9
  %237 = load i32, ptr %236, align 4, !tbaa !40
  %238 = load i32, ptr %18, align 4, !tbaa !40
  %239 = icmp eq i32 %237, %238
  %spec.select180 = select i1 %239, i1 true, i1 %.0119235
  %240 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  %241 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #9
  store ptr %241, ptr %20, align 8
  %242 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br i1 %242, label %.lr.ph237, label %._crit_edge238, !llvm.loop !43

.critedge262:                                     ; preds = %232
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  br label %243

243:                                              ; preds = %.critedge262, %._crit_edge238
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %225, ptr noundef nonnull align 4 dereferenceable(4) %18)
  br label %244

244:                                              ; preds = %._crit_edge238, %243
  %245 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %.0121242)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  %.not154 = icmp eq ptr %245, null
  br i1 %.not154, label %._crit_edge244, label %226

._crit_edge244:                                   ; preds = %244, %.split240
  %246 = getelementptr inbounds i8, ptr %0, i64 48
  call void @_ZNSt7__cxx114listIjSaIjEE4sortEv(ptr noundef nonnull align 8 dereferenceable(24) %246)
  br label %.thread204

247:                                              ; preds = %226
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.13)
  %249 = load i32, ptr %18, align 4, !tbaa !40
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %248, i32 noundef %249)
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull @.str.10)
  %252 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %251, i32 noundef %252)
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull @.str.11)
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  br label %715

256:                                              ; preds = %.thread198
  br i1 %219, label %257, label %.thread204

257:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #9
  store i32 0, ptr %21, align 4, !tbaa !40
  %258 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %.not264 = icmp eq i32 %258, 0
  br i1 %.not264, label %._crit_edge247, label %.lr.ph246

.lr.ph246:                                        ; preds = %257
  %259 = getelementptr inbounds i8, ptr %0, i64 48
  br label %260

._crit_edge247:                                   ; preds = %260, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  br label %.thread204

260:                                              ; preds = %.lr.ph246, %260
  call void @_ZNSt7__cxx114listIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %259, ptr noundef nonnull align 4 dereferenceable(4) %21)
  %261 = load i32, ptr %21, align 4, !tbaa !40
  %262 = add i32 %261, 1
  store i32 %262, ptr %21, align 4, !tbaa !40
  %263 = load i32, ptr @_ZN4xmem16g_num_numa_nodesE, align 4, !tbaa !40
  %264 = icmp ult i32 %262, %263
  br i1 %264, label %260, label %._crit_edge247, !llvm.loop !44

.thread204:                                       ; preds = %._crit_edge244, %256, %._crit_edge247, %221
  %265 = getelementptr inbounds i8, ptr %46, i64 816
  %266 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %265)
  %.not156 = icmp eq ptr %266, null
  br i1 %.not156, label %276, label %267

267:                                              ; preds = %.thread204
  %268 = getelementptr inbounds i8, ptr %0, i64 22
  %269 = load i8, ptr %268, align 2, !tbaa !39, !range !20, !noundef !21
  %270 = trunc nuw i8 %269 to i1
  br i1 %270, label %271, label %274

271:                                              ; preds = %267
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.14)
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

274:                                              ; preds = %267
  %275 = getelementptr inbounds i8, ptr %0, i64 122
  store i8 1, ptr %275, align 2, !tbaa !45
  br label %276

276:                                              ; preds = %274, %.thread204
  %277 = getelementptr inbounds i8, ptr %46, i64 336
  %278 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %277)
  %.not157 = icmp eq ptr %278, null
  br i1 %.not157, label %295, label %279

279:                                              ; preds = %276
  %280 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %0, ptr noundef nonnull %277)
  br i1 %280, label %281, label %715

281:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  store ptr null, ptr %22, align 8, !tbaa !33
  %282 = getelementptr inbounds i8, ptr %46, i64 368
  %283 = load ptr, ptr %282, align 8, !tbaa !34
  %284 = call i64 @strtoul(ptr noundef %283, ptr noundef nonnull %22, i32 noundef 10) #9
  %285 = trunc i64 %284 to i32
  %286 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 %285, ptr %286, align 8, !tbaa !46
  %287 = load i32, ptr @_ZN4xmem18g_num_logical_cpusE, align 4, !tbaa !40
  %288 = icmp ult i32 %287, %285
  br i1 %288, label %289, label %.thread206

.thread206:                                       ; preds = %281
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br label %295

289:                                              ; preds = %281
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.15)
  %291 = load i32, ptr @_ZN4xmem18g_num_logical_cpusE, align 4, !tbaa !40
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %290, i32 noundef %291)
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %292, ptr noundef nonnull @.str.16)
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br label %715

295:                                              ; preds = %.thread206, %276
  %296 = getelementptr inbounds i8, ptr %46, i64 96
  %297 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %296)
  %.not158 = icmp eq ptr %297, null
  br i1 %.not158, label %.thread213, label %298

298:                                              ; preds = %295
  %299 = getelementptr inbounds i8, ptr %0, i64 20
  store i8 0, ptr %299, align 4, !tbaa !47
  %300 = getelementptr inbounds i8, ptr %0, i64 21
  store i8 0, ptr %300, align 1, !tbaa !48
  %301 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %296)
  %.not159248 = icmp eq ptr %301, null
  br i1 %.not159248, label %.thread213, label %.lr.ph251

.lr.ph251:                                        ; preds = %298, %308
  %.0116249 = phi ptr [ %309, %308 ], [ %301, %298 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  store ptr null, ptr %23, align 8, !tbaa !33
  %302 = getelementptr inbounds i8, ptr %.0116249, i64 32
  %303 = load ptr, ptr %302, align 8, !tbaa !34
  %304 = call i64 @strtoul(ptr noundef %303, ptr noundef nonnull %23, i32 noundef 10) #9
  %305 = trunc i64 %304 to i32
  switch i32 %305, label %310 [
    i32 32, label %306
    i32 64, label %307
  ]

306:                                              ; preds = %.lr.ph251
  store i8 1, ptr %299, align 4, !tbaa !47
  br label %308

307:                                              ; preds = %.lr.ph251
  store i8 1, ptr %300, align 1, !tbaa !48
  br label %308

308:                                              ; preds = %306, %307
  %309 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %.0116249)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  %.not159 = icmp eq ptr %309, null
  br i1 %.not159, label %.thread213, label %.lr.ph251, !llvm.loop !49

310:                                              ; preds = %.lr.ph251
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.17)
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %311, i32 noundef %305)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull @.str.18)
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull @.str.19)
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %314, ptr noundef nonnull @.str.20)
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br label %715

.thread213:                                       ; preds = %308, %298, %295
  %317 = getelementptr inbounds i8, ptr %46, i64 432
  %318 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %317)
  %.not160 = icmp eq ptr %318, null
  br i1 %.not160, label %327, label %319

319:                                              ; preds = %.thread213
  %320 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %0, ptr noundef nonnull %317)
  br i1 %320, label %321, label %715

321:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  store ptr null, ptr %24, align 8, !tbaa !33
  %322 = getelementptr inbounds i8, ptr %46, i64 464
  %323 = load ptr, ptr %322, align 8, !tbaa !34
  %324 = call i64 @strtoul(ptr noundef %323, ptr noundef nonnull %24, i32 noundef 10) #9
  %325 = trunc i64 %324 to i32
  %326 = getelementptr inbounds i8, ptr %0, i64 72
  store i32 %325, ptr %326, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %327

327:                                              ; preds = %321, %.thread213
  %328 = getelementptr inbounds i8, ptr %46, i64 480
  %329 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %328)
  %.not161 = icmp eq ptr %329, null
  br i1 %.not161, label %330, label %333

330:                                              ; preds = %327
  %331 = getelementptr inbounds i8, ptr %46, i64 528
  %332 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %331)
  %.not162 = icmp eq ptr %332, null
  br i1 %.not162, label %336, label %333

333:                                              ; preds = %330, %327
  %334 = getelementptr inbounds i8, ptr %0, i64 76
  store i8 0, ptr %334, align 4, !tbaa !51
  %335 = getelementptr inbounds i8, ptr %0, i64 77
  store i8 0, ptr %335, align 1, !tbaa !52
  br label %336

336:                                              ; preds = %333, %330
  %337 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %328)
  %.not163 = icmp eq ptr %337, null
  br i1 %.not163, label %340, label %338

338:                                              ; preds = %336
  %339 = getelementptr inbounds i8, ptr %0, i64 76
  store i8 1, ptr %339, align 4, !tbaa !51
  br label %340

340:                                              ; preds = %338, %336
  %341 = getelementptr inbounds i8, ptr %46, i64 528
  %342 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %341)
  %.not164 = icmp eq ptr %342, null
  br i1 %.not164, label %345, label %343

343:                                              ; preds = %340
  %344 = getelementptr inbounds i8, ptr %0, i64 77
  store i8 1, ptr %344, align 1, !tbaa !52
  br label %345

345:                                              ; preds = %343, %340
  %346 = getelementptr inbounds i8, ptr %46, i64 288
  %347 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %346)
  %.not165 = icmp eq ptr %347, null
  br i1 %.not165, label %._crit_edge270, label %348

._crit_edge270:                                   ; preds = %345
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 80
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !53
  br label %356

348:                                              ; preds = %345
  %349 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %0, ptr noundef nonnull %346)
  br i1 %349, label %350, label %715

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  store ptr null, ptr %25, align 8, !tbaa !33
  %351 = getelementptr inbounds i8, ptr %46, i64 320
  %352 = load ptr, ptr %351, align 8, !tbaa !34
  %353 = call i64 @strtoul(ptr noundef %352, ptr noundef nonnull %25, i32 noundef 10) #9
  %354 = trunc i64 %353 to i32
  %355 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 %354, ptr %355, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  br label %356

356:                                              ; preds = %._crit_edge270, %350
  %357 = phi i32 [ %.pre, %._crit_edge270 ], [ %354, %350 ]
  %358 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 %357, ptr @_ZN4xmem21g_starting_test_indexE, align 4, !tbaa !40
  store i32 %357, ptr @_ZN4xmem12g_test_indexE, align 4, !tbaa !40
  %359 = getelementptr inbounds i8, ptr %46, i64 192
  %360 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %359)
  %.not166 = icmp eq ptr %360, null
  br i1 %.not166, label %369, label %361

361:                                              ; preds = %356
  %362 = call noundef zeroext i1 @_ZNK4xmem12Configurator30check_single_option_occurrenceEPNS_6OptionE(ptr noundef nonnull align 8 dereferenceable(135) %0, ptr noundef nonnull %359)
  br i1 %362, label %363, label %715

363:                                              ; preds = %361
  %364 = getelementptr inbounds i8, ptr %46, i64 224
  %365 = load ptr, ptr %364, align 8, !tbaa !34
  %366 = getelementptr inbounds i8, ptr %0, i64 88
  %367 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef %365)
  %368 = getelementptr inbounds i8, ptr %0, i64 120
  store i8 1, ptr %368, align 8, !tbaa !54
  br label %369

369:                                              ; preds = %363, %356
  %370 = getelementptr inbounds i8, ptr %46, i64 912
  %371 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %370)
  %.not167 = icmp eq ptr %371, null
  br i1 %.not167, label %372, label %375

372:                                              ; preds = %369
  %373 = getelementptr inbounds i8, ptr %46, i64 960
  %374 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %373)
  %.not168 = icmp eq ptr %374, null
  br i1 %.not168, label %378, label %375

375:                                              ; preds = %372, %369
  %376 = getelementptr inbounds i8, ptr %0, i64 123
  store i8 0, ptr %376, align 1, !tbaa !55
  %377 = getelementptr inbounds i8, ptr %0, i64 124
  store i8 0, ptr %377, align 4, !tbaa !56
  br label %378

378:                                              ; preds = %375, %372
  %379 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %370)
  %.not169 = icmp eq ptr %379, null
  br i1 %.not169, label %382, label %380

380:                                              ; preds = %378
  %381 = getelementptr inbounds i8, ptr %0, i64 123
  store i8 1, ptr %381, align 1, !tbaa !55
  br label %382

382:                                              ; preds = %380, %378
  %383 = getelementptr inbounds i8, ptr %46, i64 960
  %384 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %383)
  %.not170 = icmp eq ptr %384, null
  br i1 %.not170, label %387, label %385

385:                                              ; preds = %382
  %386 = getelementptr inbounds i8, ptr %0, i64 124
  store i8 1, ptr %386, align 4, !tbaa !56
  br label %387

387:                                              ; preds = %385, %382
  %388 = getelementptr inbounds i8, ptr %46, i64 1008
  %389 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %388)
  %.not171 = icmp eq ptr %389, null
  br i1 %.not171, label %.thread219, label %390

390:                                              ; preds = %387
  %391 = getelementptr inbounds i8, ptr %0, i64 125
  %392 = getelementptr inbounds i8, ptr %0, i64 126
  %393 = getelementptr inbounds i8, ptr %0, i64 127
  %394 = getelementptr inbounds i8, ptr %0, i64 128
  %395 = getelementptr inbounds i8, ptr %0, i64 129
  %396 = getelementptr inbounds i8, ptr %0, i64 130
  %397 = getelementptr inbounds i8, ptr %0, i64 131
  %398 = getelementptr inbounds i8, ptr %0, i64 132
  %399 = getelementptr inbounds i8, ptr %0, i64 133
  %400 = getelementptr inbounds i8, ptr %0, i64 134
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %391, i8 0, i64 10, i1 false)
  %401 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %388)
  %.not172252 = icmp eq ptr %401, null
  br i1 %.not172252, label %.thread219, label %.lr.ph255

.lr.ph255:                                        ; preds = %390, %416
  %.0113253 = phi ptr [ %417, %416 ], [ %401, %390 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  store ptr null, ptr %26, align 8, !tbaa !33
  %402 = getelementptr inbounds i8, ptr %.0113253, i64 32
  %403 = load ptr, ptr %402, align 8, !tbaa !34
  %404 = call i64 @strtoul(ptr noundef %403, ptr noundef nonnull %26, i32 noundef 10) #9
  %405 = trunc i64 %404 to i32
  switch i32 %405, label %418 [
    i32 1, label %406
    i32 -1, label %407
    i32 2, label %408
    i32 -2, label %409
    i32 4, label %410
    i32 -4, label %411
    i32 8, label %412
    i32 -8, label %413
    i32 16, label %414
    i32 -16, label %415
  ]

406:                                              ; preds = %.lr.ph255
  store i8 1, ptr %391, align 1, !tbaa !57
  br label %416

407:                                              ; preds = %.lr.ph255
  store i8 1, ptr %392, align 2, !tbaa !58
  br label %416

408:                                              ; preds = %.lr.ph255
  store i8 1, ptr %393, align 1, !tbaa !59
  br label %416

409:                                              ; preds = %.lr.ph255
  store i8 1, ptr %394, align 8, !tbaa !60
  br label %416

410:                                              ; preds = %.lr.ph255
  store i8 1, ptr %395, align 1, !tbaa !61
  br label %416

411:                                              ; preds = %.lr.ph255
  store i8 1, ptr %396, align 2, !tbaa !62
  br label %416

412:                                              ; preds = %.lr.ph255
  store i8 1, ptr %397, align 1, !tbaa !63
  br label %416

413:                                              ; preds = %.lr.ph255
  store i8 1, ptr %398, align 4, !tbaa !64
  br label %416

414:                                              ; preds = %.lr.ph255
  store i8 1, ptr %399, align 1, !tbaa !65
  br label %416

415:                                              ; preds = %.lr.ph255
  store i8 1, ptr %400, align 2, !tbaa !66
  br label %416

416:                                              ; preds = %406, %407, %408, %409, %410, %411, %412, %413, %414, %415
  %417 = call noundef ptr @_ZN4xmem6Option4nextEv(ptr noundef nonnull align 8 dereferenceable(44) %.0113253)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  %.not172 = icmp eq ptr %417, null
  br i1 %.not172, label %.thread219, label %.lr.ph255, !llvm.loop !67

418:                                              ; preds = %.lr.ph255
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.21)
  %420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %419, i32 noundef %405)
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef nonnull @.str.22)
  %422 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %715

.thread219:                                       ; preds = %416, %390, %387
  %423 = getelementptr inbounds i8, ptr %0, i64 3
  %424 = load i8, ptr %423, align 1, !tbaa !30, !range !20, !noundef !21
  %425 = trunc nuw i8 %424 to i1
  br i1 %425, label %437, label %426

426:                                              ; preds = %.thread219
  %427 = getelementptr inbounds i8, ptr %0, i64 4
  %428 = load i8, ptr %427, align 4, !tbaa !31, !range !20, !noundef !21
  %429 = trunc nuw i8 %428 to i1
  br i1 %429, label %437, label %430

430:                                              ; preds = %426
  %431 = getelementptr inbounds i8, ptr %0, i64 1
  %432 = load i8, ptr %431, align 1, !tbaa !32, !range !20, !noundef !21
  %433 = trunc nuw i8 %432 to i1
  br i1 %433, label %437, label %434

434:                                              ; preds = %430
  %435 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.23)
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

437:                                              ; preds = %430, %426, %.thread219
  %438 = getelementptr inbounds i8, ptr %0, i64 76
  %439 = load i8, ptr %438, align 4, !tbaa !51, !range !20, !noundef !21
  %440 = trunc nuw i8 %439 to i1
  br i1 %440, label %448, label %441

441:                                              ; preds = %437
  %442 = getelementptr inbounds i8, ptr %0, i64 77
  %443 = load i8, ptr %442, align 1, !tbaa !52, !range !20, !noundef !21
  %444 = trunc nuw i8 %443 to i1
  br i1 %444, label %448, label %445

445:                                              ; preds = %441
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.24)
  %447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %446, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

448:                                              ; preds = %441, %437
  %449 = getelementptr inbounds i8, ptr %0, i64 123
  %450 = load i8, ptr %449, align 1, !tbaa !55, !range !20, !noundef !21
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %459, label %452

452:                                              ; preds = %448
  %453 = getelementptr inbounds i8, ptr %0, i64 124
  %454 = load i8, ptr %453, align 4, !tbaa !56, !range !20, !noundef !21
  %455 = trunc nuw i8 %454 to i1
  br i1 %455, label %459, label %456

456:                                              ; preds = %452
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.25)
  %458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %457, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

459:                                              ; preds = %452, %448
  %460 = getelementptr inbounds i8, ptr %46, i64 48
  %461 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %460)
  %.not173 = icmp eq ptr %461, null
  br i1 %.not173, label %466, label %.thread

.thread:                                          ; preds = %459
  %462 = getelementptr inbounds i8, ptr %0, i64 1
  %463 = getelementptr inbounds i8, ptr %0, i64 20
  store i8 1, ptr %463, align 4, !tbaa !47
  %464 = getelementptr inbounds i8, ptr %0, i64 21
  store i8 1, ptr %464, align 1, !tbaa !48
  store i8 1, ptr %438, align 4, !tbaa !51
  %465 = getelementptr inbounds i8, ptr %0, i64 77
  store i8 1, ptr %465, align 1, !tbaa !52
  store i32 16843009, ptr %462, align 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %449, i8 1, i64 12, i1 false)
  br label %468

466:                                              ; preds = %459
  %.pre272 = load i8, ptr %438, align 4, !tbaa !51, !range !20
  %467 = trunc nuw i8 %.pre272 to i1
  br i1 %467, label %468, label %475

468:                                              ; preds = %.thread, %466
  %469 = getelementptr inbounds i8, ptr %0, i64 20
  %470 = load i8, ptr %469, align 4, !tbaa !47, !range !20, !noundef !21
  %471 = trunc nuw i8 %470 to i1
  br i1 %471, label %472, label %475

472:                                              ; preds = %468
  %473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.26)
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %473, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %475

475:                                              ; preds = %472, %468, %466
  %476 = getelementptr inbounds i8, ptr %46, i64 240
  %477 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %476)
  %.not174 = icmp eq ptr %477, null
  br i1 %.not174, label %478, label %714

478:                                              ; preds = %475
  %479 = call noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44) %46)
  %.not175 = icmp eq ptr %479, null
  br i1 %.not175, label %480, label %714

480:                                              ; preds = %478
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %482 = getelementptr inbounds i8, ptr %0, i64 121
  %483 = load i8, ptr %482, align 1, !tbaa !28, !range !20, !noundef !21
  %484 = trunc nuw i8 %483 to i1
  br i1 %484, label %485, label %669

485:                                              ; preds = %480
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
  %487 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.28)
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %488, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %490 = getelementptr inbounds i8, ptr %0, i64 4
  %491 = load i8, ptr %490, align 4, !tbaa !31, !range !20, !noundef !21
  %492 = trunc nuw i8 %491 to i1
  br i1 %492, label %493, label %496

493:                                              ; preds = %485
  %494 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %494, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %496

496:                                              ; preds = %493, %485
  %497 = load i8, ptr %423, align 1, !tbaa !30, !range !20, !noundef !21
  %498 = trunc nuw i8 %497 to i1
  br i1 %498, label %499, label %507

499:                                              ; preds = %496
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
  %501 = getelementptr inbounds i8, ptr %0, i64 16
  %502 = load i32, ptr %501, align 8, !tbaa !46
  %503 = icmp ugt i32 %502, 1
  %.str.31..str.32 = select i1 %503, ptr @.str.31, ptr @.str.32
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.31..str.32)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %507

507:                                              ; preds = %499, %496
  %508 = getelementptr inbounds i8, ptr %0, i64 1
  %509 = load i8, ptr %508, align 1, !tbaa !32, !range !20, !noundef !21
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %511, label %514

511:                                              ; preds = %507
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %512, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %514

514:                                              ; preds = %511, %507
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.35)
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %518 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.36)
  %519 = load i8, ptr %438, align 4, !tbaa !51, !range !20, !noundef !21
  %520 = trunc nuw i8 %519 to i1
  %.str.37..str.38 = select i1 %520, ptr @.str.37, ptr @.str.38
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.37..str.38)
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.39)
  %524 = getelementptr inbounds i8, ptr %0, i64 77
  %525 = load i8, ptr %524, align 1, !tbaa !52, !range !20, !noundef !21
  %526 = trunc nuw i8 %525 to i1
  %.str.38.sink278 = select i1 %526, ptr @.str.37, ptr @.str.38
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.38.sink278)
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.40)
  %530 = load i8, ptr %449, align 1, !tbaa !55, !range !20, !noundef !21
  %531 = trunc nuw i8 %530 to i1
  %.str.38.sink279 = select i1 %531, ptr @.str.37, ptr @.str.38
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.38.sink279)
  %533 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %534 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.41)
  %535 = getelementptr inbounds i8, ptr %0, i64 124
  %536 = load i8, ptr %535, align 4, !tbaa !56, !range !20, !noundef !21
  %537 = trunc nuw i8 %536 to i1
  %.str.38.sink280 = select i1 %537, ptr @.str.37, ptr @.str.38
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.38.sink280)
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %540 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.42)
  %541 = getelementptr inbounds i8, ptr %0, i64 20
  %542 = load i8, ptr %541, align 4, !tbaa !47, !range !20, !noundef !21
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %546

544:                                              ; preds = %514
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.43)
  br label %546

546:                                              ; preds = %544, %514
  %547 = getelementptr inbounds i8, ptr %0, i64 21
  %548 = load i8, ptr %547, align 1, !tbaa !48, !range !20, !noundef !21
  %549 = trunc nuw i8 %548 to i1
  br i1 %549, label %550, label %552

550:                                              ; preds = %546
  %551 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
  br label %552

552:                                              ; preds = %550, %546
  %553 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.44)
  %555 = getelementptr inbounds i8, ptr %0, i64 125
  %556 = load i8, ptr %555, align 1, !tbaa !57, !range !20, !noundef !21
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %560

558:                                              ; preds = %552
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.45)
  br label %560

560:                                              ; preds = %558, %552
  %561 = getelementptr inbounds i8, ptr %0, i64 126
  %562 = load i8, ptr %561, align 2, !tbaa !58, !range !20, !noundef !21
  %563 = trunc nuw i8 %562 to i1
  br i1 %563, label %564, label %566

564:                                              ; preds = %560
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.46)
  br label %566

566:                                              ; preds = %564, %560
  %567 = getelementptr inbounds i8, ptr %0, i64 127
  %568 = load i8, ptr %567, align 1, !tbaa !59, !range !20, !noundef !21
  %569 = trunc nuw i8 %568 to i1
  br i1 %569, label %570, label %572

570:                                              ; preds = %566
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.47)
  br label %572

572:                                              ; preds = %570, %566
  %573 = getelementptr inbounds i8, ptr %0, i64 128
  %574 = load i8, ptr %573, align 8, !tbaa !60, !range !20, !noundef !21
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %578

576:                                              ; preds = %572
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.48)
  br label %578

578:                                              ; preds = %576, %572
  %579 = getelementptr inbounds i8, ptr %0, i64 129
  %580 = load i8, ptr %579, align 1, !tbaa !61, !range !20, !noundef !21
  %581 = trunc nuw i8 %580 to i1
  br i1 %581, label %582, label %584

582:                                              ; preds = %578
  %583 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.49)
  br label %584

584:                                              ; preds = %582, %578
  %585 = getelementptr inbounds i8, ptr %0, i64 130
  %586 = load i8, ptr %585, align 2, !tbaa !62, !range !20, !noundef !21
  %587 = trunc nuw i8 %586 to i1
  br i1 %587, label %588, label %590

588:                                              ; preds = %584
  %589 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
  br label %590

590:                                              ; preds = %588, %584
  %591 = getelementptr inbounds i8, ptr %0, i64 131
  %592 = load i8, ptr %591, align 1, !tbaa !63, !range !20, !noundef !21
  %593 = trunc nuw i8 %592 to i1
  br i1 %593, label %594, label %596

594:                                              ; preds = %590
  %595 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.51)
  br label %596

596:                                              ; preds = %594, %590
  %597 = getelementptr inbounds i8, ptr %0, i64 132
  %598 = load i8, ptr %597, align 4, !tbaa !64, !range !20, !noundef !21
  %599 = trunc nuw i8 %598 to i1
  br i1 %599, label %600, label %602

600:                                              ; preds = %596
  %601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.52)
  br label %602

602:                                              ; preds = %600, %596
  %603 = getelementptr inbounds i8, ptr %0, i64 133
  %604 = load i8, ptr %603, align 1, !tbaa !65, !range !20, !noundef !21
  %605 = trunc nuw i8 %604 to i1
  br i1 %605, label %606, label %608

606:                                              ; preds = %602
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.53)
  br label %608

608:                                              ; preds = %606, %602
  %609 = getelementptr inbounds i8, ptr %0, i64 134
  %610 = load i8, ptr %609, align 2, !tbaa !66, !range !20, !noundef !21
  %611 = trunc nuw i8 %610 to i1
  br i1 %611, label %612, label %614

612:                                              ; preds = %608
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.54)
  br label %614

614:                                              ; preds = %612, %608
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %616 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.55)
  %617 = getelementptr inbounds i8, ptr %0, i64 16
  %618 = load i32, ptr %617, align 8, !tbaa !46
  %619 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %618)
  %620 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %619, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %621 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.56)
  %622 = getelementptr inbounds i8, ptr %0, i64 22
  %623 = load i8, ptr %622, align 2, !tbaa !39, !range !20, !noundef !21
  %624 = trunc nuw i8 %623 to i1
  %.str.37..str.38283 = select i1 %624, ptr @.str.37, ptr @.str.38
  %625 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.37..str.38283)
  %626 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %625, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %627 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.57)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %628 = getelementptr inbounds i8, ptr %0, i64 24
  %629 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %628) #9
  store ptr %629, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  %630 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %628) #9
  store ptr %630, ptr %28, align 8
  %631 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  br i1 %631, label %.lr.ph257, label %._crit_edge258

._crit_edge258:                                   ; preds = %.lr.ph257, %614
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.59)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  %634 = getelementptr inbounds i8, ptr %0, i64 48
  %635 = call ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #9
  store ptr %635, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  %636 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #9
  store ptr %636, ptr %30, align 8
  %637 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  br i1 %637, label %.lr.ph260, label %._crit_edge261

.lr.ph257:                                        ; preds = %614, %.lr.ph257
  %638 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  %639 = load i32, ptr %638, align 4, !tbaa !40
  %640 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %639)
  %641 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %640, ptr noundef nonnull @.str.58)
  %642 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  %643 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %628) #9
  store ptr %643, ptr %28, align 8
  %644 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  br i1 %644, label %.lr.ph257, label %._crit_edge258, !llvm.loop !68

._crit_edge261:                                   ; preds = %.lr.ph260, %._crit_edge258
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  %645 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %646 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.60)
  %647 = getelementptr inbounds i8, ptr %0, i64 122
  %648 = load i8, ptr %647, align 2, !tbaa !45, !range !20, !noundef !21
  %649 = trunc nuw i8 %648 to i1
  %.str.37..str.38284 = select i1 %649, ptr @.str.37, ptr @.str.38
  %650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.37..str.38284)
  %651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %650, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.61)
  %653 = getelementptr inbounds i8, ptr %0, i64 72
  %654 = load i32, ptr %653, align 8, !tbaa !50
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %654)
  %656 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %655, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.62)
  %658 = load i32, ptr %358, align 8, !tbaa !53
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %658)
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %669

.lr.ph260:                                        ; preds = %._crit_edge258, %.lr.ph260
  %662 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt20_List_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  %663 = load i32, ptr %662, align 4, !tbaa !40
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %663)
  %665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %664, ptr noundef nonnull @.str.58)
  %666 = call ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  %667 = call ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #9
  store ptr %667, ptr %30, align 8
  %668 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  br i1 %668, label %.lr.ph260, label %._crit_edge261, !llvm.loop !69

669:                                              ; preds = %._crit_edge261, %480
  %670 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.63)
  %671 = getelementptr inbounds i8, ptr %0, i64 122
  %672 = load i8, ptr %671, align 2, !tbaa !45, !range !20, !noundef !21
  %673 = trunc nuw i8 %672 to i1
  %674 = getelementptr inbounds i8, ptr %0, i64 8
  %675 = load i64, ptr %674, align 8, !tbaa !38
  br i1 %673, label %676, label %696

676:                                              ; preds = %669
  %677 = load i64, ptr @_ZN4xmem17g_large_page_sizeE, align 8, !tbaa !70
  %.not176 = icmp ugt i64 %675, %677
  br i1 %.not176, label %678, label %683

678:                                              ; preds = %676
  %679 = urem i64 %675, %677
  %680 = icmp ne i64 %679, 0
  %681 = udiv i64 %675, %677
  %682 = zext i1 %680 to i64
  %spec.select285 = add i64 %681, %682
  br label %683

683:                                              ; preds = %678, %676
  %.0 = phi i64 [ 1, %676 ], [ %spec.select285, %678 ]
  %684 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %675)
  %685 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef nonnull @.str.64)
  %686 = load i64, ptr %674, align 8, !tbaa !38
  %687 = lshr i64 %686, 10
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %685, i64 noundef %687)
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef nonnull @.str.65)
  %690 = load i64, ptr %674, align 8, !tbaa !38
  %691 = lshr i64 %690, 20
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %689, i64 noundef %691)
  %693 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef nonnull @.str.66)
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %693, i64 noundef %.0)
  %695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %694, ptr noundef nonnull @.str.67)
  br label %712

696:                                              ; preds = %669
  %697 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %675)
  %698 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %697, ptr noundef nonnull @.str.64)
  %699 = load i64, ptr %674, align 8, !tbaa !38
  %700 = lshr i64 %699, 10
  %701 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %698, i64 noundef %700)
  %702 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %701, ptr noundef nonnull @.str.65)
  %703 = load i64, ptr %674, align 8, !tbaa !38
  %704 = lshr i64 %703, 20
  %705 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %702, i64 noundef %704)
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %705, ptr noundef nonnull @.str.68)
  %707 = load i64, ptr %674, align 8, !tbaa !38
  %708 = load i64, ptr @_ZN4xmem11g_page_sizeE, align 8, !tbaa !70
  %709 = udiv i64 %707, %708
  %710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %706, i64 noundef %709)
  %711 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %710, ptr noundef nonnull @.str.69)
  br label %712

712:                                              ; preds = %683, %696
  %.sink = phi ptr [ %695, %683 ], [ %711, %696 ]
  %713 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %.sink, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %715

714:                                              ; preds = %475, %478
  call void @_ZN4xmem10printUsageISoEEvRT_PKNS_10DescriptorEiii(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZN4xmemL5usageE, i32 noundef 80, i32 noundef 50, i32 noundef 75)
  br label %715

715:                                              ; preds = %361, %348, %319, %279, %145, %714, %456, %445, %434, %271, %72, %66, %93, %135, %154, %197, %247, %289, %310, %418, %712
  %.0112 = phi i32 [ 0, %712 ], [ -1, %418 ], [ -1, %310 ], [ -1, %289 ], [ -1, %247 ], [ -1, %197 ], [ -1, %154 ], [ -1, %135 ], [ -1, %93 ], [ -1, %66 ], [ -1, %72 ], [ -1, %271 ], [ -1, %434 ], [ -1, %445 ], [ -1, %456 ], [ -1, %714 ], [ -1, %145 ], [ -1, %279 ], [ -1, %319 ], [ -1, %348 ], [ -1, %361 ]
  call void @_ZdaPv(ptr noundef nonnull %46) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  br label %716

716:                                              ; preds = %715, %33
  %.1 = phi i32 [ -2, %33 ], [ %.0112, %715 ]
  ret i32 %.1
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4xmem5StatsC2EPKNS_10DescriptorEiPPcib(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, i32 noundef, ptr noundef, i32 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4xmem6ParserC2EPKNS_10DescriptorEiPPcPNS_6OptionES7_ibi(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i1 noundef zeroext, i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4xmem6Parser5errorEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN4xmem6Parser15nonOptionsCountEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN4xmem6OptioncvPS0_Ev(ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn
declare i64 @strtoul(ptr noundef readonly, ptr nocapture noundef, i32 noundef) local_unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt7__cxx114listIjSaIjEE6cbeginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt7__cxx114listIjSaIjEE4cendEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt20_List_const_iteratorIjEppEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN4xmem12ConfiguratorE", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !10, i64 8, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !12, i64 24, !12, i64 48, !11, i64 72, !7, i64 76, !7, i64 77, !11, i64 80, !18, i64 88, !7, i64 120, !7, i64 121, !7, i64 122, !7, i64 123, !7, i64 124, !7, i64 125, !7, i64 126, !7, i64 127, !7, i64 128, !7, i64 129, !7, i64 130, !7, i64 131, !7, i64 132, !7, i64 133, !7, i64 134}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_ZTSNSt7__cxx114listIjSaIjEEE", !13, i64 0}
!13 = !{!"_ZTSNSt7__cxx1110_List_baseIjSaIjEEE", !14, i64 0}
!14 = !{!"_ZTSNSt7__cxx1110_List_baseIjSaIjEE10_List_implE", !15, i64 0}
!15 = !{!"_ZTSNSt8__detail17_List_node_headerE", !16, i64 0, !10, i64 16}
!16 = !{!"_ZTSNSt8__detail15_List_node_baseE", !17, i64 0, !17, i64 8}
!17 = !{!"any pointer", !8, i64 0}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !10, i64 8, !8, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !11, i64 4}
!23 = !{!"_ZTSN4xmem5StatsE", !11, i64 0, !11, i64 4}
!24 = !{!23, !11, i64 0}
!25 = !{!26, !17, i64 24}
!26 = !{!"_ZTSN4xmem6OptionE", !17, i64 0, !17, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !11, i64 40}
!27 = !{!26, !11, i64 40}
!28 = !{!6, !7, i64 121}
!29 = !{!7, !7, i64 0}
!30 = !{!6, !7, i64 3}
!31 = !{!6, !7, i64 4}
!32 = !{!6, !7, i64 1}
!33 = !{!17, !17, i64 0}
!34 = !{!26, !17, i64 32}
!35 = !{!6, !7, i64 2}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!6, !10, i64 8}
!39 = !{!6, !7, i64 22}
!40 = !{!11, !11, i64 0}
!41 = distinct !{!41, !37}
!42 = distinct !{!42, !37}
!43 = distinct !{!43, !37}
!44 = distinct !{!44, !37}
!45 = !{!6, !7, i64 122}
!46 = !{!6, !11, i64 16}
!47 = !{!6, !7, i64 20}
!48 = !{!6, !7, i64 21}
!49 = distinct !{!49, !37}
!50 = !{!6, !11, i64 72}
!51 = !{!6, !7, i64 76}
!52 = !{!6, !7, i64 77}
!53 = !{!6, !11, i64 80}
!54 = !{!6, !7, i64 120}
!55 = !{!6, !7, i64 123}
!56 = !{!6, !7, i64 124}
!57 = !{!6, !7, i64 125}
!58 = !{!6, !7, i64 126}
!59 = !{!6, !7, i64 127}
!60 = !{!6, !7, i64 128}
!61 = !{!6, !7, i64 129}
!62 = !{!6, !7, i64 130}
!63 = !{!6, !7, i64 131}
!64 = !{!6, !7, i64 132}
!65 = !{!6, !7, i64 133}
!66 = !{!6, !7, i64 134}
!67 = distinct !{!67, !37}
!68 = distinct !{!68, !37}
!69 = distinct !{!69, !37}
!70 = !{!10, !10, i64 0}


; Effective O3 passes: AggressiveInstCombinePass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SROAPass,SimplifyCFGPass,TailCallElimPass