; LLVM IR from fritzsedlazeck/SURVIVOR :: src/simulator (Eval_vcf)

; 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] }
%struct.strreport = type { i16, i16, i16, i16, i16, i16 }
%struct.strsimul = type <{ %struct.strcoordinate, %struct.strcoordinate, i16, i8, i8, [4 x i8] }>
%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%struct.strvcfentry = type <{ %"class.std::__cxx11::basic_string", %struct.strcoordinate, %struct.strcoordinate, i16, [6 x i8], %"class.std::map", i32, i32, %"class.std::vector.7", %"struct.std::pair", [2 x i8], %"struct.std::pair.12", [4 x i8], %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"struct.std::pair.14", %"struct.std::pair.12", %"struct.std::pair.12", i32, [4 x i8] }>
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i8, i8 }
%"struct.std::pair.14" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.12" = type { i32, i32 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.21" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [11 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: 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 noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 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) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z12match_coords8strsimul11strvcfentryi(ptr noundef, ptr noundef, i32 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i32 } @_Z11init_reportv() #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64, i32) #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8), i16 noundef signext) #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12), i16 noundef signext) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z6get_TPi9strreport(i32 noundef, i64, i32) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z6get_FP9strreportS_(i64, i32, i64, i32) #1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10eval_callsSt6vectorI11strvcfentrySaIS0_EES_I8strsimulSaIS3_EEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef %3) #3 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca %struct.strreport, align 2
  %10 = alloca { i64, i32 }, align 8
  %11 = alloca %struct.strreport, align 2
  %12 = alloca { i64, i32 }, align 8
  %13 = alloca %struct.strreport, align 2
  %14 = alloca { i64, i32 }, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i64, align 8
  %24 = alloca %struct.strsimul, align 8
  %25 = alloca %struct.strvcfentry, align 8
  %26 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %27 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %28 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %29 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %30 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %31 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %32 = alloca i64, align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %struct.strreport, align 2
  %35 = alloca { i64, i32 }, align 2
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %struct.strreport, align 2
  %38 = alloca { i64, i32 }, align 2
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %struct.strreport, align 2
  %41 = alloca { i64, i32 }, align 2
  %42 = alloca %struct.strreport, align 2
  %43 = alloca { i64, i32 }, align 2
  %44 = alloca %struct.strreport, align 2
  %45 = alloca %struct.strreport, align 2
  %46 = alloca { i64, i32 }, align 2
  %47 = alloca { i64, i32 }, align 2
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12, ptr %9) #8
  %48 = call { i64, i32 } @_Z11init_reportv()
  store { i64, i32 } %48, ptr %10, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %9, ptr align 8 %10, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %11) #8
  %49 = call { i64, i32 } @_Z11init_reportv()
  store { i64, i32 } %49, ptr %12, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %11, ptr align 8 %12, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %13) #8
  %50 = call { i64, i32 } @_Z11init_reportv()
  store { i64, i32 } %50, ptr %14, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %13, ptr align 8 %14, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.10)
          to label %52 unwind label %68

52:                                               ; preds = %4
  %53 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  %54 = invoke noalias ptr @fopen(ptr noundef %53, ptr noundef @.str.11)
          to label %55 unwind label %68

55:                                               ; preds = %52
  store ptr %54, ptr %15, align 8, !tbaa !5
  %56 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %57 unwind label %68

57:                                               ; preds = %55
  %58 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.12)
          to label %59 unwind label %68

59:                                               ; preds = %57
  %60 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  %61 = invoke noalias ptr @fopen(ptr noundef %60, ptr noundef @.str.11)
          to label %62 unwind label %68

62:                                               ; preds = %59
  store ptr %61, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %63

63:                                               ; preds = %195, %62
  %64 = load i64, ptr %20, align 8, !tbaa !11
  %65 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #8
  %66 = icmp ult i64 %64, %65
  br i1 %66, label %72, label %67

67:                                               ; preds = %63
  store i32 2, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %198

68:                                               ; preds = %281, %278, %276, %274, %200, %198, %59, %57, %55, %52, %4
  %69 = landingpad { ptr, i32 }
          cleanup
  %70 = extractvalue { ptr, i32 } %69, 0
  store ptr %70, ptr %18, align 8
  %71 = extractvalue { ptr, i32 } %69, 1
  store i32 %71, ptr %19, align 4
  br label %364

72:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  store i8 0, ptr %22, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  store i64 0, ptr %23, align 8, !tbaa !11
  br label %73

73:                                               ; preds = %119, %72
  %74 = load i64, ptr %23, align 8, !tbaa !11
  %75 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %76 = icmp ult i64 %74, %75
  br i1 %76, label %78, label %77

77:                                               ; preds = %73
  store i32 5, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %123

78:                                               ; preds = %73
  %79 = load i64, ptr %23, align 8, !tbaa !11
  %80 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %79) #8
  %81 = getelementptr inbounds %struct.strsimul, ptr %80, i32 0, i32 2
  %82 = load i16, ptr %81, align 8, !tbaa !15
  %83 = sext i16 %82 to i32
  %84 = load i64, ptr %20, align 8, !tbaa !11
  %85 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %84) #8
  %86 = getelementptr inbounds %struct.strvcfentry, ptr %85, i32 0, i32 3
  %87 = load i16, ptr %86, align 8, !tbaa !21
  %88 = sext i16 %87 to i32
  %89 = icmp eq i32 %83, %88
  br i1 %89, label %90, label %118

90:                                               ; preds = %78
  %91 = load i64, ptr %23, align 8, !tbaa !11
  %92 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %91) #8
  invoke void @_ZN8strsimulC2ERKS_(ptr noundef nonnull align 8 dereferenceable(84) %24, ptr noundef nonnull align 8 dereferenceable(84) %92)
          to label %93 unwind label %104

93:                                               ; preds = %90
  %94 = load i64, ptr %20, align 8, !tbaa !11
  %95 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %94) #8
  invoke void @_ZN11strvcfentryC2ERKS_(ptr noundef nonnull align 8 dereferenceable(420) %25, ptr noundef nonnull align 8 dereferenceable(420) %95)
          to label %96 unwind label %108

96:                                               ; preds = %93
  %97 = load i32, ptr %7, align 4, !tbaa !9
  %98 = invoke noundef zeroext i1 @_Z12match_coords8strsimul11strvcfentryi(ptr noundef %24, ptr noundef %25, i32 noundef %97)
          to label %99 unwind label %112

99:                                               ; preds = %96
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %25) #8
  call void @_ZN8strsimulD2Ev(ptr noundef nonnull align 8 dereferenceable(84) %24) #8
  br i1 %98, label %100, label %117

100:                                              ; preds = %99
  %101 = load i64, ptr %23, align 8, !tbaa !11
  %102 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %101) #8
  %103 = getelementptr inbounds %struct.strsimul, ptr %102, i32 0, i32 3
  store i8 1, ptr %103, align 2, !tbaa !39
  store i8 1, ptr %22, align 1, !tbaa !13
  br label %117

104:                                              ; preds = %90
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %18, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %19, align 4
  br label %122

108:                                              ; preds = %93
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %18, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %19, align 4
  br label %116

112:                                              ; preds = %96
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %18, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %19, align 4
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %25) #8
  br label %116

116:                                              ; preds = %112, %108
  call void @_ZN8strsimulD2Ev(ptr noundef nonnull align 8 dereferenceable(84) %24) #8
  br label %122

117:                                              ; preds = %100, %99
  br label %118

118:                                              ; preds = %117, %78
  br label %119

119:                                              ; preds = %118
  %120 = load i64, ptr %23, align 8, !tbaa !11
  %121 = add i64 %120, 1
  store i64 %121, ptr %23, align 8, !tbaa !11
  br label %73, !llvm.loop !40

122:                                              ; preds = %116, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %364

123:                                              ; preds = %77
  %124 = load i8, ptr %22, align 1, !tbaa !13, !range !42, !noundef !43
  %125 = trunc i8 %124 to i1
  br i1 %125, label %162, label %126

126:                                              ; preds = %123
  %127 = load ptr, ptr %16, align 8, !tbaa !5
  %128 = load i64, ptr %20, align 8, !tbaa !11
  %129 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %128) #8
  %130 = getelementptr inbounds %struct.strvcfentry, ptr %129, i32 0, i32 0
  %131 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef @.str.13, ptr noundef %131) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %133 = load i64, ptr %20, align 8, !tbaa !11
  %134 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %133) #8
  %135 = getelementptr inbounds %struct.strvcfentry, ptr %134, i32 0, i32 5
  %136 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %135) #8
  %137 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %26, i32 0, i32 0
  store ptr %136, ptr %137, align 8
  br label %138

138:                                              ; preds = %152, %126
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %139 = load i64, ptr %20, align 8, !tbaa !11
  %140 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %139) #8
  %141 = getelementptr inbounds %struct.strvcfentry, ptr %140, i32 0, i32 5
  %142 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %141) #8
  %143 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %27, i32 0, i32 0
  store ptr %142, ptr %143, align 8
  %144 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br i1 %144, label %146, label %145

145:                                              ; preds = %138
  store i32 8, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %155

146:                                              ; preds = %138
  %147 = load ptr, ptr %16, align 8, !tbaa !5
  %148 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  %149 = getelementptr inbounds %"struct.std::pair.21", ptr %148, i32 0, i32 1
  %150 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  %151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef @.str.13, ptr noundef %150) #8
  br label %152

152:                                              ; preds = %146
  %153 = call ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEppEi(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 0) #8
  %154 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %28, i32 0, i32 0
  store ptr %153, ptr %154, align 8
  br label %138, !llvm.loop !44

155:                                              ; preds = %145
  %156 = load ptr, ptr %16, align 8, !tbaa !5
  %157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef @.str.14, i32 noundef 10) #8
  %158 = load i64, ptr %20, align 8, !tbaa !11
  %159 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %158) #8
  %160 = getelementptr inbounds %struct.strvcfentry, ptr %159, i32 0, i32 3
  %161 = load i16, ptr %160, align 8, !tbaa !21
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %11, i16 noundef signext %161)
  br label %194

162:                                              ; preds = %123
  %163 = load ptr, ptr %15, align 8, !tbaa !5
  %164 = load i64, ptr %20, align 8, !tbaa !11
  %165 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %164) #8
  %166 = getelementptr inbounds %struct.strvcfentry, ptr %165, i32 0, i32 0
  %167 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  %168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef @.str.13, ptr noundef %167) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %169 = load i64, ptr %20, align 8, !tbaa !11
  %170 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %169) #8
  %171 = getelementptr inbounds %struct.strvcfentry, ptr %170, i32 0, i32 5
  %172 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %171) #8
  %173 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %29, i32 0, i32 0
  store ptr %172, ptr %173, align 8
  br label %174

174:                                              ; preds = %188, %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %175 = load i64, ptr %20, align 8, !tbaa !11
  %176 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %175) #8
  %177 = getelementptr inbounds %struct.strvcfentry, ptr %176, i32 0, i32 5
  %178 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %177) #8
  %179 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %30, i32 0, i32 0
  store ptr %178, ptr %179, align 8
  %180 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br i1 %180, label %182, label %181

181:                                              ; preds = %174
  store i32 11, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %191

182:                                              ; preds = %174
  %183 = load ptr, ptr %15, align 8, !tbaa !5
  %184 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  %185 = getelementptr inbounds %"struct.std::pair.21", ptr %184, i32 0, i32 1
  %186 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %185) #8
  %187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef @.str.13, ptr noundef %186) #8
  br label %188

188:                                              ; preds = %182
  %189 = call ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEppEi(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 0) #8
  %190 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %31, i32 0, i32 0
  store ptr %189, ptr %190, align 8
  br label %174, !llvm.loop !45

191:                                              ; preds = %181
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef @.str.14, i32 noundef 10) #8
  br label %194

194:                                              ; preds = %191, %155
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %195

195:                                              ; preds = %194
  %196 = load i64, ptr %20, align 8, !tbaa !11
  %197 = add i64 %196, 1
  store i64 %197, ptr %20, align 8, !tbaa !11
  br label %63, !llvm.loop !46

198:                                              ; preds = %67
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %200 unwind label %68

200:                                              ; preds = %198
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %202 unwind label %68

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store i64 0, ptr %32, align 8, !tbaa !11
  br label %203

203:                                              ; preds = %271, %202
  %204 = load i64, ptr %32, align 8, !tbaa !11
  %205 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %206 = icmp ult i64 %204, %205
  br i1 %206, label %208, label %207

207:                                              ; preds = %203
  store i32 14, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %274

208:                                              ; preds = %203
  %209 = load i64, ptr %32, align 8, !tbaa !11
  %210 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %209) #8
  %211 = getelementptr inbounds %struct.strsimul, ptr %210, i32 0, i32 3
  %212 = load i8, ptr %211, align 2, !tbaa !39, !range !42, !noundef !43
  %213 = trunc i8 %212 to i1
  br i1 %213, label %265, label %214

214:                                              ; preds = %208
  %215 = load i64, ptr %32, align 8, !tbaa !11
  %216 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %215) #8
  %217 = getelementptr inbounds %struct.strsimul, ptr %216, i32 0, i32 2
  %218 = load i16, ptr %217, align 8, !tbaa !15
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %9, i16 noundef signext %218)
  %219 = load i64, ptr %32, align 8, !tbaa !11
  %220 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %219) #8
  %221 = getelementptr inbounds %struct.strsimul, ptr %220, i32 0, i32 2
  %222 = load i16, ptr %221, align 8, !tbaa !15
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i16 noundef signext %222)
          to label %224 unwind label %261

224:                                              ; preds = %214
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef @.str.16)
          to label %226 unwind label %261

226:                                              ; preds = %224
  %227 = load i64, ptr %32, align 8, !tbaa !11
  %228 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %227) #8
  %229 = getelementptr inbounds %struct.strsimul, ptr %228, i32 0, i32 0
  %230 = getelementptr inbounds %struct.strcoordinate, ptr %229, i32 0, i32 1
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %232 unwind label %261

232:                                              ; preds = %226
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef @.str.16)
          to label %234 unwind label %261

234:                                              ; preds = %232
  %235 = load i64, ptr %32, align 8, !tbaa !11
  %236 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %235) #8
  %237 = getelementptr inbounds %struct.strsimul, ptr %236, i32 0, i32 0
  %238 = getelementptr inbounds %struct.strcoordinate, ptr %237, i32 0, i32 0
  %239 = load i32, ptr %238, align 8, !tbaa !47
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %233, i32 noundef %239)
          to label %241 unwind label %261

241:                                              ; preds = %234
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef @.str.17)
          to label %243 unwind label %261

243:                                              ; preds = %241
  %244 = load i64, ptr %32, align 8, !tbaa !11
  %245 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %244) #8
  %246 = getelementptr inbounds %struct.strsimul, ptr %245, i32 0, i32 1
  %247 = getelementptr inbounds %struct.strcoordinate, ptr %246, i32 0, i32 1
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull align 8 dereferenceable(32) %247)
          to label %249 unwind label %261

249:                                              ; preds = %243
  %250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef @.str.16)
          to label %251 unwind label %261

251:                                              ; preds = %249
  %252 = load i64, ptr %32, align 8, !tbaa !11
  %253 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %252) #8
  %254 = getelementptr inbounds %struct.strsimul, ptr %253, i32 0, i32 1
  %255 = getelementptr inbounds %struct.strcoordinate, ptr %254, i32 0, i32 0
  %256 = load i32, ptr %255, align 8, !tbaa !48
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %250, i32 noundef %256)
          to label %258 unwind label %261

258:                                              ; preds = %251
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %260 unwind label %261

260:                                              ; preds = %258
  br label %270

261:                                              ; preds = %258, %251, %249, %243, %241, %234, %232, %226, %224, %214
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %18, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %364

265:                                              ; preds = %208
  %266 = load i64, ptr %32, align 8, !tbaa !11
  %267 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %266) #8
  %268 = getelementptr inbounds %struct.strsimul, ptr %267, i32 0, i32 2
  %269 = load i16, ptr %268, align 8, !tbaa !15
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %13, i16 noundef signext %269)
  br label %270

270:                                              ; preds = %265, %260
  br label %271

271:                                              ; preds = %270
  %272 = load i64, ptr %32, align 8, !tbaa !11
  %273 = add i64 %272, 1
  store i64 %273, ptr %32, align 8, !tbaa !11
  br label %203, !llvm.loop !49

274:                                              ; preds = %207
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %276 unwind label %68

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.18)
          to label %278 unwind label %68

278:                                              ; preds = %276
  %279 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %277, i64 noundef %279)
          to label %281 unwind label %68

281:                                              ; preds = %278
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef @.str.16)
          to label %283 unwind label %68

283:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %34, ptr align 2 %13, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %35, ptr align 2 %34, i64 12, i1 false)
  %284 = getelementptr inbounds { i64, i32 }, ptr %35, i32 0, i32 0
  %285 = load i64, ptr %284, align 2
  %286 = getelementptr inbounds { i64, i32 }, ptr %35, i32 0, i32 1
  %287 = load i32, ptr %286, align 2
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, i64 %285, i32 %287)
          to label %288 unwind label %335

288:                                              ; preds = %283
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %290 unwind label %339

290:                                              ; preds = %288
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef @.str.16)
          to label %292 unwind label %339

292:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %37, ptr align 2 %9, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %38, ptr align 2 %37, i64 12, i1 false)
  %293 = getelementptr inbounds { i64, i32 }, ptr %38, i32 0, i32 0
  %294 = load i64, ptr %293, align 2
  %295 = getelementptr inbounds { i64, i32 }, ptr %38, i32 0, i32 1
  %296 = load i32, ptr %295, align 2
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, i64 %294, i32 %296)
          to label %297 unwind label %343

297:                                              ; preds = %292
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %299 unwind label %347

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef @.str.16)
          to label %301 unwind label %347

301:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %40, ptr align 2 %11, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %41, ptr align 2 %40, i64 12, i1 false)
  %302 = getelementptr inbounds { i64, i32 }, ptr %41, i32 0, i32 0
  %303 = load i64, ptr %302, align 2
  %304 = getelementptr inbounds { i64, i32 }, ptr %41, i32 0, i32 1
  %305 = load i32, ptr %304, align 2
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, i64 %303, i32 %305)
          to label %306 unwind label %351

306:                                              ; preds = %301
  %307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %308 unwind label %355

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef @.str.16)
          to label %310 unwind label %355

310:                                              ; preds = %308
  %311 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %312 = trunc i64 %311 to i32
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %42, ptr align 2 %13, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %43, ptr align 2 %42, i64 12, i1 false)
  %313 = getelementptr inbounds { i64, i32 }, ptr %43, i32 0, i32 0
  %314 = load i64, ptr %313, align 2
  %315 = getelementptr inbounds { i64, i32 }, ptr %43, i32 0, i32 1
  %316 = load i32, ptr %315, align 2
  %317 = call noundef double @_Z6get_TPi9strreport(i32 noundef %312, i64 %314, i32 %316)
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %309, double noundef %317)
          to label %319 unwind label %355

319:                                              ; preds = %310
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %318, ptr noundef @.str.16)
          to label %321 unwind label %355

321:                                              ; preds = %319
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %44, ptr align 2 %13, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %45, ptr align 2 %11, i64 12, i1 false), !tbaa.struct !50
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %46, ptr align 2 %44, i64 12, i1 false)
  %322 = getelementptr inbounds { i64, i32 }, ptr %46, i32 0, i32 0
  %323 = load i64, ptr %322, align 2
  %324 = getelementptr inbounds { i64, i32 }, ptr %46, i32 0, i32 1
  %325 = load i32, ptr %324, align 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %47, ptr align 2 %45, i64 12, i1 false)
  %326 = getelementptr inbounds { i64, i32 }, ptr %47, i32 0, i32 0
  %327 = load i64, ptr %326, align 2
  %328 = getelementptr inbounds { i64, i32 }, ptr %47, i32 0, i32 1
  %329 = load i32, ptr %328, align 2
  %330 = call noundef double @_Z6get_FP9strreportS_(i64 %323, i32 %325, i64 %327, i32 %329)
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %320, double noundef %330)
          to label %332 unwind label %355

332:                                              ; preds = %321
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %334 unwind label %355

334:                                              ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %9) #8
  ret void

335:                                              ; preds = %283
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %18, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %19, align 4
  br label %363

339:                                              ; preds = %290, %288
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %18, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %19, align 4
  br label %362

343:                                              ; preds = %292
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %18, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %19, align 4
  br label %361

347:                                              ; preds = %299, %297
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %18, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %19, align 4
  br label %360

351:                                              ; preds = %301
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %18, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %19, align 4
  br label %359

355:                                              ; preds = %332, %321, %319, %310, %308, %306
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %18, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %359

359:                                              ; preds = %355, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %360

360:                                              ; preds = %359, %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %361

361:                                              ; preds = %360, %343
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %362

362:                                              ; preds = %361, %339
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %363

363:                                              ; preds = %362, %335
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %364

364:                                              ; preds = %363, %261, %122, %68
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %9) #8
  br label %365

365:                                              ; preds = %364
  %366 = load ptr, ptr %18, align 8
  %367 = load i32, ptr %19, align 4
  %368 = insertvalue { ptr, i32 } poison, ptr %366, 0
  %369 = insertvalue { ptr, i32 } %368, i32 %367, 1
  resume { ptr, i32 } %369
}

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

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

declare noalias ptr @fopen(ptr noundef, ptr noundef) #6

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #3 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 = { 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 #3 = { 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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !20, i64 80}
!16 = !{!"_ZTS8strsimul", !17, i64 0, !17, i64 40, !20, i64 80, !14, i64 82, !14, i64 83}
!17 = !{!"_ZTS13strcoordinate", !10, i64 0, !18, i64 8}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !12, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!22, !20, i64 112}
!22 = !{!"_ZTS11strvcfentry", !18, i64 0, !17, i64 32, !17, i64 72, !20, i64 112, !23, i64 120, !10, i64 168, !10, i64 172, !31, i64 176, !35, i64 200, !36, i64 204, !18, i64 216, !10, i64 248, !18, i64 256, !37, i64 288, !18, i64 296, !10, i64 328, !38, i64 336, !36, i64 400, !36, i64 408, !10, i64 416}
!23 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !24, i64 0}
!24 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !25, i64 0}
!25 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !26, i64 0, !28, i64 8}
!26 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !27, i64 0}
!27 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!28 = !{!"_ZTSSt15_Rb_tree_header", !29, i64 0, !12, i64 32}
!29 = !{!"_ZTSSt18_Rb_tree_node_base", !30, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!30 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!31 = !{!"_ZTSSt6vectorIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt4pairIbbE", !14, i64 0, !14, i64 1}
!36 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!37 = !{!"double", !7, i64 0}
!38 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !18, i64 0, !18, i64 32}
!39 = !{!16, !14, i64 82}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = distinct !{!44, !41}
!45 = distinct !{!45, !41}
!46 = distinct !{!46, !41}
!47 = !{!16, !10, i64 0}
!48 = !{!16, !10, i64 40}
!49 = distinct !{!49, !41}
!50 = !{i64 0, i64 2, !51, i64 2, i64 2, !51, i64 4, i64 2, !51, i64 6, i64 2, !51, i64 8, i64 2, !51, i64 10, i64 2, !51}
!51 = !{!20, !20, i64 0}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.strreport = type { i16, i16, i16, i16, i16, i16 }
%struct.strsimul = type <{ %struct.strcoordinate, %struct.strcoordinate, i16, i8, i8, [4 x i8] }>
%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%struct.strvcfentry = type <{ %"class.std::__cxx11::basic_string", %struct.strcoordinate, %struct.strcoordinate, i16, [6 x i8], %"class.std::map", i32, i32, %"class.std::vector.7", %"struct.std::pair", [2 x i8], %"struct.std::pair.12", [4 x i8], %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"struct.std::pair.14", %"struct.std::pair.12", %"struct.std::pair.12", i32, [4 x i8] }>
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i8, i8 }
%"struct.std::pair.14" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.12" = type { i32, i32 }
%"struct.std::_Rb_tree_iterator" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [11 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 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 noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 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 #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z12match_coords8strsimul11strvcfentryi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i32 } @_Z11init_reportv() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64, i32) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8), i16 noundef signext) local_unnamed_addr #5

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12), i16 noundef signext) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z6get_TPi9strreport(i32 noundef, i64, i32) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z6get_FP9strreportS_(i64, i32, i64, i32) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10eval_callsSt6vectorI11strvcfentrySaIS0_EES_I8strsimulSaIS3_EEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef %3) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %5 = alloca %struct.strreport, align 8
  %6 = alloca %struct.strreport, align 8
  %7 = alloca %struct.strreport, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %struct.strsimul, align 8
  %10 = alloca %struct.strvcfentry, align 8
  %11 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %12 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %13 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %14 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %5) #7
  %18 = tail call { i64, i32 } @_Z11init_reportv()
  %.fca.0.extract64 = extractvalue { i64, i32 } %18, 0
  %.fca.1.extract65 = extractvalue { i64, i32 } %18, 1
  store i64 %.fca.0.extract64, ptr %5, align 8
  %.sroa.267.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 8
  store i32 %.fca.1.extract65, ptr %.sroa.267.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) #7
  %19 = tail call { i64, i32 } @_Z11init_reportv()
  %.fca.0.extract60 = extractvalue { i64, i32 } %19, 0
  %.fca.1.extract61 = extractvalue { i64, i32 } %19, 1
  store i64 %.fca.0.extract60, ptr %6, align 8
  %.sroa.263.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 8
  store i32 %.fca.1.extract61, ptr %.sroa.263.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %7) #7
  %20 = tail call { i64, i32 } @_Z11init_reportv()
  %.fca.0.extract = extractvalue { i64, i32 } %20, 0
  %.fca.1.extract = extractvalue { i64, i32 } %20, 1
  store i64 %.fca.0.extract, ptr %7, align 8
  %.sroa.259.0..sroa_idx = getelementptr inbounds i8, ptr %7, i64 8
  store i32 %.fca.1.extract, ptr %.sroa.259.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %21 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
          to label %22 unwind label %34

22:                                               ; preds = %4
  %23 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  %24 = call noalias ptr @fopen(ptr noundef %23, ptr noundef nonnull @.str.11)
  %25 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %26 unwind label %34

26:                                               ; preds = %22
  %27 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.12)
          to label %28 unwind label %34

28:                                               ; preds = %26
  %29 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  %30 = call noalias ptr @fopen(ptr noundef %29, ptr noundef nonnull @.str.11)
  %31 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %.not = icmp eq i64 %31, 0
  br i1 %.not, label %._crit_edge105, label %.preheader91

.preheader91:                                     ; preds = %28, %109
  %.077103 = phi i64 [ %110, %109 ], [ 0, %28 ]
  %32 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %.not109 = icmp eq i64 %32, 0
  br i1 %.not109, label %.critedge, label %.lr.ph.outer

.lr.ph.outer:                                     ; preds = %.preheader91, %.thread
  %.07896.ph = phi i1 [ true, %.thread ], [ false, %.preheader91 ]
  %.08095.ph = phi i64 [ %63, %.thread ], [ 0, %.preheader91 ]
  br label %.lr.ph

._crit_edge105:                                   ; preds = %109, %28
  %33 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
          to label %113 unwind label %34

34:                                               ; preds = %168, %165, %163, %._crit_edge108, %113, %._crit_edge105, %26, %22, %4
  %35 = landingpad { ptr, i32 }
          cleanup
  br label %215

._crit_edge:                                      ; preds = %57
  br i1 %.07896.ph, label %._crit_edge.thread, label %.critedge

.lr.ph:                                           ; preds = %.lr.ph.outer, %57
  %.08095 = phi i64 [ %58, %57 ], [ %.08095.ph, %.lr.ph.outer ]
  %36 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.08095) #7
  %37 = getelementptr inbounds i8, ptr %36, i64 80
  %38 = load i16, ptr %37, align 8, !tbaa !5
  %39 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %40 = getelementptr inbounds i8, ptr %39, i64 112
  %41 = load i16, ptr %40, align 8, !tbaa !17
  %42 = icmp eq i16 %38, %41
  br i1 %42, label %43, label %57

43:                                               ; preds = %.lr.ph
  %44 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.08095) #7
  invoke void @_ZN8strsimulC2ERKS_(ptr noundef nonnull align 8 dereferenceable(84) %9, ptr noundef nonnull align 8 dereferenceable(84) %44)
          to label %45 unwind label %50

45:                                               ; preds = %43
  %46 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  invoke void @_ZN11strvcfentryC2ERKS_(ptr noundef nonnull align 8 dereferenceable(420) %10, ptr noundef nonnull align 8 dereferenceable(420) %46)
          to label %47 unwind label %52

47:                                               ; preds = %45
  %48 = invoke noundef zeroext i1 @_Z12match_coords8strsimul11strvcfentryi(ptr noundef nonnull %9, ptr noundef nonnull %10, i32 noundef %2)
          to label %49 unwind label %54

49:                                               ; preds = %47
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %10) #7
  call void @_ZN8strsimulD2Ev(ptr noundef nonnull align 8 dereferenceable(84) %9) #7
  br i1 %48, label %.thread, label %57

50:                                               ; preds = %43
  %51 = landingpad { ptr, i32 }
          cleanup
  br label %215

52:                                               ; preds = %45
  %53 = landingpad { ptr, i32 }
          cleanup
  br label %56

54:                                               ; preds = %47
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %10) #7
  br label %56

56:                                               ; preds = %54, %52
  %.pn87 = phi { ptr, i32 } [ %55, %54 ], [ %53, %52 ]
  call void @_ZN8strsimulD2Ev(ptr noundef nonnull align 8 dereferenceable(84) %9) #7
  br label %215

57:                                               ; preds = %.lr.ph, %49
  %58 = add nuw i64 %.08095, 1
  %59 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %60 = icmp ult i64 %58, %59
  br i1 %60, label %.lr.ph, label %._crit_edge, !llvm.loop !35

.thread:                                          ; preds = %49
  %61 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.08095) #7
  %62 = getelementptr inbounds i8, ptr %61, i64 82
  store i8 1, ptr %62, align 2, !tbaa !37
  %63 = add nuw i64 %.08095, 1
  %64 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %65 = icmp ult i64 %63, %64
  br i1 %65, label %.lr.ph.outer, label %._crit_edge.thread, !llvm.loop !35

.critedge:                                        ; preds = %.preheader91, %._crit_edge
  %66 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %67 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  %68 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull @.str.13, ptr noundef %67) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %69 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %70 = getelementptr inbounds i8, ptr %69, i64 120
  %71 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %70) #7
  store ptr %71, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %72 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %73 = getelementptr inbounds i8, ptr %72, i64 120
  %74 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %73) #7
  store ptr %74, ptr %12, align 8
  %75 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br i1 %75, label %.lr.ph98, label %._crit_edge99

._crit_edge99:                                    ; preds = %.lr.ph98, %.critedge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  %76 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull @.str.14, i32 noundef 10) #7
  %77 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %78 = getelementptr inbounds i8, ptr %77, i64 112
  %79 = load i16, ptr %78, align 8, !tbaa !17
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %6, i16 noundef signext %79)
  br label %109

.lr.ph98:                                         ; preds = %.critedge, %.lr.ph98
  %80 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  %81 = getelementptr inbounds i8, ptr %80, i64 32
  %82 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull @.str.13, ptr noundef %82) #7
  %84 = call ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEppEi(ptr noundef nonnull align 8 dereferenceable(8) %11, i32 noundef 0) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %85 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %86 = getelementptr inbounds i8, ptr %85, i64 120
  %87 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %86) #7
  store ptr %87, ptr %12, align 8
  %88 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br i1 %88, label %.lr.ph98, label %._crit_edge99, !llvm.loop !38

._crit_edge.thread:                               ; preds = %.thread, %._crit_edge
  %89 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %90 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  %91 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str.13, ptr noundef %90) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %92 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %93 = getelementptr inbounds i8, ptr %92, i64 120
  %94 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %93) #7
  store ptr %94, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %95 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %96 = getelementptr inbounds i8, ptr %95, i64 120
  %97 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %96) #7
  store ptr %97, ptr %14, align 8
  %98 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br i1 %98, label %.lr.ph101, label %._crit_edge102

._crit_edge102:                                   ; preds = %.lr.ph101, %._crit_edge.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  %99 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str.14, i32 noundef 10) #7
  br label %109

.lr.ph101:                                        ; preds = %._crit_edge.thread, %.lr.ph101
  %100 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  %101 = getelementptr inbounds i8, ptr %100, i64 32
  %102 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  %103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str.13, ptr noundef %102) #7
  %104 = call ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEppEi(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 0) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %105 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.077103) #7
  %106 = getelementptr inbounds i8, ptr %105, i64 120
  %107 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %106) #7
  store ptr %107, ptr %14, align 8
  %108 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br i1 %108, label %.lr.ph101, label %._crit_edge102, !llvm.loop !39

109:                                              ; preds = %._crit_edge102, %._crit_edge99
  %110 = add nuw i64 %.077103, 1
  %111 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %112 = icmp ult i64 %110, %111
  br i1 %112, label %.preheader91, label %._crit_edge105, !llvm.loop !40

113:                                              ; preds = %._crit_edge105
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader unwind label %34

.preheader:                                       ; preds = %113
  %115 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %.not110 = icmp eq i64 %115, 0
  br i1 %.not110, label %._crit_edge108, label %.lr.ph107

._crit_edge108:                                   ; preds = %159, %.preheader
  %116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %163 unwind label %34

.lr.ph107:                                        ; preds = %.preheader, %159
  %.081106 = phi i64 [ %160, %159 ], [ 0, %.preheader ]
  %117 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %118 = getelementptr inbounds i8, ptr %117, i64 82
  %119 = load i8, ptr %118, align 2, !tbaa !37, !range !41, !noundef !42
  %120 = trunc nuw i8 %119 to i1
  %121 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %122 = getelementptr inbounds i8, ptr %121, i64 80
  %123 = load i16, ptr %122, align 8, !tbaa !5
  br i1 %120, label %158, label %124

124:                                              ; preds = %.lr.ph107
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %5, i16 noundef signext %123)
  %125 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %126 = getelementptr inbounds i8, ptr %125, i64 80
  %127 = load i16, ptr %126, align 8, !tbaa !5
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i16 noundef signext %127)
          to label %129 unwind label %156

129:                                              ; preds = %124
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull @.str.16)
          to label %131 unwind label %156

131:                                              ; preds = %129
  %132 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %133 = getelementptr inbounds i8, ptr %132, i64 8
  %134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %135 unwind label %156

135:                                              ; preds = %131
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull @.str.16)
          to label %137 unwind label %156

137:                                              ; preds = %135
  %138 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %139 = load i32, ptr %138, align 8, !tbaa !43
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %136, i32 noundef %139)
          to label %141 unwind label %156

141:                                              ; preds = %137
  %142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull @.str.17)
          to label %143 unwind label %156

143:                                              ; preds = %141
  %144 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %145 = getelementptr inbounds i8, ptr %144, i64 48
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(32) %145)
          to label %147 unwind label %156

147:                                              ; preds = %143
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull @.str.16)
          to label %149 unwind label %156

149:                                              ; preds = %147
  %150 = call noundef nonnull align 8 dereferenceable(84) ptr @_ZNSt6vectorI8strsimulSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %.081106) #7
  %151 = getelementptr inbounds i8, ptr %150, i64 40
  %152 = load i32, ptr %151, align 8, !tbaa !44
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %148, i32 noundef %152)
          to label %154 unwind label %156

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

156:                                              ; preds = %154, %149, %147, %143, %141, %137, %135, %131, %129, %124
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %215

158:                                              ; preds = %.lr.ph107
  call void @_Z13add_to_reportR9strreports(ptr noundef nonnull align 2 dereferenceable(12) %7, i16 noundef signext %123)
  br label %159

159:                                              ; preds = %158, %154
  %160 = add nuw i64 %.081106, 1
  %161 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %162 = icmp ult i64 %160, %161
  br i1 %162, label %.lr.ph107, label %._crit_edge108, !llvm.loop !45

163:                                              ; preds = %._crit_edge108
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.18)
          to label %165 unwind label %34

165:                                              ; preds = %163
  %166 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %164, i64 noundef %166)
          to label %168 unwind label %34

168:                                              ; preds = %165
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull @.str.16)
          to label %170 unwind label %34

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  %.sroa.021.0.copyload = load i64, ptr %7, align 8
  %.sroa.222.0.copyload = load i32, ptr %.sroa.259.0..sroa_idx, align 8
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, i64 %.sroa.021.0.copyload, i32 %.sroa.222.0.copyload)
          to label %171 unwind label %198

171:                                              ; preds = %170
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %173 unwind label %200

173:                                              ; preds = %171
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @.str.16)
          to label %175 unwind label %200

175:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %.sroa.017.0.copyload = load i64, ptr %5, align 8
  %.sroa.218.0.copyload = load i32, ptr %.sroa.267.0..sroa_idx, align 8
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, i64 %.sroa.017.0.copyload, i32 %.sroa.218.0.copyload)
          to label %176 unwind label %202

176:                                              ; preds = %175
  %177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %178 unwind label %204

178:                                              ; preds = %176
  %179 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull @.str.16)
          to label %180 unwind label %204

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  %.sroa.013.0.copyload = load i64, ptr %6, align 8
  %.sroa.214.0.copyload = load i32, ptr %.sroa.263.0..sroa_idx, align 8
  invoke void @_Z12print_reportB5cxx119strreport(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, i64 %.sroa.013.0.copyload, i32 %.sroa.214.0.copyload)
          to label %181 unwind label %206

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %183 unwind label %208

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull @.str.16)
          to label %185 unwind label %208

185:                                              ; preds = %183
  %186 = call noundef i64 @_ZNKSt6vectorI8strsimulSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %187 = trunc i64 %186 to i32
  %.sroa.09.0.copyload = load i64, ptr %7, align 8
  %.sroa.210.0.copyload = load i32, ptr %.sroa.259.0..sroa_idx, align 8
  %188 = call noundef double @_Z6get_TPi9strreport(i32 noundef %187, i64 %.sroa.09.0.copyload, i32 %.sroa.210.0.copyload)
  %189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %184, double noundef %188)
          to label %190 unwind label %208

190:                                              ; preds = %185
  %191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull @.str.16)
          to label %192 unwind label %208

192:                                              ; preds = %190
  %.sroa.05.0.copyload = load i64, ptr %7, align 8
  %.sroa.26.0.copyload = load i32, ptr %.sroa.259.0..sroa_idx, align 8
  %.sroa.03.0.copyload = load i64, ptr %6, align 8
  %.sroa.24.0.copyload = load i32, ptr %.sroa.263.0..sroa_idx, align 8
  %193 = call noundef double @_Z6get_FP9strreportS_(i64 %.sroa.05.0.copyload, i32 %.sroa.26.0.copyload, i64 %.sroa.03.0.copyload, i32 %.sroa.24.0.copyload)
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %191, double noundef %193)
          to label %195 unwind label %208

195:                                              ; preds = %192
  %196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %197 unwind label %208

197:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %5) #7
  ret void

198:                                              ; preds = %170
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %214

200:                                              ; preds = %173, %171
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %213

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

204:                                              ; preds = %178, %176
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

206:                                              ; preds = %180
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %195, %192, %190, %185, %183, %181
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %210

210:                                              ; preds = %208, %206
  %.pn = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %211

211:                                              ; preds = %210, %204
  %.pn.pn = phi { ptr, i32 } [ %.pn, %210 ], [ %205, %204 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %212

212:                                              ; preds = %211, %202
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %211 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %213

213:                                              ; preds = %212, %200
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %212 ], [ %201, %200 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %214

214:                                              ; preds = %213, %198
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %213 ], [ %199, %198 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %215

215:                                              ; preds = %50, %56, %214, %156, %34
  %.pn87.pn.pn = phi { ptr, i32 } [ %157, %156 ], [ %.pn.pn.pn.pn.pn, %214 ], [ %35, %34 ], [ %.pn87, %56 ], [ %51, %50 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn87.pn.pn
}

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

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

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #6

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

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

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

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

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #6

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #3 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 = { 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 #3 = { 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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

!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, !15, i64 80}
!6 = !{!"_ZTS8strsimul", !7, i64 0, !7, i64 40, !15, i64 80, !16, i64 82, !16, i64 83}
!7 = !{!"_ZTS13strcoordinate", !8, i64 0, !11, i64 8}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !14, i64 8, !9, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !13, i64 0}
!13 = !{!"any pointer", !9, i64 0}
!14 = !{!"long", !9, i64 0}
!15 = !{!"short", !9, i64 0}
!16 = !{!"bool", !9, i64 0}
!17 = !{!18, !15, i64 112}
!18 = !{!"_ZTS11strvcfentry", !11, i64 0, !7, i64 32, !7, i64 72, !15, i64 112, !19, i64 120, !8, i64 168, !8, i64 172, !27, i64 176, !31, i64 200, !32, i64 204, !11, i64 216, !8, i64 248, !11, i64 256, !33, i64 288, !11, i64 296, !8, i64 328, !34, i64 336, !32, i64 400, !32, i64 408, !8, i64 416}
!19 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !20, i64 0}
!20 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !21, i64 0}
!21 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !22, i64 0, !24, i64 8}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !14, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !9, i64 0}
!27 = !{!"_ZTSSt6vectorIiSaIiEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!31 = !{!"_ZTSSt4pairIbbE", !16, i64 0, !16, i64 1}
!32 = !{!"_ZTSSt4pairIiiE", !8, i64 0, !8, i64 4}
!33 = !{!"double", !9, i64 0}
!34 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !11, i64 0, !11, i64 32}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = !{!6, !16, i64 82}
!38 = distinct !{!38, !36}
!39 = distinct !{!39, !36}
!40 = distinct !{!40, !36}
!41 = !{i8 0, i8 2}
!42 = !{}
!43 = !{!6, !8, i64 0}
!44 = !{!6, !8, i64 40}
!45 = distinct !{!45, !36}


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