; LLVM IR from fritzsedlazeck/SURVIVOR :: src/analysis_sv (MUMmer_overlap)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.0" = type { i8 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.3 }
%union.anon.3 = type { i32 }
%struct.strvcfentry = type <{ %"class.std::__cxx11::basic_string", %struct.strcoordinate, %struct.strcoordinate, i16, [6 x i8], %"class.std::map", i32, i32, %"class.std::vector.12", %"struct.std::pair", [2 x i8], %"struct.std::pair.17", [4 x i8], %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"struct.std::pair.19", %"struct.std::pair.17", %"struct.std::pair.17", i32, [4 x i8] }>
%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.12" = type { %"struct.std::_Vector_base.13" }
%"struct.std::_Vector_base.13" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i8, i8 }
%"struct.std::pair.19" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.17" = type { i32, i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) #3 align 2

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #5

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z19comp_entries_mummerRSt6vectorI11strvcfentrySaIS0_EENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef %1, i32 noundef %2) #2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i64, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.0", align 1
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i64, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::basic_ifstream", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.0", align 1
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i64, align 8
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store i32 %2, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %26 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef @.str.1, i64 noundef 0) #9
  store i64 %26, ptr %7, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %27 unwind label %35

27:                                               ; preds = %3
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  %28 = load i64, ptr %7, align 8, !tbaa !11
  %29 = icmp ne i64 %28, -1
  br i1 %29, label %30, label %43

30:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  %31 = load i64, ptr %7, align 8, !tbaa !11
  %32 = add i64 %31, 6
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %32, i64 noundef -1)
          to label %33 unwind label %39

33:                                               ; preds = %30
  %34 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  br label %50

35:                                               ; preds = %3
  %36 = landingpad { ptr, i32 }
          cleanup
  %37 = extractvalue { ptr, i32 } %36, 0
  store ptr %37, ptr %10, align 8
  %38 = extractvalue { ptr, i32 } %36, 1
  store i32 %38, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  br label %382

39:                                               ; preds = %30
  %40 = landingpad { ptr, i32 }
          cleanup
  %41 = extractvalue { ptr, i32 } %40, 0
  store ptr %41, ptr %10, align 8
  %42 = extractvalue { ptr, i32 } %40, 1
  store i32 %42, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  br label %381

43:                                               ; preds = %27
  %44 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %45 unwind label %46

45:                                               ; preds = %43
  br label %50

46:                                               ; preds = %43
  %47 = landingpad { ptr, i32 }
          cleanup
  %48 = extractvalue { ptr, i32 } %47, 0
  store ptr %48, ptr %10, align 8
  %49 = extractvalue { ptr, i32 } %47, 1
  store i32 %49, ptr %11, align 4
  br label %381

50:                                               ; preds = %45, %33
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store i64 2000000, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %51 = load i64, ptr %13, align 8, !tbaa !11
  %52 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %51) #10
          to label %53 unwind label %71

53:                                               ; preds = %50
  store ptr %52, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 520, ptr %15) #9
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15)
          to label %54 unwind label %75

54:                                               ; preds = %53
  %55 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %15, ptr noundef %55, i32 noundef 8)
          to label %56 unwind label %79

56:                                               ; preds = %54
  %57 = load ptr, ptr %15, align 8, !tbaa !13
  %58 = getelementptr i8, ptr %57, i64 -24
  %59 = load i64, ptr %58, align 8
  %60 = getelementptr inbounds i8, ptr %15, i64 %59
  %61 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %60)
          to label %62 unwind label %79

62:                                               ; preds = %56
  br i1 %61, label %83, label %63

63:                                               ; preds = %62
  %64 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %65 unwind label %79

65:                                               ; preds = %63
  %66 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  %67 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %66)
          to label %68 unwind label %79

68:                                               ; preds = %65
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %70 unwind label %79

70:                                               ; preds = %68
  call void @exit(i32 noundef 0) #11
  unreachable

71:                                               ; preds = %50
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %10, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %11, align 4
  br label %380

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

79:                                               ; preds = %360, %113, %108, %103, %88, %83, %68, %65, %63, %56, %54
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %10, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %11, align 4
  br label %378

83:                                               ; preds = %62
  %84 = load ptr, ptr %14, align 8, !tbaa !5
  %85 = load i64, ptr %13, align 8, !tbaa !11
  %86 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %84, i64 noundef %85)
          to label %87 unwind label %79

87:                                               ; preds = %83
  br label %88

88:                                               ; preds = %107, %87
  %89 = load ptr, ptr %15, align 8, !tbaa !13
  %90 = getelementptr i8, ptr %89, i64 -24
  %91 = load i64, ptr %90, align 8
  %92 = getelementptr inbounds i8, ptr %15, i64 %91
  %93 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %92)
          to label %94 unwind label %79

94:                                               ; preds = %88
  br i1 %93, label %101, label %95

95:                                               ; preds = %94
  %96 = load ptr, ptr %14, align 8, !tbaa !5
  %97 = getelementptr inbounds i8, ptr %96, i64 0
  %98 = load i8, ptr %97, align 1, !tbaa !15
  %99 = sext i8 %98 to i32
  %100 = icmp ne i32 %99, 91
  br label %101

101:                                              ; preds = %95, %94
  %102 = phi i1 [ false, %94 ], [ %100, %95 ]
  br i1 %102, label %103, label %108

103:                                              ; preds = %101
  %104 = load ptr, ptr %14, align 8, !tbaa !5
  %105 = load i64, ptr %13, align 8, !tbaa !11
  %106 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %104, i64 noundef %105)
          to label %107 unwind label %79

107:                                              ; preds = %103
  br label %88, !llvm.loop !16

108:                                              ; preds = %101
  %109 = load ptr, ptr %14, align 8, !tbaa !5
  %110 = load i64, ptr %13, align 8, !tbaa !11
  %111 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %109, i64 noundef %110)
          to label %112 unwind label %79

112:                                              ; preds = %108
  br label %113

113:                                              ; preds = %353, %112
  %114 = load ptr, ptr %15, align 8, !tbaa !13
  %115 = getelementptr i8, ptr %114, i64 -24
  %116 = load i64, ptr %115, align 8
  %117 = getelementptr inbounds i8, ptr %15, i64 %116
  %118 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %117)
          to label %119 unwind label %79

119:                                              ; preds = %113
  %120 = xor i1 %118, true
  br i1 %120, label %121, label %360

121:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  store i32 0, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %122 unwind label %144

122:                                              ; preds = %121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  store i32 0, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  store i64 0, ptr %22, align 8, !tbaa !11
  br label %123

123:                                              ; preds = %228, %122
  %124 = load i64, ptr %22, align 8, !tbaa !11
  %125 = load i64, ptr %13, align 8, !tbaa !11
  %126 = icmp ult i64 %124, %125
  br i1 %126, label %127, label %141

127:                                              ; preds = %123
  %128 = load ptr, ptr %14, align 8, !tbaa !5
  %129 = load i64, ptr %22, align 8, !tbaa !11
  %130 = getelementptr inbounds i8, ptr %128, i64 %129
  %131 = load i8, ptr %130, align 1, !tbaa !15
  %132 = sext i8 %131 to i32
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %141

134:                                              ; preds = %127
  %135 = load ptr, ptr %14, align 8, !tbaa !5
  %136 = load i64, ptr %22, align 8, !tbaa !11
  %137 = getelementptr inbounds i8, ptr %135, i64 %136
  %138 = load i8, ptr %137, align 1, !tbaa !15
  %139 = sext i8 %138 to i32
  %140 = icmp ne i32 %139, 10
  br label %141

141:                                              ; preds = %134, %127, %123
  %142 = phi i1 [ false, %127 ], [ false, %123 ], [ %140, %134 ]
  br i1 %142, label %148, label %143

143:                                              ; preds = %141
  store i32 6, ptr %23, align 4
  br label %231

144:                                              ; preds = %121
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %10, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  br label %359

148:                                              ; preds = %141
  %149 = load i32, ptr %16, align 4, !tbaa !9
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %169

151:                                              ; preds = %148
  %152 = load ptr, ptr %14, align 8, !tbaa !5
  %153 = load i64, ptr %22, align 8, !tbaa !11
  %154 = getelementptr inbounds i8, ptr %152, i64 %153
  %155 = load i8, ptr %154, align 1, !tbaa !15
  %156 = sext i8 %155 to i32
  %157 = icmp ne i32 %156, 9
  br i1 %157, label %158, label %169

158:                                              ; preds = %151
  %159 = load ptr, ptr %14, align 8, !tbaa !5
  %160 = load i64, ptr %22, align 8, !tbaa !11
  %161 = getelementptr inbounds i8, ptr %159, i64 %160
  %162 = load i8, ptr %161, align 1, !tbaa !15
  %163 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %17, i8 noundef signext %162)
          to label %164 unwind label %165

164:                                              ; preds = %158
  br label %169

165:                                              ; preds = %158
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %10, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %358

169:                                              ; preds = %164, %151, %148
  %170 = load i32, ptr %16, align 4, !tbaa !9
  %171 = icmp eq i32 %170, 2
  br i1 %171, label %172, label %185

172:                                              ; preds = %169
  %173 = load ptr, ptr %14, align 8, !tbaa !5
  %174 = load i64, ptr %22, align 8, !tbaa !11
  %175 = sub i64 %174, 1
  %176 = getelementptr inbounds i8, ptr %173, i64 %175
  %177 = load i8, ptr %176, align 1, !tbaa !15
  %178 = sext i8 %177 to i32
  %179 = icmp eq i32 %178, 9
  br i1 %179, label %180, label %185

180:                                              ; preds = %172
  %181 = load ptr, ptr %14, align 8, !tbaa !5
  %182 = load i64, ptr %22, align 8, !tbaa !11
  %183 = getelementptr inbounds i8, ptr %181, i64 %182
  %184 = call i32 @atoi(ptr noundef %183) #12
  store i32 %184, ptr %19, align 4, !tbaa !9
  br label %185

185:                                              ; preds = %180, %172, %169
  %186 = load i32, ptr %16, align 4, !tbaa !9
  %187 = icmp eq i32 %186, 3
  br i1 %187, label %188, label %201

188:                                              ; preds = %185
  %189 = load ptr, ptr %14, align 8, !tbaa !5
  %190 = load i64, ptr %22, align 8, !tbaa !11
  %191 = sub i64 %190, 1
  %192 = getelementptr inbounds i8, ptr %189, i64 %191
  %193 = load i8, ptr %192, align 1, !tbaa !15
  %194 = sext i8 %193 to i32
  %195 = icmp eq i32 %194, 9
  br i1 %195, label %196, label %201

196:                                              ; preds = %188
  %197 = load ptr, ptr %14, align 8, !tbaa !5
  %198 = load i64, ptr %22, align 8, !tbaa !11
  %199 = getelementptr inbounds i8, ptr %197, i64 %198
  %200 = call i32 @atoi(ptr noundef %199) #12
  store i32 %200, ptr %20, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %196, %188, %185
  %202 = load i32, ptr %16, align 4, !tbaa !9
  %203 = icmp eq i32 %202, 4
  br i1 %203, label %204, label %217

204:                                              ; preds = %201
  %205 = load ptr, ptr %14, align 8, !tbaa !5
  %206 = load i64, ptr %22, align 8, !tbaa !11
  %207 = sub i64 %206, 1
  %208 = getelementptr inbounds i8, ptr %205, i64 %207
  %209 = load i8, ptr %208, align 1, !tbaa !15
  %210 = sext i8 %209 to i32
  %211 = icmp eq i32 %210, 9
  br i1 %211, label %212, label %217

212:                                              ; preds = %204
  %213 = load ptr, ptr %14, align 8, !tbaa !5
  %214 = load i64, ptr %22, align 8, !tbaa !11
  %215 = getelementptr inbounds i8, ptr %213, i64 %214
  %216 = call i32 @atoi(ptr noundef %215) #12
  store i32 %216, ptr %21, align 4, !tbaa !9
  store i32 6, ptr %23, align 4
  br label %231

217:                                              ; preds = %204, %201
  %218 = load ptr, ptr %14, align 8, !tbaa !5
  %219 = load i64, ptr %22, align 8, !tbaa !11
  %220 = getelementptr inbounds i8, ptr %218, i64 %219
  %221 = load i8, ptr %220, align 1, !tbaa !15
  %222 = sext i8 %221 to i32
  %223 = icmp eq i32 %222, 9
  br i1 %223, label %224, label %227

224:                                              ; preds = %217
  %225 = load i32, ptr %16, align 4, !tbaa !9
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr %16, align 4, !tbaa !9
  br label %227

227:                                              ; preds = %224, %217
  br label %228

228:                                              ; preds = %227
  %229 = load i64, ptr %22, align 8, !tbaa !11
  %230 = add i64 %229, 1
  store i64 %230, ptr %22, align 8, !tbaa !11
  br label %123, !llvm.loop !18

231:                                              ; preds = %212, %143
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %232

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  store i64 0, ptr %24, align 8, !tbaa !11
  br label %233

233:                                              ; preds = %346, %232
  %234 = load i64, ptr %24, align 8, !tbaa !11
  %235 = load ptr, ptr %4, align 8, !tbaa !5
  %236 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %235) #9
  %237 = icmp ult i64 %234, %236
  br i1 %237, label %239, label %238

238:                                              ; preds = %233
  store i32 9, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %349

239:                                              ; preds = %233
  %240 = load ptr, ptr %4, align 8, !tbaa !5
  %241 = load i64, ptr %24, align 8, !tbaa !11
  %242 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %240, i64 noundef %241) #9
  %243 = getelementptr inbounds %struct.strvcfentry, ptr %242, i32 0, i32 11
  %244 = getelementptr inbounds %"struct.std::pair.17", ptr %243, i32 0, i32 1
  %245 = load i32, ptr %244, align 4, !tbaa !19
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %345

247:                                              ; preds = %239
  %248 = load ptr, ptr %4, align 8, !tbaa !5
  %249 = load i64, ptr %24, align 8, !tbaa !11
  %250 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %249) #9
  %251 = getelementptr inbounds %struct.strvcfentry, ptr %250, i32 0, i32 1
  %252 = getelementptr inbounds %struct.strcoordinate, ptr %251, i32 0, i32 1
  %253 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  %254 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  %255 = call i32 @strcmp(ptr noundef %253, ptr noundef %254) #12
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %297

257:                                              ; preds = %247
  %258 = load ptr, ptr %4, align 8, !tbaa !5
  %259 = load i64, ptr %24, align 8, !tbaa !11
  %260 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %258, i64 noundef %259) #9
  %261 = getelementptr inbounds %struct.strvcfentry, ptr %260, i32 0, i32 1
  %262 = getelementptr inbounds %struct.strcoordinate, ptr %261, i32 0, i32 0
  %263 = load i32, ptr %262, align 8, !tbaa !42
  %264 = load i32, ptr %19, align 4, !tbaa !9
  %265 = sub nsw i32 %263, %264
  %266 = call i32 @llvm.abs.i32(i32 %265, i1 true)
  %267 = load i32, ptr %6, align 4, !tbaa !9
  %268 = icmp slt i32 %266, %267
  br i1 %268, label %269, label %296

269:                                              ; preds = %257
  %270 = load ptr, ptr %4, align 8, !tbaa !5
  %271 = load i64, ptr %24, align 8, !tbaa !11
  %272 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef %271) #9
  %273 = getelementptr inbounds %struct.strvcfentry, ptr %272, i32 0, i32 11
  %274 = getelementptr inbounds %"struct.std::pair.17", ptr %273, i32 0, i32 0
  %275 = load i32, ptr %274, align 4, !tbaa !43
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr %274, align 4, !tbaa !43
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = load i64, ptr %24, align 8, !tbaa !11
  %279 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %277, i64 noundef %278) #9
  %280 = getelementptr inbounds %struct.strvcfentry, ptr %279, i32 0, i32 11
  %281 = getelementptr inbounds %"struct.std::pair.17", ptr %280, i32 0, i32 1
  %282 = load i32, ptr %281, align 4, !tbaa !19
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr %281, align 4, !tbaa !19
  %284 = load ptr, ptr %4, align 8, !tbaa !5
  %285 = load i64, ptr %24, align 8, !tbaa !11
  %286 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %284, i64 noundef %285) #9
  %287 = getelementptr inbounds %struct.strvcfentry, ptr %286, i32 0, i32 5
  %288 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %287, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %289 unwind label %292

289:                                              ; preds = %269
  %290 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc(ptr noundef nonnull align 8 dereferenceable(32) %288, i8 noundef signext 1)
          to label %291 unwind label %292

291:                                              ; preds = %289
  br label %296

292:                                              ; preds = %339, %319, %289, %269
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %10, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %358

296:                                              ; preds = %291, %257
  br label %344

297:                                              ; preds = %247
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = load i64, ptr %24, align 8, !tbaa !11
  %300 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef %299) #9
  %301 = getelementptr inbounds %struct.strvcfentry, ptr %300, i32 0, i32 2
  %302 = getelementptr inbounds %struct.strcoordinate, ptr %301, i32 0, i32 1
  %303 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %302) #9
  %304 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  %305 = call i32 @strcmp(ptr noundef %303, ptr noundef %304) #12
  %306 = icmp eq i32 %305, 0
  br i1 %306, label %307, label %343

307:                                              ; preds = %297
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = load i64, ptr %24, align 8, !tbaa !11
  %310 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %309) #9
  %311 = getelementptr inbounds %struct.strvcfentry, ptr %310, i32 0, i32 2
  %312 = getelementptr inbounds %struct.strcoordinate, ptr %311, i32 0, i32 0
  %313 = load i32, ptr %312, align 8, !tbaa !44
  %314 = load i32, ptr %19, align 4, !tbaa !9
  %315 = sub nsw i32 %313, %314
  %316 = call i32 @llvm.abs.i32(i32 %315, i1 true)
  %317 = load i32, ptr %6, align 4, !tbaa !9
  %318 = icmp slt i32 %316, %317
  br i1 %318, label %319, label %342

319:                                              ; preds = %307
  %320 = load ptr, ptr %4, align 8, !tbaa !5
  %321 = load i64, ptr %24, align 8, !tbaa !11
  %322 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %321) #9
  %323 = getelementptr inbounds %struct.strvcfentry, ptr %322, i32 0, i32 11
  %324 = getelementptr inbounds %"struct.std::pair.17", ptr %323, i32 0, i32 0
  %325 = load i32, ptr %324, align 4, !tbaa !43
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr %324, align 4, !tbaa !43
  %327 = load ptr, ptr %4, align 8, !tbaa !5
  %328 = load i64, ptr %24, align 8, !tbaa !11
  %329 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef %328) #9
  %330 = getelementptr inbounds %struct.strvcfentry, ptr %329, i32 0, i32 11
  %331 = getelementptr inbounds %"struct.std::pair.17", ptr %330, i32 0, i32 1
  %332 = load i32, ptr %331, align 4, !tbaa !19
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %331, align 4, !tbaa !19
  %334 = load ptr, ptr %4, align 8, !tbaa !5
  %335 = load i64, ptr %24, align 8, !tbaa !11
  %336 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %334, i64 noundef %335) #9
  %337 = getelementptr inbounds %struct.strvcfentry, ptr %336, i32 0, i32 5
  %338 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %337, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %339 unwind label %292

339:                                              ; preds = %319
  %340 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc(ptr noundef nonnull align 8 dereferenceable(32) %338, i8 noundef signext 1)
          to label %341 unwind label %292

341:                                              ; preds = %339
  br label %342

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

343:                                              ; preds = %342, %297
  br label %344

344:                                              ; preds = %343, %296
  br label %345

345:                                              ; preds = %344, %239
  br label %346

346:                                              ; preds = %345
  %347 = load i64, ptr %24, align 8, !tbaa !11
  %348 = add i64 %347, 1
  store i64 %348, ptr %24, align 8, !tbaa !11
  br label %233, !llvm.loop !45

349:                                              ; preds = %238
  %350 = load ptr, ptr %14, align 8, !tbaa !5
  %351 = load i64, ptr %13, align 8, !tbaa !11
  %352 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %350, i64 noundef %351)
          to label %353 unwind label %354

353:                                              ; preds = %349
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %113, !llvm.loop !46

354:                                              ; preds = %349
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %10, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %11, align 4
  br label %358

358:                                              ; preds = %354, %292, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %359

359:                                              ; preds = %358, %144
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %378

360:                                              ; preds = %119
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %15)
          to label %361 unwind label %79

361:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  store i64 0, ptr %25, align 8, !tbaa !11
  br label %362

362:                                              ; preds = %374, %361
  %363 = load i64, ptr %25, align 8, !tbaa !11
  %364 = load ptr, ptr %4, align 8, !tbaa !5
  %365 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %364) #9
  %366 = icmp ult i64 %363, %365
  br i1 %366, label %368, label %367

367:                                              ; preds = %362
  store i32 12, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %377

368:                                              ; preds = %362
  %369 = load ptr, ptr %4, align 8, !tbaa !5
  %370 = load i64, ptr %25, align 8, !tbaa !11
  %371 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %370) #9
  %372 = getelementptr inbounds %struct.strvcfentry, ptr %371, i32 0, i32 11
  %373 = getelementptr inbounds %"struct.std::pair.17", ptr %372, i32 0, i32 1
  store i32 0, ptr %373, align 4, !tbaa !19
  br label %374

374:                                              ; preds = %368
  %375 = load i64, ptr %25, align 8, !tbaa !11
  %376 = add i64 %375, 1
  store i64 %376, ptr %25, align 8, !tbaa !11
  br label %362, !llvm.loop !47

377:                                              ; preds = %367
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #9
  call void @llvm.lifetime.end.p0(i64 520, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  ret void

378:                                              ; preds = %359, %79
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #9
  br label %379

379:                                              ; preds = %378, %75
  call void @llvm.lifetime.end.p0(i64 520, ptr %15) #9
  br label %380

380:                                              ; preds = %379, %71
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  br label %381

381:                                              ; preds = %380, %46, %39
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %382

382:                                              ; preds = %381, %35
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %383

383:                                              ; preds = %382
  %384 = load ptr, ptr %10, align 8
  %385 = load i32, ptr %11, align 4
  %386 = insertvalue { ptr, i32 } poison, ptr %384, 0
  %387 = insertvalue { ptr, i32 } %386, i32 %385, 1
  resume { ptr, i32 } %387
}

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

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

; 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)) #3 align 2

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

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

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #7

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #8

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = !{!20, !10, i64 208}
!20 = !{!"_ZTS11strvcfentry", !21, i64 0, !23, i64 32, !23, i64 72, !24, i64 112, !25, i64 120, !10, i64 168, !10, i64 172, !33, i64 176, !37, i64 200, !39, i64 204, !21, i64 216, !10, i64 248, !21, i64 256, !40, i64 288, !21, i64 296, !10, i64 328, !41, i64 336, !39, i64 400, !39, i64 408, !10, i64 416}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !12, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"_ZTS13strcoordinate", !10, i64 0, !21, i64 8}
!24 = !{!"short", !7, i64 0}
!25 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !26, i64 0}
!26 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !27, i64 0}
!27 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !28, i64 0, !30, i64 8}
!28 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !29, i64 0}
!29 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!30 = !{!"_ZTSSt15_Rb_tree_header", !31, i64 0, !12, i64 32}
!31 = !{!"_ZTSSt18_Rb_tree_node_base", !32, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!32 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt4pairIbbE", !38, i64 0, !38, i64 1}
!38 = !{!"bool", !7, i64 0}
!39 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!40 = !{!"double", !7, i64 0}
!41 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !21, i64 0, !21, i64 32}
!42 = !{!20, !10, i64 32}
!43 = !{!20, !10, i64 204}
!44 = !{!20, !10, i64 72}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.0" = type { i8 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.3 }
%union.anon.3 = type { i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z19comp_entries_mummerRSt6vectorI11strvcfentrySaIS0_EENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull %1, i32 noundef %2) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator.0", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::basic_ifstream", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.0", align 1
  %10 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.1, i64 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %11 unwind label %16

11:                                               ; preds = %3
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  %.not = icmp eq i64 %10, -1
  br i1 %.not, label %20, label %12

12:                                               ; preds = %11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #9
  %13 = add i64 %10, 6
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %13, i64 noundef -1)
          to label %14 unwind label %18

14:                                               ; preds = %12
  %15 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  br label %24

16:                                               ; preds = %3
  %17 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  br label %158

18:                                               ; preds = %12
  %19 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  br label %157

20:                                               ; preds = %11
  %21 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %24 unwind label %22

22:                                               ; preds = %20
  %23 = landingpad { ptr, i32 }
          cleanup
  br label %157

24:                                               ; preds = %20, %14
  %25 = invoke noalias noundef nonnull dereferenceable(2000000) ptr @_Znam(i64 noundef 2000000) #10
          to label %26 unwind label %43

26:                                               ; preds = %24
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %7) #9
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7)
          to label %27 unwind label %45

27:                                               ; preds = %26
  %28 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %7, ptr noundef %28, i32 noundef 8)
          to label %29 unwind label %.loopexit.split-lp.loopexit.split-lp

29:                                               ; preds = %27
  %30 = load ptr, ptr %7, align 8, !tbaa !5
  %31 = getelementptr i8, ptr %30, i64 -24
  %32 = load i64, ptr %31, align 8
  %33 = getelementptr inbounds i8, ptr %7, i64 %32
  %34 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %33)
  br i1 %34, label %47, label %35

35:                                               ; preds = %29
  %36 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %37 unwind label %.loopexit.split-lp.loopexit.split-lp

37:                                               ; preds = %35
  %38 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  %39 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef %38)
          to label %40 unwind label %.loopexit.split-lp.loopexit.split-lp

40:                                               ; preds = %37
  %41 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %42 unwind label %.loopexit.split-lp.loopexit.split-lp

42:                                               ; preds = %40
  call void @exit(i32 noundef 0) #11
  unreachable

43:                                               ; preds = %24
  %44 = landingpad { ptr, i32 }
          cleanup
  br label %157

45:                                               ; preds = %26
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %156

.loopexit:                                        ; preds = %.preheader111
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %56, %.preheader112
  %lpad.loopexit113 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp:             ; preds = %149, %.critedge, %47, %40, %37, %35, %27
  %lpad.loopexit.split-lp114 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

47:                                               ; preds = %29
  %48 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %25, i64 noundef 2000000)
          to label %.preheader112 unwind label %.loopexit.split-lp.loopexit.split-lp

.preheader112:                                    ; preds = %47, %56
  %49 = load ptr, ptr %7, align 8, !tbaa !5
  %50 = getelementptr i8, ptr %49, i64 -24
  %51 = load i64, ptr %50, align 8
  %52 = getelementptr inbounds i8, ptr %7, i64 %51
  %53 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %52)
          to label %54 unwind label %.loopexit.split-lp.loopexit

54:                                               ; preds = %.preheader112
  %55 = load i8, ptr %25, align 1
  %.not96 = icmp eq i8 %55, 91
  %or.cond = select i1 %53, i1 true, i1 %.not96
  br i1 %or.cond, label %.critedge, label %56

56:                                               ; preds = %54
  %57 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %25, i64 noundef 2000000)
          to label %.preheader112 unwind label %.loopexit.split-lp.loopexit, !llvm.loop !8

.critedge:                                        ; preds = %54
  %58 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %25, i64 noundef 2000000)
          to label %.preheader111 unwind label %.loopexit.split-lp.loopexit.split-lp

.preheader111:                                    ; preds = %.critedge, %144
  %59 = load ptr, ptr %7, align 8, !tbaa !5
  %60 = getelementptr i8, ptr %59, i64 -24
  %61 = load i64, ptr %60, align 8
  %62 = getelementptr inbounds i8, ptr %7, i64 %61
  %63 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %62)
          to label %64 unwind label %.loopexit

64:                                               ; preds = %.preheader111
  br i1 %63, label %149, label %65

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %66 unwind label %70

66:                                               ; preds = %65
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  br label %67

67:                                               ; preds = %66, %.thread108
  %.080119 = phi i64 [ 0, %66 ], [ %92, %.thread108 ]
  %.081118 = phi i32 [ 0, %66 ], [ %.1110, %.thread108 ]
  %.082117 = phi i32 [ 0, %66 ], [ %spec.select, %.thread108 ]
  %68 = getelementptr inbounds i8, ptr %25, i64 %.080119
  %69 = load i8, ptr %68, align 1, !tbaa !10
  switch i8 %69, label %72 [
    i8 0, label %.critedge2
    i8 10, label %.critedge2
  ]

70:                                               ; preds = %65
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  br label %148

72:                                               ; preds = %67
  %73 = icmp ne i32 %.082117, 0
  %.not99 = icmp eq i8 %69, 9
  %or.cond107 = or i1 %73, %.not99
  br i1 %or.cond107, label %78, label %74

74:                                               ; preds = %72
  %75 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %8, i8 noundef signext %69)
          to label %..thread108_crit_edge unwind label %76

..thread108_crit_edge:                            ; preds = %74
  %.pre = load i8, ptr %68, align 1, !tbaa !10
  br label %.thread108

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

78:                                               ; preds = %72
  switch i32 %.082117, label %.thread108 [
    i32 2, label %79
    i32 4, label %85
  ]

79:                                               ; preds = %78
  %80 = getelementptr i8, ptr %68, i64 -1
  %81 = load i8, ptr %80, align 1, !tbaa !10
  %82 = icmp eq i8 %81, 9
  br i1 %82, label %83, label %.thread108

83:                                               ; preds = %79
  %84 = call i32 @atoi(ptr nocapture noundef %68) #12
  br label %.thread108

85:                                               ; preds = %78
  %86 = getelementptr i8, ptr %68, i64 -1
  %87 = load i8, ptr %86, align 1, !tbaa !10
  %88 = icmp eq i8 %87, 9
  br i1 %88, label %.critedge2, label %.thread108

.thread108:                                       ; preds = %..thread108_crit_edge, %78, %79, %83, %85
  %89 = phi i8 [ %69, %85 ], [ %69, %79 ], [ %69, %83 ], [ %.pre, %..thread108_crit_edge ], [ %69, %78 ]
  %.1110 = phi i32 [ %.081118, %85 ], [ %.081118, %79 ], [ %84, %83 ], [ %.081118, %..thread108_crit_edge ], [ %.081118, %78 ]
  %90 = icmp eq i8 %89, 9
  %91 = zext i1 %90 to i32
  %spec.select = add nuw nsw i32 %.082117, %91
  %92 = add nuw nsw i64 %.080119, 1
  %exitcond.not = icmp eq i64 %92, 2000000
  br i1 %exitcond.not, label %.critedge2, label %67, !llvm.loop !12

.critedge2:                                       ; preds = %85, %.thread108, %67, %67
  %.081.lcssa = phi i32 [ %.081118, %85 ], [ %.1110, %.thread108 ], [ %.081118, %67 ], [ %.081118, %67 ]
  %93 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #9
  %.not124 = icmp eq i64 %93, 0
  br i1 %.not124, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %140, %.critedge2
  %94 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi7getlineEPcl(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %25, i64 noundef 2000000)
          to label %144 unwind label %145

.lr.ph:                                           ; preds = %.critedge2, %140
  %.079120 = phi i64 [ %141, %140 ], [ 0, %.critedge2 ]
  %95 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %96 = getelementptr inbounds i8, ptr %95, i64 208
  %97 = load i32, ptr %96, align 8, !tbaa !13
  %98 = icmp eq i32 %97, 0
  br i1 %98, label %99, label %140

99:                                               ; preds = %.lr.ph
  %100 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %101 = getelementptr inbounds i8, ptr %100, i64 40
  %102 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %101) #9
  %103 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  %104 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %102, ptr noundef nonnull dereferenceable(1) %103) #12
  %105 = icmp eq i32 %104, 0
  %106 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  br i1 %105, label %107, label %115

107:                                              ; preds = %99
  %108 = getelementptr inbounds i8, ptr %106, i64 32
  %109 = load i32, ptr %108, align 8, !tbaa !39
  %110 = sub nsw i32 %109, %.081.lcssa
  %111 = call i32 @llvm.abs.i32(i32 %110, i1 true)
  %112 = icmp slt i32 %111, %2
  br i1 %112, label %.invoke126, label %140

113:                                              ; preds = %.invoke126, %.invoke
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %147

115:                                              ; preds = %99
  %116 = getelementptr inbounds i8, ptr %106, i64 80
  %117 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  %118 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  %119 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %117, ptr noundef nonnull dereferenceable(1) %118) #12
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %140

121:                                              ; preds = %115
  %122 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %123 = getelementptr inbounds i8, ptr %122, i64 72
  %124 = load i32, ptr %123, align 8, !tbaa !40
  %125 = sub nsw i32 %124, %.081.lcssa
  %126 = call i32 @llvm.abs.i32(i32 %125, i1 true)
  %127 = icmp slt i32 %126, %2
  br i1 %127, label %.invoke126, label %140

.invoke126:                                       ; preds = %121, %107
  %128 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %129 = getelementptr inbounds i8, ptr %128, i64 204
  %130 = load i32, ptr %129, align 4, !tbaa !41
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr %129, align 4, !tbaa !41
  %132 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %133 = getelementptr inbounds i8, ptr %132, i64 208
  %134 = load i32, ptr %133, align 8, !tbaa !13
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr %133, align 8, !tbaa !13
  %136 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.079120) #9
  %137 = getelementptr inbounds i8, ptr %136, i64 120
  %138 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %137, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %.invoke unwind label %113

.invoke:                                          ; preds = %.invoke126
  %139 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc(ptr noundef nonnull align 8 dereferenceable(32) %138, i8 noundef signext 1)
          to label %140 unwind label %113

140:                                              ; preds = %.invoke, %.lr.ph, %115, %121, %107
  %141 = add nuw i64 %.079120, 1
  %142 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #9
  %143 = icmp ult i64 %141, %142
  br i1 %143, label %.lr.ph, label %._crit_edge, !llvm.loop !42

144:                                              ; preds = %._crit_edge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %.preheader111, !llvm.loop !43

145:                                              ; preds = %._crit_edge
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %147

147:                                              ; preds = %145, %113, %76
  %.pn = phi { ptr, i32 } [ %114, %113 ], [ %146, %145 ], [ %77, %76 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %148

148:                                              ; preds = %147, %70
  %.pn.pn = phi { ptr, i32 } [ %.pn, %147 ], [ %71, %70 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %.loopexit.split-lp

149:                                              ; preds = %64
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %7)
          to label %.preheader unwind label %.loopexit.split-lp.loopexit.split-lp

.preheader:                                       ; preds = %149
  %150 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #9
  %.not125 = icmp eq i64 %150, 0
  br i1 %.not125, label %._crit_edge123, label %.lr.ph122

._crit_edge123:                                   ; preds = %.lr.ph122, %.preheader
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #9
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  ret void

.lr.ph122:                                        ; preds = %.preheader, %.lr.ph122
  %.0121 = phi i64 [ %153, %.lr.ph122 ], [ 0, %.preheader ]
  %151 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0121) #9
  %152 = getelementptr inbounds i8, ptr %151, i64 208
  store i32 0, ptr %152, align 8, !tbaa !13
  %153 = add nuw i64 %.0121, 1
  %154 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #9
  %155 = icmp ult i64 %153, %154
  br i1 %155, label %.lr.ph122, label %._crit_edge123, !llvm.loop !44

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %148
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %148 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit113, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp114, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #9
  br label %156

156:                                              ; preds = %.loopexit.split-lp, %45
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %.loopexit.split-lp ], [ %46, %45 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %7) #9
  br label %157

157:                                              ; preds = %43, %156, %22, %18
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %19, %18 ], [ %23, %22 ], [ %.pn.pn.pn.pn, %156 ], [ %44, %43 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %158

158:                                              ; preds = %157, %16
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %157 ], [ %17, %16 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn
}

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

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

; 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 #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #8

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = distinct !{!8, !9}
!9 = !{!"llvm.loop.mustprogress"}
!10 = !{!11, !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = distinct !{!12, !9}
!13 = !{!14, !20, i64 208}
!14 = !{!"_ZTS11strvcfentry", !15, i64 0, !19, i64 32, !19, i64 72, !21, i64 112, !22, i64 120, !20, i64 168, !20, i64 172, !30, i64 176, !34, i64 200, !36, i64 204, !15, i64 216, !20, i64 248, !15, i64 256, !37, i64 288, !15, i64 296, !20, i64 328, !38, i64 336, !36, i64 400, !36, i64 408, !20, i64 416}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !18, i64 8, !11, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!17 = !{!"any pointer", !11, i64 0}
!18 = !{!"long", !11, i64 0}
!19 = !{!"_ZTS13strcoordinate", !20, i64 0, !15, i64 8}
!20 = !{!"int", !11, i64 0}
!21 = !{!"short", !11, i64 0}
!22 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !23, i64 0}
!23 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !24, i64 0}
!24 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !25, i64 0, !27, i64 8}
!25 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !26, i64 0}
!26 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!27 = !{!"_ZTSSt15_Rb_tree_header", !28, i64 0, !18, i64 32}
!28 = !{!"_ZTSSt18_Rb_tree_node_base", !29, i64 0, !17, i64 8, !17, i64 16, !17, i64 24}
!29 = !{!"_ZTSSt14_Rb_tree_color", !11, i64 0}
!30 = !{!"_ZTSSt6vectorIiSaIiEE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!34 = !{!"_ZTSSt4pairIbbE", !35, i64 0, !35, i64 1}
!35 = !{!"bool", !11, i64 0}
!36 = !{!"_ZTSSt4pairIiiE", !20, i64 0, !20, i64 4}
!37 = !{!"double", !11, i64 0}
!38 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !15, i64 0, !15, i64 32}
!39 = !{!14, !20, i64 32}
!40 = !{!14, !20, i64 72}
!41 = !{!14, !20, i64 204}
!42 = distinct !{!42, !9}
!43 = distinct !{!43, !9}
!44 = distinct !{!44, !9}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass