; LLVM IR from lelegard/cryptobench :: src/options.ll (ZN7optionsC2EiPPc)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::allocator" = type { i8 }
%class.options = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i64, i64, i64, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }>

@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7optionsC2EiPPc(ptr noundef nonnull align 8 dereferenceable(197) %0, i32 noundef %1, ptr noundef %2) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %9 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %18 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store i32 %1, ptr %5, align 4, !tbaa !9
  store ptr %2, ptr %6, align 8, !tbaa !5
  %24 = load ptr, ptr %4, align 8
  %25 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  %26 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  %27 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 2
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  %28 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  %29 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  %30 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 5
  store i64 2000000, ptr %30, align 8, !tbaa !11
  %31 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 6
  store i64 10, ptr %31, align 8, !tbaa !17
  %32 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 7
  store i64 1000000, ptr %32, align 8, !tbaa !18
  %33 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 8
  store i8 0, ptr %33, align 8, !tbaa !19
  %34 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  store i8 1, ptr %34, align 1, !tbaa !20
  %35 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 10
  store i8 0, ptr %35, align 2, !tbaa !21
  %36 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 11
  store i8 0, ptr %36, align 1, !tbaa !22
  %37 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 12
  store i8 0, ptr %37, align 4, !tbaa !23
  %38 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 1, ptr %38, align 1, !tbaa !24
  %39 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 14
  store i8 0, ptr %39, align 2, !tbaa !25
  %40 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 15
  store i8 0, ptr %40, align 1, !tbaa !26
  %41 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 16
  store i8 0, ptr %41, align 8, !tbaa !27
  %42 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 17
  store i8 0, ptr %42, align 1, !tbaa !28
  %43 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 18
  store i8 0, ptr %43, align 2, !tbaa !29
  %44 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 19
  store i8 0, ptr %44, align 1, !tbaa !30
  %45 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 20
  store i8 0, ptr %45, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #7
  invoke void @_ZN3sys9exec_fileB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %9)
          to label %46 unwind label %76

46:                                               ; preds = %3
  invoke void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %8, ptr noundef nonnull align 8 dereferenceable(40) %9)
          to label %47 unwind label %80

47:                                               ; preds = %46
  invoke void @_ZNKSt10filesystem7__cxx114pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %48 unwind label %84

48:                                               ; preds = %47
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #7
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.10)
          to label %49 unwind label %90

49:                                               ; preds = %48
  %50 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 1
  %51 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.11)
          to label %52 unwind label %94

52:                                               ; preds = %49
  %53 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 2
  %54 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.12)
          to label %55 unwind label %98

55:                                               ; preds = %52
  %56 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 3
  %57 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.13)
          to label %58 unwind label %102

58:                                               ; preds = %55
  %59 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 4
  %60 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  %61 = load i32, ptr %5, align 4, !tbaa !9
  %62 = icmp sgt i32 %61, 0
  br i1 %62, label %63, label %306

63:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #7
  %64 = load ptr, ptr %6, align 8, !tbaa !5
  %65 = getelementptr inbounds ptr, ptr %64, i64 0
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull align 8 dereferenceable(8) %65, i8 noundef zeroext 2)
          to label %66 unwind label %106

66:                                               ; preds = %63
  invoke void @_ZNKSt10filesystem7__cxx114path4stemEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %17, ptr noundef nonnull align 8 dereferenceable(40) %18)
          to label %67 unwind label %110

67:                                               ; preds = %66
  invoke void @_ZNKSt10filesystem7__cxx114pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(40) %17)
          to label %68 unwind label %114

68:                                               ; preds = %67
  %69 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 0
  %70 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #7
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %71

71:                                               ; preds = %300, %68
  %72 = load i32, ptr %19, align 4, !tbaa !9
  %73 = load i32, ptr %5, align 4, !tbaa !9
  %74 = icmp slt i32 %72, %73
  br i1 %74, label %120, label %75

75:                                               ; preds = %71
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %305

76:                                               ; preds = %3
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %10, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %11, align 4
  br label %89

80:                                               ; preds = %46
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %10, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %11, align 4
  br label %88

84:                                               ; preds = %47
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %10, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %11, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #7
  br label %88

88:                                               ; preds = %84, %80
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #7
  br label %89

89:                                               ; preds = %88, %76
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #7
  br label %338

90:                                               ; preds = %48
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %10, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  br label %337

94:                                               ; preds = %49
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %10, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  br label %337

98:                                               ; preds = %52
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %10, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %337

102:                                              ; preds = %55
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %10, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  br label %337

106:                                              ; preds = %63
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %10, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, ptr %11, align 4
  br label %119

110:                                              ; preds = %66
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %10, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %11, align 4
  br label %118

114:                                              ; preds = %67
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %10, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %11, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #7
  br label %118

118:                                              ; preds = %114, %110
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #7
  br label %119

119:                                              ; preds = %118, %106
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  br label %337

120:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  %121 = load ptr, ptr %6, align 8, !tbaa !5
  %122 = load i32, ptr %19, align 4, !tbaa !9
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds ptr, ptr %121, i64 %123
  %125 = load ptr, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %125, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %126 unwind label %134

126:                                              ; preds = %120
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  %127 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.14)
          to label %128 unwind label %138

128:                                              ; preds = %126
  br i1 %127, label %132, label %129

129:                                              ; preds = %128
  %130 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.15)
          to label %131 unwind label %138

131:                                              ; preds = %129
  br i1 %130, label %132, label %142

132:                                              ; preds = %131, %128
  invoke void @_ZNK7options5usageEv(ptr noundef nonnull align 8 dereferenceable(197) %24)
          to label %133 unwind label %138

133:                                              ; preds = %132
  br label %299

134:                                              ; preds = %120
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %10, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  br label %304

138:                                              ; preds = %261, %255, %249, %243, %237, %231, %225, %219, %213, %207, %200, %197, %180, %163, %145, %142, %132, %129, %126
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %10, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %11, align 4
  br label %303

142:                                              ; preds = %131
  %143 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.16)
          to label %144 unwind label %138

144:                                              ; preds = %142
  br i1 %143, label %148, label %145

145:                                              ; preds = %144
  %146 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.17)
          to label %147 unwind label %138

147:                                              ; preds = %145
  br i1 %146, label %148, label %163

148:                                              ; preds = %147, %144
  %149 = load i32, ptr %19, align 4, !tbaa !9
  %150 = add nsw i32 %149, 1
  %151 = load i32, ptr %5, align 4, !tbaa !9
  %152 = icmp slt i32 %150, %151
  br i1 %152, label %153, label %163

153:                                              ; preds = %148
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = load i32, ptr %19, align 4, !tbaa !9
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr %19, align 4, !tbaa !9
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds ptr, ptr %154, i64 %157
  %159 = load ptr, ptr %158, align 8, !tbaa !5
  %160 = call i64 @atoll(ptr noundef %159) #8
  %161 = mul nsw i64 %160, 1000000
  %162 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 5
  store i64 %161, ptr %162, align 8, !tbaa !11
  br label %298

163:                                              ; preds = %148, %147
  %164 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.18)
          to label %165 unwind label %138

165:                                              ; preds = %163
  br i1 %164, label %166, label %180

166:                                              ; preds = %165
  %167 = load i32, ptr %19, align 4, !tbaa !9
  %168 = add nsw i32 %167, 1
  %169 = load i32, ptr %5, align 4, !tbaa !9
  %170 = icmp slt i32 %168, %169
  br i1 %170, label %171, label %180

171:                                              ; preds = %166
  %172 = load ptr, ptr %6, align 8, !tbaa !5
  %173 = load i32, ptr %19, align 4, !tbaa !9
  %174 = add nsw i32 %173, 1
  store i32 %174, ptr %19, align 4, !tbaa !9
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds ptr, ptr %172, i64 %175
  %177 = load ptr, ptr %176, align 8, !tbaa !5
  %178 = call i64 @atoll(ptr noundef %177) #8
  %179 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 6
  store i64 %178, ptr %179, align 8, !tbaa !17
  br label %297

180:                                              ; preds = %166, %165
  %181 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.19)
          to label %182 unwind label %138

182:                                              ; preds = %180
  br i1 %181, label %183, label %197

183:                                              ; preds = %182
  %184 = load i32, ptr %19, align 4, !tbaa !9
  %185 = add nsw i32 %184, 1
  %186 = load i32, ptr %5, align 4, !tbaa !9
  %187 = icmp slt i32 %185, %186
  br i1 %187, label %188, label %197

188:                                              ; preds = %183
  %189 = load ptr, ptr %6, align 8, !tbaa !5
  %190 = load i32, ptr %19, align 4, !tbaa !9
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr %19, align 4, !tbaa !9
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds ptr, ptr %189, i64 %192
  %194 = load ptr, ptr %193, align 8, !tbaa !5
  %195 = call i64 @atoll(ptr noundef %194) #8
  %196 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 7
  store i64 %195, ptr %196, align 8, !tbaa !18
  br label %296

197:                                              ; preds = %183, %182
  %198 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.20)
          to label %199 unwind label %138

199:                                              ; preds = %197
  br i1 %198, label %203, label %200

200:                                              ; preds = %199
  %201 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.21)
          to label %202 unwind label %138

202:                                              ; preds = %200
  br i1 %201, label %203, label %207

203:                                              ; preds = %202, %199
  %204 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %204, align 1, !tbaa !24
  %205 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  store i8 0, ptr %205, align 1, !tbaa !20
  %206 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 8
  store i8 1, ptr %206, align 8, !tbaa !19
  br label %295

207:                                              ; preds = %202
  %208 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.22)
          to label %209 unwind label %138

209:                                              ; preds = %207
  br i1 %208, label %210, label %213

210:                                              ; preds = %209
  %211 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  store i8 0, ptr %211, align 1, !tbaa !20
  %212 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 10
  store i8 1, ptr %212, align 2, !tbaa !21
  br label %294

213:                                              ; preds = %209
  %214 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.23)
          to label %215 unwind label %138

215:                                              ; preds = %213
  br i1 %214, label %216, label %219

216:                                              ; preds = %215
  %217 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  store i8 0, ptr %217, align 1, !tbaa !20
  %218 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 11
  store i8 1, ptr %218, align 1, !tbaa !22
  br label %293

219:                                              ; preds = %215
  %220 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.24)
          to label %221 unwind label %138

221:                                              ; preds = %219
  br i1 %220, label %222, label %225

222:                                              ; preds = %221
  %223 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  store i8 0, ptr %223, align 1, !tbaa !20
  %224 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 12
  store i8 1, ptr %224, align 4, !tbaa !23
  br label %292

225:                                              ; preds = %221
  %226 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.25)
          to label %227 unwind label %138

227:                                              ; preds = %225
  br i1 %226, label %228, label %231

228:                                              ; preds = %227
  %229 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %229, align 1, !tbaa !24
  %230 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 16
  store i8 1, ptr %230, align 8, !tbaa !27
  br label %291

231:                                              ; preds = %227
  %232 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.26)
          to label %233 unwind label %138

233:                                              ; preds = %231
  br i1 %232, label %234, label %237

234:                                              ; preds = %233
  %235 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %235, align 1, !tbaa !24
  %236 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 15
  store i8 1, ptr %236, align 1, !tbaa !26
  br label %290

237:                                              ; preds = %233
  %238 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.27)
          to label %239 unwind label %138

239:                                              ; preds = %237
  br i1 %238, label %240, label %243

240:                                              ; preds = %239
  %241 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %241, align 1, !tbaa !24
  %242 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 17
  store i8 1, ptr %242, align 1, !tbaa !28
  br label %289

243:                                              ; preds = %239
  %244 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.28)
          to label %245 unwind label %138

245:                                              ; preds = %243
  br i1 %244, label %246, label %249

246:                                              ; preds = %245
  %247 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %247, align 1, !tbaa !24
  %248 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 14
  store i8 1, ptr %248, align 2, !tbaa !25
  br label %288

249:                                              ; preds = %245
  %250 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.29)
          to label %251 unwind label %138

251:                                              ; preds = %249
  br i1 %250, label %252, label %255

252:                                              ; preds = %251
  %253 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %253, align 1, !tbaa !24
  %254 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 18
  store i8 1, ptr %254, align 2, !tbaa !29
  br label %287

255:                                              ; preds = %251
  %256 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.30)
          to label %257 unwind label %138

257:                                              ; preds = %255
  br i1 %256, label %258, label %261

258:                                              ; preds = %257
  %259 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %259, align 1, !tbaa !24
  %260 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 19
  store i8 1, ptr %260, align 1, !tbaa !30
  br label %286

261:                                              ; preds = %257
  %262 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.31)
          to label %263 unwind label %138

263:                                              ; preds = %261
  br i1 %262, label %264, label %267

264:                                              ; preds = %263
  %265 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  store i8 0, ptr %265, align 1, !tbaa !24
  %266 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 20
  store i8 1, ptr %266, align 4, !tbaa !31
  br label %285

267:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef @.str.32, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %268 unwind label %271

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

269:                                              ; preds = %268
  invoke void @_ZNK7options5fatalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(197) %24, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %270 unwind label %279

270:                                              ; preds = %269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %285

271:                                              ; preds = %267
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %10, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %11, align 4
  br label %284

275:                                              ; preds = %268
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %10, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %11, align 4
  br label %283

279:                                              ; preds = %269
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %10, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %283

283:                                              ; preds = %279, %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %284

284:                                              ; preds = %283, %271
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %303

285:                                              ; preds = %270, %264
  br label %286

286:                                              ; preds = %285, %258
  br label %287

287:                                              ; preds = %286, %252
  br label %288

288:                                              ; preds = %287, %246
  br label %289

289:                                              ; preds = %288, %240
  br label %290

290:                                              ; preds = %289, %234
  br label %291

291:                                              ; preds = %290, %228
  br label %292

292:                                              ; preds = %291, %222
  br label %293

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

294:                                              ; preds = %293, %210
  br label %295

295:                                              ; preds = %294, %203
  br label %296

296:                                              ; preds = %295, %188
  br label %297

297:                                              ; preds = %296, %171
  br label %298

298:                                              ; preds = %297, %153
  br label %299

299:                                              ; preds = %298, %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  br label %300

300:                                              ; preds = %299
  %301 = load i32, ptr %19, align 4, !tbaa !9
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr %19, align 4, !tbaa !9
  br label %71, !llvm.loop !32

303:                                              ; preds = %284, %138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %304

304:                                              ; preds = %303, %134
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %337

305:                                              ; preds = %75
  br label %306

306:                                              ; preds = %305, %58
  %307 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  %308 = load i8, ptr %307, align 1, !tbaa !24, !range !34, !noundef !35
  %309 = trunc i8 %308 to i1
  br i1 %309, label %310, label %316

310:                                              ; preds = %306
  %311 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  %312 = load i8, ptr %311, align 1, !tbaa !20, !range !34, !noundef !35
  %313 = trunc i8 %312 to i1
  br i1 %313, label %314, label %316

314:                                              ; preds = %310
  %315 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 8
  store i8 1, ptr %315, align 8, !tbaa !19
  br label %316

316:                                              ; preds = %314, %310, %306
  %317 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 9
  %318 = load i8, ptr %317, align 1, !tbaa !20, !range !34, !noundef !35
  %319 = trunc i8 %318 to i1
  br i1 %319, label %320, label %324

320:                                              ; preds = %316
  %321 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 12
  store i8 1, ptr %321, align 4, !tbaa !23
  %322 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 11
  store i8 1, ptr %322, align 1, !tbaa !22
  %323 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 10
  store i8 1, ptr %323, align 2, !tbaa !21
  br label %324

324:                                              ; preds = %320, %316
  %325 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 13
  %326 = load i8, ptr %325, align 1, !tbaa !24, !range !34, !noundef !35
  %327 = trunc i8 %326 to i1
  br i1 %327, label %328, label %336

328:                                              ; preds = %324
  %329 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 20
  store i8 1, ptr %329, align 4, !tbaa !31
  %330 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 19
  store i8 1, ptr %330, align 1, !tbaa !30
  %331 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 18
  store i8 1, ptr %331, align 2, !tbaa !29
  %332 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 14
  store i8 1, ptr %332, align 2, !tbaa !25
  %333 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 17
  store i8 1, ptr %333, align 1, !tbaa !28
  %334 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 15
  store i8 1, ptr %334, align 1, !tbaa !26
  %335 = getelementptr inbounds %class.options, ptr %24, i32 0, i32 16
  store i8 1, ptr %335, align 8, !tbaa !27
  br label %336

336:                                              ; preds = %328, %324
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #7
  ret void

337:                                              ; preds = %304, %119, %102, %98, %94, %90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %338

338:                                              ; preds = %337, %89
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %339

339:                                              ; preds = %338
  %340 = load ptr, ptr %10, align 8
  %341 = load i32, ptr %11, align 4
  %342 = insertvalue { ptr, i32 } poison, ptr %340, 0
  %343 = insertvalue { ptr, i32 } %342, i32 %341, 1
  resume { ptr, i32 } %343
}

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

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

declare void @_ZN3sys9exec_fileB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8) #3

declare i32 @__gxx_personality_v0(...)

declare void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 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: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNKSt10filesystem7__cxx114path4stemEv(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #4 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i64 @atoll(ptr noundef nonnull) #6

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

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

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

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

!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, !15, i64 160}
!12 = !{!"_ZTS7options", !13, i64 0, !13, i64 32, !13, i64 64, !13, i64 96, !13, i64 128, !15, i64 160, !15, i64 168, !15, i64 176, !16, i64 184, !16, i64 185, !16, i64 186, !16, i64 187, !16, i64 188, !16, i64 189, !16, i64 190, !16, i64 191, !16, i64 192, !16, i64 193, !16, i64 194, !16, i64 195, !16, i64 196}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !14, i64 0, !15, i64 8, !7, i64 16}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!12, !15, i64 168}
!18 = !{!12, !15, i64 176}
!19 = !{!12, !16, i64 184}
!20 = !{!12, !16, i64 185}
!21 = !{!12, !16, i64 186}
!22 = !{!12, !16, i64 187}
!23 = !{!12, !16, i64 188}
!24 = !{!12, !16, i64 189}
!25 = !{!12, !16, i64 190}
!26 = !{!12, !16, i64 191}
!27 = !{!12, !16, i64 192}
!28 = !{!12, !16, i64 193}
!29 = !{!12, !16, i64 194}
!30 = !{!12, !16, i64 195}
!31 = !{!12, !16, i64 196}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{i8 0, i8 2}
!35 = !{}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::allocator" = type { i8 }

@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7optionsC2EiPPc(ptr noundef nonnull align 8 dereferenceable(197) %0, i32 noundef %1, ptr noundef %2) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %6 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %13 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %18 = getelementptr inbounds i8, ptr %0, i64 32
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  %19 = getelementptr inbounds i8, ptr %0, i64 64
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  %20 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  %21 = getelementptr inbounds i8, ptr %0, i64 128
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  %22 = getelementptr inbounds i8, ptr %0, i64 160
  store i64 2000000, ptr %22, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %0, i64 168
  store i64 10, ptr %23, align 8, !tbaa !14
  %24 = getelementptr inbounds i8, ptr %0, i64 176
  store i64 1000000, ptr %24, align 8, !tbaa !15
  %25 = getelementptr inbounds i8, ptr %0, i64 184
  %26 = getelementptr inbounds i8, ptr %0, i64 185
  %27 = getelementptr inbounds i8, ptr %0, i64 186
  %28 = getelementptr inbounds i8, ptr %0, i64 187
  store <4 x i8> <i8 0, i8 1, i8 0, i8 0>, ptr %25, align 8, !tbaa !16
  %29 = getelementptr inbounds i8, ptr %0, i64 188
  store i8 0, ptr %29, align 4, !tbaa !17
  %30 = getelementptr inbounds i8, ptr %0, i64 189
  store i8 1, ptr %30, align 1, !tbaa !18
  %31 = getelementptr inbounds i8, ptr %0, i64 190
  %32 = getelementptr inbounds i8, ptr %0, i64 191
  %33 = getelementptr inbounds i8, ptr %0, i64 192
  %34 = getelementptr inbounds i8, ptr %0, i64 193
  %35 = getelementptr inbounds i8, ptr %0, i64 194
  %36 = getelementptr inbounds i8, ptr %0, i64 195
  %37 = getelementptr inbounds i8, ptr %0, i64 196
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(7) %31, i8 0, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #8
  invoke void @_ZN3sys9exec_fileB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %6)
          to label %38 unwind label %55

38:                                               ; preds = %3
  invoke void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %5, ptr noundef nonnull align 8 dereferenceable(40) %6)
          to label %39 unwind label %57

39:                                               ; preds = %38
  invoke void @_ZNKSt10filesystem7__cxx114pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(40) %5)
          to label %40 unwind label %59

40:                                               ; preds = %39
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.10)
          to label %41 unwind label %63

41:                                               ; preds = %40
  %42 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.11)
          to label %43 unwind label %65

43:                                               ; preds = %41
  %44 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.12)
          to label %45 unwind label %67

45:                                               ; preds = %43
  %46 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.13)
          to label %47 unwind label %69

47:                                               ; preds = %45
  %48 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  %49 = icmp sgt i32 %1, 0
  br i1 %49, label %50, label %.loopexit

50:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #8
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %13, ptr noundef nonnull align 8 dereferenceable(8) %2, i8 noundef zeroext 2)
          to label %51 unwind label %71

51:                                               ; preds = %50
  invoke void @_ZNKSt10filesystem7__cxx114path4stemEv(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %12, ptr noundef nonnull align 8 dereferenceable(40) %13)
          to label %52 unwind label %73

52:                                               ; preds = %51
  invoke void @_ZNKSt10filesystem7__cxx114pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(40) %12)
          to label %53 unwind label %75

53:                                               ; preds = %52
  %54 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #8
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  %.not = icmp eq i32 %1, 1
  br i1 %.not, label %.loopexit, label %.lr.ph

55:                                               ; preds = %3
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %62

57:                                               ; preds = %38
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %61

59:                                               ; preds = %39
  %60 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  br label %61

61:                                               ; preds = %59, %57
  %.pn = phi { ptr, i32 } [ %60, %59 ], [ %58, %57 ]
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #8
  br label %62

62:                                               ; preds = %61, %55
  %.pn.pn = phi { ptr, i32 } [ %.pn, %61 ], [ %56, %55 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #8
  br label %183

63:                                               ; preds = %40
  %64 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br label %182

65:                                               ; preds = %41
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %182

67:                                               ; preds = %43
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %182

69:                                               ; preds = %45
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br label %182

71:                                               ; preds = %50
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %78

73:                                               ; preds = %51
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %77

75:                                               ; preds = %52
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #8
  br label %77

77:                                               ; preds = %75, %73
  %.pn39 = phi { ptr, i32 } [ %76, %75 ], [ %74, %73 ]
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #8
  br label %78

78:                                               ; preds = %77, %71
  %.pn39.pn = phi { ptr, i32 } [ %.pn39, %77 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br label %182

.lr.ph:                                           ; preds = %53, %171
  %.050 = phi i32 [ %172, %171 ], [ 1, %53 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  %79 = sext i32 %.050 to i64
  %80 = getelementptr inbounds ptr, ptr %2, i64 %79
  %81 = load ptr, ptr %80, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %81, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %82 unwind label %87

82:                                               ; preds = %.lr.ph
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #8
  %83 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.14)
  br i1 %83, label %86, label %84

84:                                               ; preds = %82
  %85 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.15)
  br i1 %85, label %86, label %91

86:                                               ; preds = %84, %82
  invoke void @_ZNK7options5usageEv(ptr noundef nonnull align 8 dereferenceable(197) %0)
          to label %171 unwind label %89

87:                                               ; preds = %.lr.ph
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #8
  br label %175

89:                                               ; preds = %86
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %174

91:                                               ; preds = %84
  %92 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.16)
  br i1 %92, label %95, label %93

93:                                               ; preds = %91
  %94 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.17)
  br i1 %94, label %95, label %104

95:                                               ; preds = %93, %91
  %96 = add nsw i32 %.050, 1
  %97 = icmp slt i32 %96, %1
  br i1 %97, label %98, label %104

98:                                               ; preds = %95
  %99 = sext i32 %96 to i64
  %100 = getelementptr inbounds ptr, ptr %2, i64 %99
  %101 = load ptr, ptr %100, align 8, !tbaa !19
  %102 = call i64 @atoll(ptr nocapture noundef %101) #9
  %103 = mul nsw i64 %102, 1000000
  store i64 %103, ptr %22, align 8, !tbaa !5
  br label %171

104:                                              ; preds = %95, %93
  %105 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.18)
  br i1 %105, label %106, label %114

106:                                              ; preds = %104
  %107 = add nsw i32 %.050, 1
  %108 = icmp slt i32 %107, %1
  br i1 %108, label %109, label %114

109:                                              ; preds = %106
  %110 = sext i32 %107 to i64
  %111 = getelementptr inbounds ptr, ptr %2, i64 %110
  %112 = load ptr, ptr %111, align 8, !tbaa !19
  %113 = call i64 @atoll(ptr nocapture noundef %112) #9
  store i64 %113, ptr %23, align 8, !tbaa !14
  br label %171

114:                                              ; preds = %106, %104
  %115 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.19)
  br i1 %115, label %116, label %124

116:                                              ; preds = %114
  %117 = add nsw i32 %.050, 1
  %118 = icmp slt i32 %117, %1
  br i1 %118, label %119, label %124

119:                                              ; preds = %116
  %120 = sext i32 %117 to i64
  %121 = getelementptr inbounds ptr, ptr %2, i64 %120
  %122 = load ptr, ptr %121, align 8, !tbaa !19
  %123 = call i64 @atoll(ptr nocapture noundef %122) #9
  store i64 %123, ptr %24, align 8, !tbaa !15
  br label %171

124:                                              ; preds = %116, %114
  %125 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.20)
  br i1 %125, label %128, label %126

126:                                              ; preds = %124
  %127 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.21)
  br i1 %127, label %128, label %129

128:                                              ; preds = %126, %124
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 0, ptr %26, align 1, !tbaa !20
  store i8 1, ptr %25, align 8, !tbaa !21
  br label %171

129:                                              ; preds = %126
  %130 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.22)
  br i1 %130, label %131, label %132

131:                                              ; preds = %129
  store i8 0, ptr %26, align 1, !tbaa !20
  store i8 1, ptr %27, align 2, !tbaa !22
  br label %171

132:                                              ; preds = %129
  %133 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.23)
  br i1 %133, label %134, label %135

134:                                              ; preds = %132
  store i8 0, ptr %26, align 1, !tbaa !20
  store i8 1, ptr %28, align 1, !tbaa !23
  br label %171

135:                                              ; preds = %132
  %136 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.24)
  br i1 %136, label %137, label %138

137:                                              ; preds = %135
  store i8 0, ptr %26, align 1, !tbaa !20
  store i8 1, ptr %29, align 4, !tbaa !17
  br label %171

138:                                              ; preds = %135
  %139 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.25)
  br i1 %139, label %140, label %141

140:                                              ; preds = %138
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %33, align 8, !tbaa !24
  br label %171

141:                                              ; preds = %138
  %142 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.26)
  br i1 %142, label %143, label %144

143:                                              ; preds = %141
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %32, align 1, !tbaa !25
  br label %171

144:                                              ; preds = %141
  %145 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.27)
  br i1 %145, label %146, label %147

146:                                              ; preds = %144
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %34, align 1, !tbaa !26
  br label %171

147:                                              ; preds = %144
  %148 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.28)
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %31, align 2, !tbaa !27
  br label %171

150:                                              ; preds = %147
  %151 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.29)
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %35, align 2, !tbaa !28
  br label %171

153:                                              ; preds = %150
  %154 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.30)
  br i1 %154, label %155, label %156

155:                                              ; preds = %153
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %36, align 1, !tbaa !29
  br label %171

156:                                              ; preds = %153
  %157 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.31)
  br i1 %157, label %158, label %159

158:                                              ; preds = %156
  store i8 0, ptr %30, align 1, !tbaa !18
  store i8 1, ptr %37, align 4, !tbaa !30
  br label %171

159:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull @.str.32, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %160 unwind label %163

160:                                              ; preds = %159
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.33)
          to label %161 unwind label %165

161:                                              ; preds = %160
  invoke void @_ZNK7options5fatalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(197) %0, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %162 unwind label %167

162:                                              ; preds = %161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %171

163:                                              ; preds = %159
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %170

165:                                              ; preds = %160
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %169

167:                                              ; preds = %161
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %169

169:                                              ; preds = %167, %165
  %.pn42 = phi { ptr, i32 } [ %168, %167 ], [ %166, %165 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %170

170:                                              ; preds = %169, %163
  %.pn42.pn = phi { ptr, i32 } [ %.pn42, %169 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %174

171:                                              ; preds = %98, %119, %131, %137, %143, %149, %155, %162, %158, %152, %146, %140, %134, %128, %109, %86
  %.1 = phi i32 [ %.050, %86 ], [ %96, %98 ], [ %107, %109 ], [ %117, %119 ], [ %.050, %128 ], [ %.050, %131 ], [ %.050, %134 ], [ %.050, %137 ], [ %.050, %140 ], [ %.050, %143 ], [ %.050, %146 ], [ %.050, %149 ], [ %.050, %152 ], [ %.050, %155 ], [ %.050, %158 ], [ %.050, %162 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  %172 = add nsw i32 %.1, 1
  %173 = icmp slt i32 %172, %1
  br i1 %173, label %.lr.ph, label %.loopexit, !llvm.loop !31

174:                                              ; preds = %170, %89
  %.pn45 = phi { ptr, i32 } [ %90, %89 ], [ %.pn42.pn, %170 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %175

175:                                              ; preds = %174, %87
  %.pn45.pn = phi { ptr, i32 } [ %.pn45, %174 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  br label %182

.loopexit:                                        ; preds = %171, %53, %47
  %176 = load i8, ptr %30, align 1, !tbaa !18, !range !33, !noundef !34
  %177 = trunc nuw i8 %176 to i1
  %.pre = load i8, ptr %26, align 1, !tbaa !20, !range !33
  %178 = trunc nuw i8 %.pre to i1
  br i1 %177, label %179, label %180

179:                                              ; preds = %.loopexit
  br i1 %178, label %.thread57, label %.thread55

.thread57:                                        ; preds = %179
  store i8 1, ptr %25, align 8, !tbaa !21
  store i8 1, ptr %29, align 4, !tbaa !17
  store i8 1, ptr %28, align 1, !tbaa !23
  store i8 1, ptr %27, align 2, !tbaa !22
  br label %.thread55

180:                                              ; preds = %.loopexit
  br i1 %178, label %181, label %.thread56

181:                                              ; preds = %180
  store i8 1, ptr %29, align 4, !tbaa !17
  store i8 1, ptr %28, align 1, !tbaa !23
  store i8 1, ptr %27, align 2, !tbaa !22
  br label %.thread56

.thread55:                                        ; preds = %179, %.thread57
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(7) %31, i8 1, i64 7, i1 false)
  br label %.thread56

.thread56:                                        ; preds = %180, %181, %.thread55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  ret void

182:                                              ; preds = %175, %78, %69, %67, %65, %63
  %.pn45.pn.pn = phi { ptr, i32 } [ %.pn45.pn, %175 ], [ %.pn39.pn, %78 ], [ %70, %69 ], [ %68, %67 ], [ %66, %65 ], [ %64, %63 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %183

183:                                              ; preds = %182, %62
  %.pn45.pn.pn.pn = phi { ptr, i32 } [ %.pn45.pn.pn, %182 ], [ %.pn.pn, %62 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  resume { ptr, i32 } %.pn45.pn.pn.pn
}

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

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

declare void @_ZN3sys9exec_fileB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

declare void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 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: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNKSt10filesystem7__cxx114path4stemEv(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i64 @atoll(ptr nocapture noundef nonnull) local_unnamed_addr #6

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

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

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

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

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

!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, !12, i64 160}
!6 = !{!"_ZTS7options", !7, i64 0, !7, i64 32, !7, i64 64, !7, i64 96, !7, i64 128, !12, i64 160, !12, i64 168, !12, i64 176, !13, i64 184, !13, i64 185, !13, i64 186, !13, i64 187, !13, i64 188, !13, i64 189, !13, i64 190, !13, i64 191, !13, i64 192, !13, i64 193, !13, i64 194, !13, i64 195, !13, i64 196}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"bool", !10, i64 0}
!14 = !{!6, !12, i64 168}
!15 = !{!6, !12, i64 176}
!16 = !{!13, !13, i64 0}
!17 = !{!6, !13, i64 188}
!18 = !{!6, !13, i64 189}
!19 = !{!9, !9, i64 0}
!20 = !{!6, !13, i64 185}
!21 = !{!6, !13, i64 184}
!22 = !{!6, !13, i64 186}
!23 = !{!6, !13, i64 187}
!24 = !{!6, !13, i64 192}
!25 = !{!6, !13, i64 191}
!26 = !{!6, !13, i64 193}
!27 = !{!6, !13, i64 190}
!28 = !{!6, !13, i64 194}
!29 = !{!6, !13, i64 195}
!30 = !{!6, !13, i64 196}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{i8 0, i8 2}
!34 = !{}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass