; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/inputData.ll (ZN9InputData12loadPoreDataEv)

; 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.tuple3 = type { ptr, ptr, ptr }
%class.InputData = type { %class.InputFile.base, %"class.std::basic_ifstream", %"class.std::basic_ifstream", %"class.std::basic_ifstream", %"class.std::basic_ifstream", i32, i32, i32, i32, i8, i8, i8, i8, %"class.std::vector.4", %"class.std::vector.9", %"class.std::vector.4", %"class.std::vector.4", %"class.std::multimap", %"class.std::multimap", %"class.std::set", %"class.std::set", %"class.std::vector.22", %"class.std::vector.27", %"class.std::vector.27", double, double, double, double, double, double }
%class.InputFile.base = type <{ %"class.std::vector", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8 }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl" }
%"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl" }
%"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<int, std::pair<const int, tuple3<int, int, double>>, std::_Select1st<std::pair<const int, tuple3<int, int, double>>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, tuple3<int, int, double>>, std::_Select1st<std::pair<const int, tuple3<int, int, double>>>, std::less<int>>::_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::set" = type { %"class.std::_Rb_tree.17" }
%"class.std::_Rb_tree.17" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = 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.PoreStruct = type { i32, double, double, double, i32, double, double, double, double }

@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.70 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZN9InputData12loadPoreDataEv = external hidden unnamed_addr constant [13 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) #2 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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #4

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

; 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 @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9InputData12loadPoreDataEv(ptr noundef nonnull align 8 dereferenceable(2640) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i1, align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca i1, align 1
  %26 = alloca i1, align 1
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::allocator.0", align 1
  %34 = alloca i1, align 1
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::allocator.0", align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca i1, align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca i1, align 1
  %49 = alloca i32, align 4
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::allocator.0", align 1
  %56 = alloca i1, align 1
  %57 = alloca i1, align 1
  %58 = alloca i1, align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::allocator.0", align 1
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca i1, align 1
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %class.tuple3, align 8
  %69 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %70 = load ptr, ptr %2, align 8
  %71 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 13
  %72 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 6
  %73 = load i32, ptr %72, align 4, !tbaa !9
  %74 = sext i32 %73 to i64
  call void @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %74)
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  store i32 0, ptr %3, align 4, !tbaa !59
  br label %75

75:                                               ; preds = %598, %1
  %76 = load i32, ptr %3, align 4, !tbaa !59
  %77 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 6
  %78 = load i32, ptr %77, align 4, !tbaa !9
  %79 = icmp slt i32 %76, %78
  br i1 %79, label %81, label %80

80:                                               ; preds = %75
  store i32 2, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  br label %601

81:                                               ; preds = %75
  %82 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 9
  %83 = load i8, ptr %82, align 8, !tbaa !60, !range !61, !noundef !62
  %84 = trunc i8 %83 to i1
  br i1 %84, label %92, label %85

85:                                               ; preds = %81
  %86 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %87 = load ptr, ptr %86, align 8, !tbaa !63
  %88 = getelementptr i8, ptr %87, i64 -24
  %89 = load i64, ptr %88, align 8
  %90 = getelementptr inbounds i8, ptr %86, i64 %89
  %91 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %90)
  br i1 %91, label %99, label %92

92:                                               ; preds = %85, %81
  %93 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %94 = load ptr, ptr %93, align 8, !tbaa !63
  %95 = getelementptr i8, ptr %94, i64 -24
  %96 = load i64, ptr %95, align 8
  %97 = getelementptr inbounds i8, ptr %93, i64 %96
  %98 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %97)
  br i1 %98, label %99, label %131

99:                                               ; preds = %92, %85
  %100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.70)
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef @.str.71)
  %103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %104 = load i32, ptr %3, align 4, !tbaa !59
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef %104)
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %107 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 9
  %108 = load i8, ptr %107, align 8, !tbaa !60, !range !61, !noundef !62
  %109 = trunc i8 %108 to i1
  br i1 %109, label %117, label %110

110:                                              ; preds = %99
  %111 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %112 = load ptr, ptr %111, align 8, !tbaa !63
  %113 = getelementptr i8, ptr %112, i64 -24
  %114 = load i64, ptr %113, align 8
  %115 = getelementptr inbounds i8, ptr %111, i64 %114
  %116 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %115)
  br label %117

117:                                              ; preds = %110, %99
  %118 = phi i1 [ false, %99 ], [ %116, %110 ]
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %106, i1 noundef zeroext %118)
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef @.str.55)
  %121 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %122 = load ptr, ptr %121, align 8, !tbaa !63
  %123 = getelementptr i8, ptr %122, i64 -24
  %124 = load i64, ptr %123, align 8
  %125 = getelementptr inbounds i8, ptr %121, i64 %124
  %126 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %125)
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %120, i1 noundef zeroext %126)
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef @.str.72)
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #10
  unreachable

131:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %132 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #11
  store ptr %132, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %133 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 9
  %134 = load i8, ptr %133, align 8, !tbaa !60, !range !61, !noundef !62
  %135 = trunc i8 %134 to i1
  br i1 %135, label %136, label %174

136:                                              ; preds = %131
  %137 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %137, ptr noundef %138, i64 noundef 72)
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.PoreStruct, ptr %140, i32 0, i32 4
  %142 = load i32, ptr %141, align 8, !tbaa !65
  %143 = sext i32 %142 to i64
  %144 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %143, i64 4)
  %145 = extractvalue { i64, i1 } %144, 1
  %146 = extractvalue { i64, i1 } %144, 0
  %147 = select i1 %145, i64 -1, i64 %146
  %148 = call noalias noundef nonnull ptr @_Znam(i64 noundef %147) #11
  store ptr %148, ptr %6, align 8, !tbaa !5
  %149 = load ptr, ptr %5, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.PoreStruct, ptr %149, i32 0, i32 4
  %151 = load i32, ptr %150, align 8, !tbaa !65
  %152 = sext i32 %151 to i64
  %153 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %152, i64 4)
  %154 = extractvalue { i64, i1 } %153, 1
  %155 = extractvalue { i64, i1 } %153, 0
  %156 = select i1 %154, i64 -1, i64 %155
  %157 = call noalias noundef nonnull ptr @_Znam(i64 noundef %156) #11
  store ptr %157, ptr %7, align 8, !tbaa !5
  %158 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %159 = load ptr, ptr %7, align 8, !tbaa !5
  %160 = load ptr, ptr %5, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.PoreStruct, ptr %160, i32 0, i32 4
  %162 = load i32, ptr %161, align 8, !tbaa !65
  %163 = sext i32 %162 to i64
  %164 = mul i64 %163, 4
  %165 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef %159, i64 noundef %164)
  %166 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %167 = load ptr, ptr %6, align 8, !tbaa !5
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.PoreStruct, ptr %168, i32 0, i32 4
  %170 = load i32, ptr %169, align 8, !tbaa !65
  %171 = sext i32 %170 to i64
  %172 = mul i64 %171, 4
  %173 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %166, ptr noundef %167, i64 noundef %172)
  br label %559

174:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #9
  %175 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  %176 = load ptr, ptr %5, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.PoreStruct, ptr %176, i32 0, i32 0
  %178 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr noundef nonnull align 4 dereferenceable(4) %177)
  %179 = load ptr, ptr %5, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.PoreStruct, ptr %179, i32 0, i32 5
  %181 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef nonnull align 8 dereferenceable(8) %180)
  %182 = load ptr, ptr %5, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.PoreStruct, ptr %182, i32 0, i32 6
  %184 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(8) %183)
  %185 = load ptr, ptr %5, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.PoreStruct, ptr %185, i32 0, i32 7
  %187 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef nonnull align 8 dereferenceable(8) %186)
  %188 = load ptr, ptr %5, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.PoreStruct, ptr %188, i32 0, i32 8
  %190 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %187, ptr noundef nonnull align 8 dereferenceable(8) %189)
  %191 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %191, ptr noundef nonnull align 4 dereferenceable(4) %8)
  %193 = load ptr, ptr %5, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.PoreStruct, ptr %193, i32 0, i32 1
  %195 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %192, ptr noundef nonnull align 8 dereferenceable(8) %194)
  %196 = load ptr, ptr %5, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.PoreStruct, ptr %196, i32 0, i32 2
  %198 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 8 dereferenceable(8) %197)
  %199 = load ptr, ptr %5, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.PoreStruct, ptr %199, i32 0, i32 3
  %201 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull align 8 dereferenceable(8) %200)
  %202 = load ptr, ptr %5, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.PoreStruct, ptr %202, i32 0, i32 4
  %204 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %201, ptr noundef nonnull align 4 dereferenceable(4) %203)
  %205 = load i32, ptr %8, align 4, !tbaa !59
  %206 = load ptr, ptr %5, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.PoreStruct, ptr %206, i32 0, i32 0
  %208 = load i32, ptr %207, align 8, !tbaa !67
  %209 = icmp eq i32 %205, %208
  store i1 false, ptr %13, align 1
  store i1 false, ptr %15, align 1
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %48, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %54, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %65, align 1
  br i1 %209, label %226, label %210

210:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  store i1 true, ptr %13, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  store i1 true, ptr %15, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #9
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #9
  store i1 true, ptr %25, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  store i1 true, ptr %26, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %211 unwind label %356

211:                                              ; preds = %210
  store i1 true, ptr %29, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.62)
          to label %212 unwind label %360

212:                                              ; preds = %211
  store i1 true, ptr %30, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #9
  store i1 true, ptr %32, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #9
  store i1 true, ptr %34, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  store i1 true, ptr %35, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @__FUNCTION__._ZN9InputData12loadPoreDataEv, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %213 unwind label %364

213:                                              ; preds = %212
  store i1 true, ptr %36, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %214 unwind label %368

214:                                              ; preds = %213
  store i1 true, ptr %37, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.63)
          to label %215 unwind label %372

215:                                              ; preds = %214
  store i1 true, ptr %38, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #9
  store i1 true, ptr %40, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #9
  store i1 true, ptr %42, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  store i1 true, ptr %43, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %216 unwind label %376

216:                                              ; preds = %215
  store i1 true, ptr %44, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %217 unwind label %380

217:                                              ; preds = %216
  store i1 true, ptr %45, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.65)
          to label %218 unwind label %384

218:                                              ; preds = %217
  store i1 true, ptr %46, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  store i1 true, ptr %48, align 1
  store i32 602, ptr %49, align 4, !tbaa !59
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %219 unwind label %388

219:                                              ; preds = %218
  store i1 true, ptr %50, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %220 unwind label %392

220:                                              ; preds = %219
  store i1 true, ptr %51, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #9
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #9
  store i1 true, ptr %56, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  store i1 true, ptr %57, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %221 unwind label %396

221:                                              ; preds = %220
  store i1 true, ptr %58, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  store i1 true, ptr %60, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #9
  store i1 true, ptr %62, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  store i1 true, ptr %63, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %222 unwind label %400

222:                                              ; preds = %221
  store i1 true, ptr %64, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %223 unwind label %404

223:                                              ; preds = %222
  store i1 true, ptr %65, align 1
  %224 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %11, ptr noundef %52, i32 noundef 0)
          to label %225 unwind label %408

225:                                              ; preds = %223
  br label %226

226:                                              ; preds = %225, %174
  %227 = phi i1 [ true, %174 ], [ %224, %225 ]
  %228 = xor i1 %227, true
  %229 = load i1, ptr %65, align 1
  br i1 %229, label %230, label %231

230:                                              ; preds = %226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %231

231:                                              ; preds = %230, %226
  %232 = load i1, ptr %64, align 1
  br i1 %232, label %233, label %234

233:                                              ; preds = %231
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %234

234:                                              ; preds = %233, %231
  %235 = load i1, ptr %63, align 1
  br i1 %235, label %236, label %237

236:                                              ; preds = %234
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  br label %237

237:                                              ; preds = %236, %234
  %238 = load i1, ptr %62, align 1
  br i1 %238, label %239, label %240

239:                                              ; preds = %237
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #9
  br label %240

240:                                              ; preds = %239, %237
  %241 = load i1, ptr %60, align 1
  br i1 %241, label %242, label %243

242:                                              ; preds = %240
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %243

243:                                              ; preds = %242, %240
  %244 = load i1, ptr %58, align 1
  br i1 %244, label %245, label %246

245:                                              ; preds = %243
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %246

246:                                              ; preds = %245, %243
  %247 = load i1, ptr %57, align 1
  br i1 %247, label %248, label %249

248:                                              ; preds = %246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  br label %249

249:                                              ; preds = %248, %246
  %250 = load i1, ptr %56, align 1
  br i1 %250, label %251, label %252

251:                                              ; preds = %249
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #9
  br label %252

252:                                              ; preds = %251, %249
  %253 = load i1, ptr %54, align 1
  br i1 %253, label %254, label %255

254:                                              ; preds = %252
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br label %255

255:                                              ; preds = %254, %252
  %256 = load i1, ptr %51, align 1
  br i1 %256, label %257, label %258

257:                                              ; preds = %255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %258

258:                                              ; preds = %257, %255
  %259 = load i1, ptr %50, align 1
  br i1 %259, label %260, label %261

260:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %261

261:                                              ; preds = %260, %258
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  %262 = load i1, ptr %48, align 1
  br i1 %262, label %263, label %264

263:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  br label %264

264:                                              ; preds = %263, %261
  %265 = load i1, ptr %46, align 1
  br i1 %265, label %266, label %267

266:                                              ; preds = %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %267

267:                                              ; preds = %266, %264
  %268 = load i1, ptr %45, align 1
  br i1 %268, label %269, label %270

269:                                              ; preds = %267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %270

270:                                              ; preds = %269, %267
  %271 = load i1, ptr %44, align 1
  br i1 %271, label %272, label %273

272:                                              ; preds = %270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %273

273:                                              ; preds = %272, %270
  %274 = load i1, ptr %43, align 1
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  br label %276

276:                                              ; preds = %275, %273
  %277 = load i1, ptr %42, align 1
  br i1 %277, label %278, label %279

278:                                              ; preds = %276
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  br label %279

279:                                              ; preds = %278, %276
  %280 = load i1, ptr %40, align 1
  br i1 %280, label %281, label %282

281:                                              ; preds = %279
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  br label %282

282:                                              ; preds = %281, %279
  %283 = load i1, ptr %38, align 1
  br i1 %283, label %284, label %285

284:                                              ; preds = %282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %285

285:                                              ; preds = %284, %282
  %286 = load i1, ptr %37, align 1
  br i1 %286, label %287, label %288

287:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %288

288:                                              ; preds = %287, %285
  %289 = load i1, ptr %36, align 1
  br i1 %289, label %290, label %291

290:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %291

291:                                              ; preds = %290, %288
  %292 = load i1, ptr %35, align 1
  br i1 %292, label %293, label %294

293:                                              ; preds = %291
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  br label %294

294:                                              ; preds = %293, %291
  %295 = load i1, ptr %34, align 1
  br i1 %295, label %296, label %297

296:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  br label %297

297:                                              ; preds = %296, %294
  %298 = load i1, ptr %32, align 1
  br i1 %298, label %299, label %300

299:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %300

300:                                              ; preds = %299, %297
  %301 = load i1, ptr %30, align 1
  br i1 %301, label %302, label %303

302:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %303

303:                                              ; preds = %302, %300
  %304 = load i1, ptr %29, align 1
  br i1 %304, label %305, label %306

305:                                              ; preds = %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %306

306:                                              ; preds = %305, %303
  %307 = load i1, ptr %26, align 1
  br i1 %307, label %308, label %309

308:                                              ; preds = %306
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  br label %309

309:                                              ; preds = %308, %306
  %310 = load i1, ptr %25, align 1
  br i1 %310, label %311, label %312

311:                                              ; preds = %309
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  br label %312

312:                                              ; preds = %311, %309
  %313 = load i1, ptr %23, align 1
  br i1 %313, label %314, label %315

314:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  br label %315

315:                                              ; preds = %314, %312
  %316 = load i1, ptr %21, align 1
  br i1 %316, label %317, label %318

317:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  br label %318

318:                                              ; preds = %317, %315
  %319 = load i1, ptr %19, align 1
  br i1 %319, label %320, label %321

320:                                              ; preds = %318
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %321

321:                                              ; preds = %320, %318
  %322 = load i1, ptr %17, align 1
  br i1 %322, label %323, label %324

323:                                              ; preds = %321
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  br label %324

324:                                              ; preds = %323, %321
  %325 = load i1, ptr %15, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %327

327:                                              ; preds = %326, %324
  %328 = load i1, ptr %13, align 1
  br i1 %328, label %329, label %330

329:                                              ; preds = %327
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  br label %330

330:                                              ; preds = %329, %327
  %331 = load ptr, ptr %5, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.PoreStruct, ptr %331, i32 0, i32 4
  %333 = load i32, ptr %332, align 8, !tbaa !65
  %334 = sext i32 %333 to i64
  %335 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %334, i64 4)
  %336 = extractvalue { i64, i1 } %335, 1
  %337 = extractvalue { i64, i1 } %335, 0
  %338 = select i1 %336, i64 -1, i64 %337
  %339 = call noalias noundef nonnull ptr @_Znam(i64 noundef %338) #11
  store ptr %339, ptr %6, align 8, !tbaa !5
  %340 = load ptr, ptr %5, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.PoreStruct, ptr %340, i32 0, i32 4
  %342 = load i32, ptr %341, align 8, !tbaa !65
  %343 = sext i32 %342 to i64
  %344 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %343, i64 4)
  %345 = extractvalue { i64, i1 } %344, 1
  %346 = extractvalue { i64, i1 } %344, 0
  %347 = select i1 %345, i64 -1, i64 %346
  %348 = call noalias noundef nonnull ptr @_Znam(i64 noundef %347) #11
  store ptr %348, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  store i32 0, ptr %66, align 4, !tbaa !59
  br label %349

349:                                              ; preds = %534, %330
  %350 = load i32, ptr %66, align 4, !tbaa !59
  %351 = load ptr, ptr %5, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.PoreStruct, ptr %351, i32 0, i32 4
  %353 = load i32, ptr %352, align 8, !tbaa !65
  %354 = icmp slt i32 %350, %353
  br i1 %354, label %527, label %355

355:                                              ; preds = %349
  store i32 5, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %537

356:                                              ; preds = %210
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %27, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %28, align 4
  br label %502

360:                                              ; preds = %211
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %27, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %28, align 4
  br label %498

364:                                              ; preds = %212
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %27, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %28, align 4
  br label %485

368:                                              ; preds = %213
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %27, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %28, align 4
  br label %481

372:                                              ; preds = %214
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %27, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %28, align 4
  br label %477

376:                                              ; preds = %215
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %27, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %28, align 4
  br label %464

380:                                              ; preds = %216
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %27, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %28, align 4
  br label %460

384:                                              ; preds = %217
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %27, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %28, align 4
  br label %456

388:                                              ; preds = %218
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %27, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %28, align 4
  br label %449

392:                                              ; preds = %219
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %27, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %28, align 4
  br label %445

396:                                              ; preds = %220
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %27, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %28, align 4
  br label %432

400:                                              ; preds = %221
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %27, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %28, align 4
  br label %419

404:                                              ; preds = %222
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %27, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %28, align 4
  br label %415

408:                                              ; preds = %223
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %27, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %28, align 4
  %412 = load i1, ptr %65, align 1
  br i1 %412, label %413, label %414

413:                                              ; preds = %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %414

414:                                              ; preds = %413, %408
  br label %415

415:                                              ; preds = %414, %404
  %416 = load i1, ptr %64, align 1
  br i1 %416, label %417, label %418

417:                                              ; preds = %415
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %418

418:                                              ; preds = %417, %415
  br label %419

419:                                              ; preds = %418, %400
  %420 = load i1, ptr %63, align 1
  br i1 %420, label %421, label %422

421:                                              ; preds = %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  br label %422

422:                                              ; preds = %421, %419
  %423 = load i1, ptr %62, align 1
  br i1 %423, label %424, label %425

424:                                              ; preds = %422
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #9
  br label %425

425:                                              ; preds = %424, %422
  %426 = load i1, ptr %60, align 1
  br i1 %426, label %427, label %428

427:                                              ; preds = %425
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %428

428:                                              ; preds = %427, %425
  %429 = load i1, ptr %58, align 1
  br i1 %429, label %430, label %431

430:                                              ; preds = %428
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %431

431:                                              ; preds = %430, %428
  br label %432

432:                                              ; preds = %431, %396
  %433 = load i1, ptr %57, align 1
  br i1 %433, label %434, label %435

434:                                              ; preds = %432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  br label %435

435:                                              ; preds = %434, %432
  %436 = load i1, ptr %56, align 1
  br i1 %436, label %437, label %438

437:                                              ; preds = %435
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #9
  br label %438

438:                                              ; preds = %437, %435
  %439 = load i1, ptr %54, align 1
  br i1 %439, label %440, label %441

440:                                              ; preds = %438
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br label %441

441:                                              ; preds = %440, %438
  %442 = load i1, ptr %51, align 1
  br i1 %442, label %443, label %444

443:                                              ; preds = %441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %444

444:                                              ; preds = %443, %441
  br label %445

445:                                              ; preds = %444, %392
  %446 = load i1, ptr %50, align 1
  br i1 %446, label %447, label %448

447:                                              ; preds = %445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %448

448:                                              ; preds = %447, %445
  br label %449

449:                                              ; preds = %448, %388
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  %450 = load i1, ptr %48, align 1
  br i1 %450, label %451, label %452

451:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  br label %452

452:                                              ; preds = %451, %449
  %453 = load i1, ptr %46, align 1
  br i1 %453, label %454, label %455

454:                                              ; preds = %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %455

455:                                              ; preds = %454, %452
  br label %456

456:                                              ; preds = %455, %384
  %457 = load i1, ptr %45, align 1
  br i1 %457, label %458, label %459

458:                                              ; preds = %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %459

459:                                              ; preds = %458, %456
  br label %460

460:                                              ; preds = %459, %380
  %461 = load i1, ptr %44, align 1
  br i1 %461, label %462, label %463

462:                                              ; preds = %460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %463

463:                                              ; preds = %462, %460
  br label %464

464:                                              ; preds = %463, %376
  %465 = load i1, ptr %43, align 1
  br i1 %465, label %466, label %467

466:                                              ; preds = %464
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  br label %467

467:                                              ; preds = %466, %464
  %468 = load i1, ptr %42, align 1
  br i1 %468, label %469, label %470

469:                                              ; preds = %467
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  br label %470

470:                                              ; preds = %469, %467
  %471 = load i1, ptr %40, align 1
  br i1 %471, label %472, label %473

472:                                              ; preds = %470
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  br label %473

473:                                              ; preds = %472, %470
  %474 = load i1, ptr %38, align 1
  br i1 %474, label %475, label %476

475:                                              ; preds = %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %476

476:                                              ; preds = %475, %473
  br label %477

477:                                              ; preds = %476, %372
  %478 = load i1, ptr %37, align 1
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %480

480:                                              ; preds = %479, %477
  br label %481

481:                                              ; preds = %480, %368
  %482 = load i1, ptr %36, align 1
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %484

484:                                              ; preds = %483, %481
  br label %485

485:                                              ; preds = %484, %364
  %486 = load i1, ptr %35, align 1
  br i1 %486, label %487, label %488

487:                                              ; preds = %485
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  br label %488

488:                                              ; preds = %487, %485
  %489 = load i1, ptr %34, align 1
  br i1 %489, label %490, label %491

490:                                              ; preds = %488
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  br label %491

491:                                              ; preds = %490, %488
  %492 = load i1, ptr %32, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %494

494:                                              ; preds = %493, %491
  %495 = load i1, ptr %30, align 1
  br i1 %495, label %496, label %497

496:                                              ; preds = %494
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %497

497:                                              ; preds = %496, %494
  br label %498

498:                                              ; preds = %497, %360
  %499 = load i1, ptr %29, align 1
  br i1 %499, label %500, label %501

500:                                              ; preds = %498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %501

501:                                              ; preds = %500, %498
  br label %502

502:                                              ; preds = %501, %356
  %503 = load i1, ptr %26, align 1
  br i1 %503, label %504, label %505

504:                                              ; preds = %502
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  br label %505

505:                                              ; preds = %504, %502
  %506 = load i1, ptr %25, align 1
  br i1 %506, label %507, label %508

507:                                              ; preds = %505
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  br label %508

508:                                              ; preds = %507, %505
  %509 = load i1, ptr %23, align 1
  br i1 %509, label %510, label %511

510:                                              ; preds = %508
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  br label %511

511:                                              ; preds = %510, %508
  %512 = load i1, ptr %21, align 1
  br i1 %512, label %513, label %514

513:                                              ; preds = %511
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  br label %514

514:                                              ; preds = %513, %511
  %515 = load i1, ptr %19, align 1
  br i1 %515, label %516, label %517

516:                                              ; preds = %514
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %517

517:                                              ; preds = %516, %514
  %518 = load i1, ptr %17, align 1
  br i1 %518, label %519, label %520

519:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  br label %520

520:                                              ; preds = %519, %517
  %521 = load i1, ptr %15, align 1
  br i1 %521, label %522, label %523

522:                                              ; preds = %520
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %523

523:                                              ; preds = %522, %520
  %524 = load i1, ptr %13, align 1
  br i1 %524, label %525, label %526

525:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  br label %526

526:                                              ; preds = %525, %523
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  br label %609

527:                                              ; preds = %349
  %528 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %529 = load ptr, ptr %7, align 8, !tbaa !5
  %530 = load i32, ptr %66, align 4, !tbaa !59
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds i32, ptr %529, i64 %531
  %533 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %528, ptr noundef nonnull align 4 dereferenceable(4) %532)
  br label %534

534:                                              ; preds = %527
  %535 = load i32, ptr %66, align 4, !tbaa !59
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %66, align 4, !tbaa !59
  br label %349, !llvm.loop !68

537:                                              ; preds = %355
  %538 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %539 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERb(ptr noundef nonnull align 8 dereferenceable(16) %538, ptr noundef nonnull align 1 dereferenceable(1) %9)
  %540 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERb(ptr noundef nonnull align 8 dereferenceable(16) %539, ptr noundef nonnull align 1 dereferenceable(1) %10)
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 0, ptr %67, align 4, !tbaa !59
  br label %541

541:                                              ; preds = %555, %537
  %542 = load i32, ptr %67, align 4, !tbaa !59
  %543 = load ptr, ptr %5, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.PoreStruct, ptr %543, i32 0, i32 4
  %545 = load i32, ptr %544, align 8, !tbaa !65
  %546 = icmp slt i32 %542, %545
  br i1 %546, label %548, label %547

547:                                              ; preds = %541
  store i32 8, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %558

548:                                              ; preds = %541
  %549 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  %550 = load ptr, ptr %6, align 8, !tbaa !5
  %551 = load i32, ptr %67, align 4, !tbaa !59
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds i32, ptr %550, i64 %552
  %554 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %549, ptr noundef nonnull align 4 dereferenceable(4) %553)
  br label %555

555:                                              ; preds = %548
  %556 = load i32, ptr %67, align 4, !tbaa !59
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr %67, align 4, !tbaa !59
  br label %541, !llvm.loop !70

558:                                              ; preds = %547
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %559

559:                                              ; preds = %558, %136
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #9
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  %561 = load ptr, ptr %7, align 8, !tbaa !5
  %562 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN6tuple3IP10PoreStructPiS2_EC2ES1_S2_S2_(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef %560, ptr noundef %561, ptr noundef %562)
  %563 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 13
  %564 = load i32, ptr %3, align 4, !tbaa !59
  %565 = sext i32 %564 to i64
  %566 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef %565) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %566, ptr align 8 %68, i64 24, i1 false), !tbaa.struct !71
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  store i32 0, ptr %69, align 4, !tbaa !59
  br label %567

567:                                              ; preds = %594, %559
  %568 = load i32, ptr %69, align 4, !tbaa !59
  %569 = load ptr, ptr %5, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.PoreStruct, ptr %569, i32 0, i32 4
  %571 = load i32, ptr %570, align 8, !tbaa !65
  %572 = icmp slt i32 %568, %571
  br i1 %572, label %574, label %573

573:                                              ; preds = %567
  store i32 11, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %597

574:                                              ; preds = %567
  %575 = load ptr, ptr %7, align 8, !tbaa !5
  %576 = load i32, ptr %69, align 4, !tbaa !59
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds i32, ptr %575, i64 %577
  %579 = load i32, ptr %578, align 4, !tbaa !59
  %580 = icmp eq i32 %579, -1
  br i1 %580, label %581, label %583

581:                                              ; preds = %574
  %582 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 15
  call void @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 8 dereferenceable(24) %68)
  br label %593

583:                                              ; preds = %574
  %584 = load ptr, ptr %7, align 8, !tbaa !5
  %585 = load i32, ptr %69, align 4, !tbaa !59
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds i32, ptr %584, i64 %586
  %588 = load i32, ptr %587, align 4, !tbaa !59
  %589 = icmp eq i32 %588, 0
  br i1 %589, label %590, label %592

590:                                              ; preds = %583
  %591 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 16
  call void @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %591, ptr noundef nonnull align 8 dereferenceable(24) %68)
  br label %592

592:                                              ; preds = %590, %583
  br label %593

593:                                              ; preds = %592, %581
  br label %594

594:                                              ; preds = %593
  %595 = load i32, ptr %69, align 4, !tbaa !59
  %596 = add nsw i32 %595, 1
  store i32 %596, ptr %69, align 4, !tbaa !59
  br label %567, !llvm.loop !72

597:                                              ; preds = %573
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  br label %598

598:                                              ; preds = %597
  %599 = load i32, ptr %3, align 4, !tbaa !59
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr %3, align 4, !tbaa !59
  br label %75, !llvm.loop !73

601:                                              ; preds = %80
  %602 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 12
  %603 = load i8, ptr %602, align 1, !tbaa !74, !range !61, !noundef !62
  %604 = trunc i8 %603 to i1
  br i1 %604, label %605, label %606

605:                                              ; preds = %601
  call void @_ZN9InputData17findBoundaryPoresEv(ptr noundef nonnull align 8 dereferenceable(2640) %70)
  br label %606

606:                                              ; preds = %605, %601
  %607 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 2
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %607)
  %608 = getelementptr inbounds %class.InputData, ptr %70, i32 0, i32 1
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %608)
  ret void

609:                                              ; preds = %526
  %610 = load ptr, ptr %27, align 8
  %611 = load i32, ptr %28, align 4
  %612 = insertvalue { ptr, i32 } poison, ptr %610, 0
  %613 = insertvalue { ptr, i32 } %612, i32 %611, 1
  resume { ptr, i32 } %613
}

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

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

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

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

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

!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, !28, i64 2212}
!10 = !{!"_ZTS9InputData", !11, i64 0, !20, i64 128, !20, i64 648, !20, i64 1168, !20, i64 1688, !28, i64 2208, !28, i64 2212, !28, i64 2216, !28, i64 2220, !19, i64 2224, !19, i64 2225, !19, i64 2226, !19, i64 2227, !29, i64 2232, !33, i64 2256, !29, i64 2280, !29, i64 2304, !37, i64 2328, !37, i64 2376, !45, i64 2424, !45, i64 2472, !50, i64 2520, !54, i64 2544, !54, i64 2568, !58, i64 2592, !58, i64 2600, !58, i64 2608, !58, i64 2616, !58, i64 2624, !58, i64 2632}
!11 = !{!"_ZTS9InputFile", !12, i64 0, !16, i64 24, !16, i64 56, !16, i64 88, !19, i64 120, !19, i64 121}
!12 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !17, i64 0, !18, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !21, i64 0, !22, i64 16}
!21 = !{!"_ZTSSi", !18, i64 8}
!22 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !23, i64 0, !7, i64 64, !25, i64 104, !26, i64 120, !27, i64 124, !27, i64 132, !27, i64 140, !6, i64 152, !18, i64 160, !19, i64 168, !19, i64 169, !19, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !19, i64 192, !6, i64 200, !6, i64 208, !18, i64 216, !6, i64 224, !6, i64 232}
!23 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !24, i64 56}
!24 = !{!"_ZTSSt6locale", !6, i64 0}
!25 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !19, i64 8}
!26 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!27 = !{!"_ZTS11__mbstate_t", !28, i64 0, !7, i64 4}
!28 = !{!"int", !7, i64 0}
!29 = !{!"_ZTSSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTSSt6vectorIP12ThroatStructSaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIP12ThroatStructSaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt8multimapIi6tuple3IiidESt4lessIiESaISt4pairIKiS1_EEE", !38, i64 0}
!38 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE", !39, i64 0}
!39 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !40, i64 0, !42, i64 8}
!40 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !41, i64 0}
!41 = !{!"_ZTSSt4lessIiE"}
!42 = !{!"_ZTSSt15_Rb_tree_header", !43, i64 0, !18, i64 32}
!43 = !{!"_ZTSSt18_Rb_tree_node_base", !44, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!44 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!45 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !48, i64 0, !42, i64 8}
!48 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !49, i64 0}
!49 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!50 = !{!"_ZTSSt6vectorI6tuple3IiidESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseI6tuple3IiidESaIS1_EE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!"_ZTSSt6vectorIiSaIiEE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"double", !7, i64 0}
!59 = !{!28, !28, i64 0}
!60 = !{!10, !19, i64 2224}
!61 = !{i8 0, i8 2}
!62 = !{}
!63 = !{!64, !64, i64 0}
!64 = !{!"vtable pointer", !8, i64 0}
!65 = !{!66, !28, i64 32}
!66 = !{!"_ZTS10PoreStruct", !28, i64 0, !58, i64 8, !58, i64 16, !58, i64 24, !28, i64 32, !58, i64 40, !58, i64 48, !58, i64 56, !58, i64 64}
!67 = !{!66, !28, i64 0}
!68 = distinct !{!68, !69}
!69 = !{!"llvm.loop.mustprogress"}
!70 = distinct !{!70, !69}
!71 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5}
!72 = distinct !{!72, !69}
!73 = distinct !{!73, !69}
!74 = !{!10, !19, i64 2227}


; 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.tuple3 = type { ptr, ptr, ptr }

@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.70 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZN9InputData12loadPoreDataEv = external hidden unnamed_addr constant [13 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

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

; 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 @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9InputData12loadPoreDataEv(ptr noundef nonnull align 8 dereferenceable(2640) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca i8, align 1
  %4 = alloca i8, align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", 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::allocator.0", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.0", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %class.tuple3, align 8
  %25 = getelementptr inbounds i8, ptr %0, i64 2232
  %26 = getelementptr inbounds i8, ptr %0, i64 2212
  %27 = load i32, ptr %26, align 4, !tbaa !5
  %28 = sext i32 %27 to i64
  tail call void @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %28)
  %29 = load i32, ptr %26, align 4, !tbaa !5
  %30 = icmp sgt i32 %29, 0
  br i1 %30, label %.lr.ph254, label %._crit_edge255

.lr.ph254:                                        ; preds = %1
  %31 = getelementptr inbounds i8, ptr %0, i64 2224
  %32 = getelementptr inbounds i8, ptr %0, i64 128
  %33 = getelementptr inbounds i8, ptr %0, i64 648
  %34 = getelementptr inbounds i8, ptr %0, i64 2304
  %35 = getelementptr inbounds i8, ptr %0, i64 2280
  br label %39

._crit_edge255:                                   ; preds = %._crit_edge251, %1
  %36 = getelementptr inbounds i8, ptr %0, i64 2227
  %37 = load i8, ptr %36, align 1, !tbaa !58, !range !59, !noundef !60
  %38 = trunc nuw i8 %37 to i1
  br i1 %38, label %216, label %217

39:                                               ; preds = %.lr.ph254, %._crit_edge251
  %indvars.iv278 = phi i64 [ 0, %.lr.ph254 ], [ %indvars.iv.next279, %._crit_edge251 ]
  %40 = load i8, ptr %31, align 8, !tbaa !61, !range !59, !noundef !60
  %41 = trunc nuw i8 %40 to i1
  br i1 %41, label %48, label %42

42:                                               ; preds = %39
  %43 = load ptr, ptr %32, align 8, !tbaa !62
  %44 = getelementptr i8, ptr %43, i64 -24
  %45 = load i64, ptr %44, align 8
  %46 = getelementptr inbounds i8, ptr %32, i64 %45
  %47 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %46)
  br i1 %47, label %54, label %48

48:                                               ; preds = %42, %39
  %49 = load ptr, ptr %33, align 8, !tbaa !62
  %50 = getelementptr i8, ptr %49, i64 -24
  %51 = load i64, ptr %50, align 8
  %52 = getelementptr inbounds i8, ptr %33, i64 %51
  %53 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %52)
  br i1 %53, label %54, label %83

54:                                               ; preds = %48, %42
  %55 = trunc nuw nsw i64 %indvars.iv278 to i32
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.70)
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull @.str.71)
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef %55)
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %62 = load i8, ptr %31, align 8, !tbaa !61, !range !59, !noundef !60
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %70, label %64

64:                                               ; preds = %54
  %65 = load ptr, ptr %32, align 8, !tbaa !62
  %66 = getelementptr i8, ptr %65, i64 -24
  %67 = load i64, ptr %66, align 8
  %68 = getelementptr inbounds i8, ptr %32, i64 %67
  %69 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %68)
  br label %70

70:                                               ; preds = %64, %54
  %71 = phi i1 [ false, %54 ], [ %69, %64 ]
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %61, i1 noundef zeroext %71)
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull @.str.55)
  %74 = load ptr, ptr %33, align 8, !tbaa !62
  %75 = getelementptr i8, ptr %74, i64 -24
  %76 = load i64, ptr %75, align 8
  %77 = getelementptr inbounds i8, ptr %33, i64 %76
  %78 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %77)
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %73, i1 noundef zeroext %78)
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull @.str.72)
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #8
  unreachable

83:                                               ; preds = %48
  %84 = call noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #9
  %85 = load i8, ptr %31, align 8, !tbaa !61, !range !59, !noundef !60
  %86 = trunc nuw i8 %85 to i1
  br i1 %86, label %87, label %102

87:                                               ; preds = %83
  %88 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull %84, i64 noundef 72)
  %89 = getelementptr inbounds i8, ptr %84, i64 32
  %90 = load i32, ptr %89, align 8, !tbaa !64
  %91 = sext i32 %90 to i64
  %92 = icmp slt i32 %90, 0
  %93 = shl nsw i64 %91, 2
  %94 = select i1 %92, i64 -1, i64 %93
  %95 = call noalias noundef nonnull ptr @_Znam(i64 noundef %94) #9
  %96 = call noalias noundef nonnull ptr @_Znam(i64 noundef %94) #9
  %97 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull %96, i64 noundef %93)
  %98 = load i32, ptr %89, align 8, !tbaa !64
  %99 = sext i32 %98 to i64
  %100 = shl nsw i64 %99, 2
  %101 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull %95, i64 noundef %100)
  br label %201

102:                                              ; preds = %83
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  %103 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 4 dereferenceable(4) %84)
  %104 = getelementptr inbounds i8, ptr %84, i64 40
  %105 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 8 dereferenceable(8) %104)
  %106 = getelementptr inbounds i8, ptr %84, i64 48
  %107 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 8 dereferenceable(8) %106)
  %108 = getelementptr inbounds i8, ptr %84, i64 56
  %109 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull align 8 dereferenceable(8) %108)
  %110 = getelementptr inbounds i8, ptr %84, i64 64
  %111 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %109, ptr noundef nonnull align 8 dereferenceable(8) %110)
  %112 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %113 = getelementptr inbounds i8, ptr %84, i64 8
  %114 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 8 dereferenceable(8) %113)
  %115 = getelementptr inbounds i8, ptr %84, i64 16
  %116 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %114, ptr noundef nonnull align 8 dereferenceable(8) %115)
  %117 = getelementptr inbounds i8, ptr %84, i64 24
  %118 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 8 dereferenceable(8) %117)
  %119 = getelementptr inbounds i8, ptr %84, i64 32
  %120 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef nonnull align 4 dereferenceable(4) %119)
  %121 = load i32, ptr %2, align 4, !tbaa !66
  %122 = load i32, ptr %84, align 8, !tbaa !67
  %.not = icmp eq i32 %121, %122
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #10
  br i1 %.not, label %.thread, label %123

123:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %124 unwind label %150

124:                                              ; preds = %123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.62)
          to label %125 unwind label %152

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @__FUNCTION__._ZN9InputData12loadPoreDataEv, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %126 unwind label %154

126:                                              ; preds = %125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %127 unwind label %156

127:                                              ; preds = %126
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.63)
          to label %128 unwind label %158

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

129:                                              ; preds = %128
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %130 unwind label %162

130:                                              ; preds = %129
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.65)
          to label %131 unwind label %164

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  store i32 602, ptr %18, align 4, !tbaa !66
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %132 unwind label %166

132:                                              ; preds = %131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %133 unwind label %168

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

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

135:                                              ; preds = %134
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %136 unwind label %174

136:                                              ; preds = %135
  %137 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %5, ptr noundef nonnull %19, i32 noundef 0)
          to label %.critedge192 unwind label %176

.thread:                                          ; preds = %102
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #10
  br label %.critedge213

.critedge192:                                     ; preds = %136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  br label %.critedge213

.critedge213:                                     ; preds = %.thread, %.critedge192
  %138 = load i32, ptr %119, align 8, !tbaa !64
  %139 = sext i32 %138 to i64
  %140 = icmp slt i32 %138, 0
  %141 = shl nsw i64 %139, 2
  %142 = select i1 %140, i64 -1, i64 %141
  %143 = call noalias noundef nonnull ptr @_Znam(i64 noundef %142) #9
  %144 = call noalias noundef nonnull ptr @_Znam(i64 noundef %142) #9
  %145 = icmp sgt i32 %138, 0
  br i1 %145, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %.critedge213
  %146 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERb(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(1) %3)
  %147 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERb(ptr noundef nonnull align 8 dereferenceable(16) %146, ptr noundef nonnull align 1 dereferenceable(1) %4)
  %148 = load i32, ptr %119, align 8, !tbaa !64
  %149 = icmp sgt i32 %148, 0
  br i1 %149, label %.lr.ph246, label %._crit_edge247

150:                                              ; preds = %123
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %190

152:                                              ; preds = %124
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %189

154:                                              ; preds = %125
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %188

156:                                              ; preds = %126
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %187

158:                                              ; preds = %127
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %186

160:                                              ; preds = %128
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %185

162:                                              ; preds = %129
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %184

164:                                              ; preds = %130
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %183

166:                                              ; preds = %131
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %182

168:                                              ; preds = %132
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %181

170:                                              ; preds = %133
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %180

172:                                              ; preds = %134
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %179

174:                                              ; preds = %135
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %136
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  br label %178

178:                                              ; preds = %174, %176
  %.pn = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %179

179:                                              ; preds = %172, %178
  %.pn.pn = phi { ptr, i32 } [ %.pn, %178 ], [ %173, %172 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %180

180:                                              ; preds = %170, %179
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %179 ], [ %171, %170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #10
  br label %181

181:                                              ; preds = %168, %180
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %180 ], [ %169, %168 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %182

182:                                              ; preds = %181, %166
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %181 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  br label %183

183:                                              ; preds = %164, %182
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %182 ], [ %165, %164 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  br label %184

184:                                              ; preds = %162, %183
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %183 ], [ %163, %162 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  br label %185

185:                                              ; preds = %160, %184
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %184 ], [ %161, %160 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %186

186:                                              ; preds = %158, %185
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %185 ], [ %159, %158 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  br label %187

187:                                              ; preds = %156, %186
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %186 ], [ %157, %156 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %188

188:                                              ; preds = %154, %187
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %187 ], [ %155, %154 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %189

189:                                              ; preds = %152, %188
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %188 ], [ %153, %152 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  br label %190

190:                                              ; preds = %150, %189
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %189 ], [ %151, %150 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #10
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

.lr.ph:                                           ; preds = %.critedge213, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %.critedge213 ]
  %191 = getelementptr inbounds i32, ptr %144, i64 %indvars.iv
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(4) %191)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %193 = load i32, ptr %119, align 8, !tbaa !64
  %194 = sext i32 %193 to i64
  %195 = icmp slt i64 %indvars.iv.next, %194
  br i1 %195, label %.lr.ph, label %._crit_edge, !llvm.loop !68

._crit_edge247:                                   ; preds = %.lr.ph246, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #10
  br label %201

.lr.ph246:                                        ; preds = %._crit_edge, %.lr.ph246
  %indvars.iv272 = phi i64 [ %indvars.iv.next273, %.lr.ph246 ], [ 0, %._crit_edge ]
  %196 = getelementptr inbounds i32, ptr %143, i64 %indvars.iv272
  %197 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(4) %196)
  %indvars.iv.next273 = add nuw nsw i64 %indvars.iv272, 1
  %198 = load i32, ptr %119, align 8, !tbaa !64
  %199 = sext i32 %198 to i64
  %200 = icmp slt i64 %indvars.iv.next273, %199
  br i1 %200, label %.lr.ph246, label %._crit_edge247, !llvm.loop !70

201:                                              ; preds = %._crit_edge247, %87
  %.0164 = phi ptr [ %95, %87 ], [ %143, %._crit_edge247 ]
  %.0163 = phi ptr [ %96, %87 ], [ %144, %._crit_edge247 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #10
  call void @_ZN6tuple3IP10PoreStructPiS2_EC2ES1_S2_S2_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull %84, ptr noundef nonnull %.0163, ptr noundef nonnull %.0164)
  %202 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv278) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %202, ptr noundef nonnull align 8 dereferenceable(24) %24, i64 24, i1 false), !tbaa.struct !71
  %203 = getelementptr inbounds i8, ptr %84, i64 32
  %204 = load i32, ptr %203, align 8, !tbaa !64
  %205 = icmp sgt i32 %204, 0
  br i1 %205, label %.lr.ph250, label %._crit_edge251

._crit_edge251:                                   ; preds = %212, %201
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #10
  %indvars.iv.next279 = add nuw nsw i64 %indvars.iv278, 1
  %206 = load i32, ptr %26, align 4, !tbaa !5
  %207 = sext i32 %206 to i64
  %208 = icmp slt i64 %indvars.iv.next279, %207
  br i1 %208, label %39, label %._crit_edge255, !llvm.loop !73

.lr.ph250:                                        ; preds = %201, %212
  %indvars.iv275 = phi i64 [ %indvars.iv.next276, %212 ], [ 0, %201 ]
  %209 = getelementptr inbounds i32, ptr %.0163, i64 %indvars.iv275
  %210 = load i32, ptr %209, align 4, !tbaa !66
  switch i32 %210, label %212 [
    i32 -1, label %.sink.split
    i32 0, label %211
  ]

211:                                              ; preds = %.lr.ph250
  br label %.sink.split

.sink.split:                                      ; preds = %.lr.ph250, %211
  %.sink = phi ptr [ %34, %211 ], [ %35, %.lr.ph250 ]
  call void @_ZNSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %.sink, ptr noundef nonnull align 8 dereferenceable(24) %24)
  br label %212

212:                                              ; preds = %.sink.split, %.lr.ph250
  %indvars.iv.next276 = add nuw nsw i64 %indvars.iv275, 1
  %213 = load i32, ptr %203, align 8, !tbaa !64
  %214 = sext i32 %213 to i64
  %215 = icmp slt i64 %indvars.iv.next276, %214
  br i1 %215, label %.lr.ph250, label %._crit_edge251, !llvm.loop !74

216:                                              ; preds = %._crit_edge255
  call void @_ZN9InputData17findBoundaryPoresEv(ptr noundef nonnull align 8 dereferenceable(2640) %0)
  br label %217

217:                                              ; preds = %216, %._crit_edge255
  %218 = getelementptr inbounds i8, ptr %0, i64 648
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %218)
  %219 = getelementptr inbounds i8, ptr %0, i64 128
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %219)
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !27, i64 2212}
!6 = !{!"_ZTS9InputData", !7, i64 0, !19, i64 128, !19, i64 648, !19, i64 1168, !19, i64 1688, !27, i64 2208, !27, i64 2212, !27, i64 2216, !27, i64 2220, !18, i64 2224, !18, i64 2225, !18, i64 2226, !18, i64 2227, !28, i64 2232, !32, i64 2256, !28, i64 2280, !28, i64 2304, !36, i64 2328, !36, i64 2376, !44, i64 2424, !44, i64 2472, !49, i64 2520, !53, i64 2544, !53, i64 2568, !57, i64 2592, !57, i64 2600, !57, i64 2608, !57, i64 2616, !57, i64 2624, !57, i64 2632}
!7 = !{!"_ZTS9InputFile", !8, i64 0, !15, i64 24, !15, i64 56, !15, i64 88, !18, i64 120, !18, i64 121}
!8 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !9, i64 0}
!9 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !11, i64 0}
!11 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !13, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!17 = !{!"long", !13, i64 0}
!18 = !{!"bool", !13, i64 0}
!19 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !20, i64 0, !21, i64 16}
!20 = !{!"_ZTSSi", !17, i64 8}
!21 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !22, i64 0, !13, i64 64, !24, i64 104, !25, i64 120, !26, i64 124, !26, i64 132, !26, i64 140, !12, i64 152, !17, i64 160, !18, i64 168, !18, i64 169, !18, i64 170, !13, i64 171, !12, i64 176, !12, i64 184, !18, i64 192, !12, i64 200, !12, i64 208, !17, i64 216, !12, i64 224, !12, i64 232}
!22 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !23, i64 56}
!23 = !{!"_ZTSSt6locale", !12, i64 0}
!24 = !{!"_ZTSSt12__basic_fileIcE", !12, i64 0, !18, i64 8}
!25 = !{!"_ZTSSt13_Ios_Openmode", !13, i64 0}
!26 = !{!"_ZTS11__mbstate_t", !27, i64 0, !13, i64 4}
!27 = !{!"int", !13, i64 0}
!28 = !{!"_ZTSSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!32 = !{!"_ZTSSt6vectorIP12ThroatStructSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIP12ThroatStructSaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!36 = !{!"_ZTSSt8multimapIi6tuple3IiidESt4lessIiESaISt4pairIKiS1_EEE", !37, i64 0}
!37 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE", !38, i64 0}
!38 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !39, i64 0, !41, i64 8}
!39 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !40, i64 0}
!40 = !{!"_ZTSSt4lessIiE"}
!41 = !{!"_ZTSSt15_Rb_tree_header", !42, i64 0, !17, i64 32}
!42 = !{!"_ZTSSt18_Rb_tree_node_base", !43, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!43 = !{!"_ZTSSt14_Rb_tree_color", !13, i64 0}
!44 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !47, i64 0, !41, i64 8}
!47 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !48, i64 0}
!48 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!49 = !{!"_ZTSSt6vectorI6tuple3IiidESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseI6tuple3IiidESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!53 = !{!"_ZTSSt6vectorIiSaIiEE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!57 = !{!"double", !13, i64 0}
!58 = !{!6, !18, i64 2227}
!59 = !{i8 0, i8 2}
!60 = !{}
!61 = !{!6, !18, i64 2224}
!62 = !{!63, !63, i64 0}
!63 = !{!"vtable pointer", !14, i64 0}
!64 = !{!65, !27, i64 32}
!65 = !{!"_ZTS10PoreStruct", !27, i64 0, !57, i64 8, !57, i64 16, !57, i64 24, !27, i64 32, !57, i64 40, !57, i64 48, !57, i64 56, !57, i64 64}
!66 = !{!27, !27, i64 0}
!67 = !{!65, !27, i64 0}
!68 = distinct !{!68, !69}
!69 = !{!"llvm.loop.mustprogress"}
!70 = distinct !{!70, !69}
!71 = !{i64 0, i64 8, !72, i64 8, i64 8, !72, i64 16, i64 8, !72}
!72 = !{!12, !12, i64 0}
!73 = distinct !{!73, !69}
!74 = distinct !{!74, !69}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass