; LLVM IR from ERGO-Code/HiGHS :: extern/filereaderlp/reader.ll (ZN6Reader13processtokensEv)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%class.Reader = type { %"class.std::basic_ifstream", %"class.std::__cxx11::basic_string", i64, %"struct.std::array", %"class.std::vector.22", %"class.std::map", %struct.Builder }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.21 }
%union.anon.21 = type { i32 }
%"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 }
%"struct.std::array" = type { [3 x %struct.RawToken] }
%struct.RawToken = type { i32, %"class.std::__cxx11::basic_string", double }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<ProcessedToken, std::allocator<ProcessedToken>>::_Vector_impl" }
%"struct.std::_Vector_base<ProcessedToken, std::allocator<ProcessedToken>>::_Vector_impl" = type { %"struct.std::_Vector_base<ProcessedToken, std::allocator<ProcessedToken>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ProcessedToken, std::allocator<ProcessedToken>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<LpSectionKeyword, std::pair<const LpSectionKeyword, std::pair<__gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>, __gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>>>, std::_Select1st<std::pair<const LpSectionKeyword, std::pair<__gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>, __gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>>>>, std::less<LpSectionKeyword>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<LpSectionKeyword, std::pair<const LpSectionKeyword, std::pair<__gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>, __gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>>>, std::_Select1st<std::pair<const LpSectionKeyword, std::pair<__gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>, __gnu_cxx::__normal_iterator<ProcessedToken *, std::vector<ProcessedToken>>>>>, std::less<LpSectionKeyword>>::_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 }
%struct.Builder = type { %"class.std::unordered_map.30", %struct.Model }
%"class.std::unordered_map.30" = type { %"class.std::_Hashtable.31" }
%"class.std::_Hashtable.31" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.Model = type { %"class.std::shared_ptr", i32, %"class.std::vector", %"class.std::vector.11", %"class.std::vector.16" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::shared_ptr<Constraint>, std::allocator<std::shared_ptr<Constraint>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Constraint>, std::allocator<std::shared_ptr<Constraint>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Constraint>, std::allocator<std::shared_ptr<Constraint>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Constraint>, std::allocator<std::shared_ptr<Constraint>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<std::shared_ptr<Variable>, std::allocator<std::shared_ptr<Variable>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Variable>, std::allocator<std::shared_ptr<Variable>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Variable>, std::allocator<std::shared_ptr<Variable>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Variable>, std::allocator<std::shared_ptr<Variable>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::shared_ptr<SOS>, std::allocator<std::shared_ptr<SOS>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<SOS>, std::allocator<std::shared_ptr<SOS>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<SOS>, std::allocator<std::shared_ptr<SOS>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<SOS>, std::allocator<std::shared_ptr<SOS>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZL14LP_KEYWORD_INFB5cxx11 = external hidden global [2 x %"class.std::__cxx11::basic_string"], align 16
@_ZL15LP_KEYWORD_FREEB5cxx11 = external hidden global [1 x %"class.std::__cxx11::basic_string"], align 16
@stdout = external global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZL9kHighsInf = external hidden constant double, align 8
@.str.34 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN6Reader13processtokensEv = external hidden unnamed_addr constant [29 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Reader13processtokensEv(ptr noundef nonnull align 8 dereferenceable(928) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %33 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %34

34:                                               ; preds = %667, %653, %639, %620, %606, %587, %573, %559, %545, %531, %521, %493, %384, %371, %354, %337, %315, %237, %211, %151, %75, %1
  %35 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %36 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %35, i64 noundef 0) #7
  %37 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %36, i32 noundef 8)
          to label %38 unwind label %76

38:                                               ; preds = %34
  %39 = xor i1 %37, true
  br i1 %39, label %40, label %683

40:                                               ; preds = %38
  %41 = load ptr, ptr @stdout, align 8, !tbaa !5
  %42 = invoke i32 @fflush(ptr noundef %41)
          to label %43 unwind label %76

43:                                               ; preds = %40
  %44 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %45 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %44, i64 noundef 0) #7
  %46 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %45, i32 noundef 14)
          to label %47 unwind label %76

47:                                               ; preds = %43
  br i1 %46, label %48, label %80

48:                                               ; preds = %47
  %49 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %50 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %49, i64 noundef 1) #7
  %51 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %50, i32 noundef 15)
          to label %52 unwind label %76

52:                                               ; preds = %48
  br i1 %51, label %53, label %80

53:                                               ; preds = %52
  br label %54

54:                                               ; preds = %72, %53
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %55 unwind label %76

55:                                               ; preds = %54
  br label %56

56:                                               ; preds = %55
  %57 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %58 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %57, i64 noundef 0) #7
  %59 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %58, i32 noundef 15)
          to label %60 unwind label %76

60:                                               ; preds = %56
  br i1 %59, label %61, label %66

61:                                               ; preds = %60
  %62 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %63 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %62, i64 noundef 1) #7
  %64 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %63, i32 noundef 14)
          to label %65 unwind label %76

65:                                               ; preds = %61
  br i1 %64, label %72, label %66

66:                                               ; preds = %65, %60
  %67 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %68 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %67, i64 noundef 0) #7
  %69 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %68, i32 noundef 8)
          to label %70 unwind label %76

70:                                               ; preds = %66
  %71 = xor i1 %69, true
  br label %72

72:                                               ; preds = %70, %65
  %73 = phi i1 [ false, %65 ], [ %71, %70 ]
  br i1 %73, label %54, label %74, !llvm.loop !9

74:                                               ; preds = %72
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %75 unwind label %76

75:                                               ; preds = %74
  br label %34, !llvm.loop !11

76:                                               ; preds = %681, %672, %666, %658, %652, %644, %638, %630, %625, %619, %611, %605, %597, %592, %586, %578, %572, %564, %558, %550, %544, %536, %530, %522, %520, %514, %509, %507, %502, %497, %394, %389, %383, %372, %370, %367, %364, %359, %353, %347, %342, %336, %325, %320, %314, %299, %290, %281, %279, %270, %261, %255, %250, %245, %240, %217, %162, %157, %102, %97, %92, %90, %85, %80, %74, %66, %61, %56, %54, %48, %43, %40, %34
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %4, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %5, align 4
  br label %684

80:                                               ; preds = %52, %47
  %81 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %82 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %81, i64 noundef 0) #7
  %83 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %82, i32 noundef 1)
          to label %84 unwind label %76

84:                                               ; preds = %80
  br i1 %83, label %85, label %92

85:                                               ; preds = %84
  %86 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %87 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %86, i64 noundef 0) #7
  %88 = getelementptr inbounds %struct.RawToken, ptr %87, i32 0, i32 1
  %89 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %90 unwind label %76

90:                                               ; preds = %85
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %91 unwind label %76

91:                                               ; preds = %90
  br label %92

92:                                               ; preds = %91, %84
  %93 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %94 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %93, i64 noundef 0) #7
  %95 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %94, i32 noundef 1)
          to label %96 unwind label %76

96:                                               ; preds = %92
  br i1 %95, label %97, label %157

97:                                               ; preds = %96
  %98 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %99 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %98, i64 noundef 1) #7
  %100 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %99, i32 noundef 12)
          to label %101 unwind label %76

101:                                              ; preds = %97
  br i1 %100, label %102, label %157

102:                                              ; preds = %101
  %103 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %104 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %103, i64 noundef 2) #7
  %105 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %104, i32 noundef 1)
          to label %106 unwind label %76

106:                                              ; preds = %102
  br i1 %105, label %107, label %157

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #7
  %108 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %109 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %108, i64 noundef 2) #7
  %110 = getelementptr inbounds %struct.RawToken, ptr %109, i32 0, i32 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %111 unwind label %124

111:                                              ; preds = %107
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %112 unwind label %128

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @.str.32)
          to label %113 unwind label %132

113:                                              ; preds = %112
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %114 unwind label %136

114:                                              ; preds = %113
  %115 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %116 unwind label %140

116:                                              ; preds = %114
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #7
  store i32 %115, ptr %7, align 4, !tbaa !12
  %117 = load i32, ptr %7, align 4, !tbaa !12
  %118 = icmp ne i32 %117, 0
  br i1 %118, label %119, label %150

119:                                              ; preds = %116
  %120 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %121 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %122 unwind label %146

122:                                              ; preds = %119
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 3)
          to label %123 unwind label %146

123:                                              ; preds = %122
  store i32 2, ptr %10, align 4
  br label %151, !llvm.loop !11

124:                                              ; preds = %107
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %4, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %5, align 4
  br label %156

128:                                              ; preds = %111
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %4, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %5, align 4
  br label %155

132:                                              ; preds = %112
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %4, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %5, align 4
  br label %145

136:                                              ; preds = %113
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %4, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %5, align 4
  br label %144

140:                                              ; preds = %114
  %141 = landingpad { ptr, i32 }
          cleanup
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %4, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %144

144:                                              ; preds = %140, %136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %145

145:                                              ; preds = %144, %132
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #7
  br label %154

146:                                              ; preds = %122, %119
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %4, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %5, align 4
  br label %154

150:                                              ; preds = %116
  store i32 0, ptr %10, align 4
  br label %151

151:                                              ; preds = %150, %123
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  %152 = load i32, ptr %10, align 4
  switch i32 %152, label %690 [
    i32 0, label %153
    i32 2, label %34
  ]

153:                                              ; preds = %151
  br label %157

154:                                              ; preds = %146, %145
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %155

155:                                              ; preds = %154, %128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %156

156:                                              ; preds = %155, %124
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %684

157:                                              ; preds = %153, %106, %101, %96
  %158 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %159 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %158, i64 noundef 0) #7
  %160 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %159, i32 noundef 1)
          to label %161 unwind label %76

161:                                              ; preds = %157
  br i1 %160, label %162, label %217

162:                                              ; preds = %161
  %163 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %164 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %163, i64 noundef 1) #7
  %165 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %164, i32 noundef 1)
          to label %166 unwind label %76

166:                                              ; preds = %162
  br i1 %165, label %167, label %217

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  %168 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %169 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %168, i64 noundef 1) #7
  %170 = getelementptr inbounds %struct.RawToken, ptr %169, i32 0, i32 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %171 unwind label %184

171:                                              ; preds = %167
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %172 unwind label %188

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @.str.33)
          to label %173 unwind label %192

173:                                              ; preds = %172
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %174 unwind label %196

174:                                              ; preds = %173
  %175 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %176 unwind label %200

176:                                              ; preds = %174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  store i32 %175, ptr %12, align 4, !tbaa !12
  %177 = load i32, ptr %12, align 4, !tbaa !12
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %210

179:                                              ; preds = %176
  %180 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %181 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %180, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %182 unwind label %206

182:                                              ; preds = %179
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %183 unwind label %206

183:                                              ; preds = %182
  store i32 2, ptr %10, align 4
  br label %211, !llvm.loop !11

184:                                              ; preds = %167
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %4, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %5, align 4
  br label %216

188:                                              ; preds = %171
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %4, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %5, align 4
  br label %215

192:                                              ; preds = %172
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %4, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %5, align 4
  br label %205

196:                                              ; preds = %173
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %4, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %5, align 4
  br label %204

200:                                              ; preds = %174
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %4, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %204

204:                                              ; preds = %200, %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %205

205:                                              ; preds = %204, %192
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  br label %214

206:                                              ; preds = %182, %179
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %4, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %5, align 4
  br label %214

210:                                              ; preds = %176
  store i32 0, ptr %10, align 4
  br label %211

211:                                              ; preds = %210, %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  %212 = load i32, ptr %10, align 4
  switch i32 %212, label %690 [
    i32 0, label %213
    i32 2, label %34
  ]

213:                                              ; preds = %211
  br label %217

214:                                              ; preds = %206, %205
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %215

215:                                              ; preds = %214, %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %216

216:                                              ; preds = %215, %184
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  br label %684

217:                                              ; preds = %213, %166, %161
  %218 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %219 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %218, i64 noundef 0) #7
  %220 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %219, i32 noundef 1)
          to label %221 unwind label %76

221:                                              ; preds = %217
  br i1 %220, label %222, label %240

222:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %223 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %224 unwind label %232

224:                                              ; preds = %222
  store i32 %223, ptr %15, align 4, !tbaa !12
  %225 = load i32, ptr %15, align 4, !tbaa !12
  %226 = icmp ne i32 %225, 0
  br i1 %226, label %227, label %236

227:                                              ; preds = %224
  %228 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %229 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %228, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %230 unwind label %232

230:                                              ; preds = %227
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %231 unwind label %232

231:                                              ; preds = %230
  store i32 2, ptr %10, align 4
  br label %237, !llvm.loop !11

232:                                              ; preds = %230, %227, %222
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %4, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %684

236:                                              ; preds = %224
  store i32 0, ptr %10, align 4
  br label %237

237:                                              ; preds = %236, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  %238 = load i32, ptr %10, align 4
  switch i32 %238, label %690 [
    i32 0, label %239
    i32 2, label %34
  ]

239:                                              ; preds = %237
  br label %240

240:                                              ; preds = %239, %221
  %241 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %242 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %241, i64 noundef 0) #7
  %243 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %242, i32 noundef 1)
          to label %244 unwind label %76

244:                                              ; preds = %240
  br i1 %243, label %245, label %320

245:                                              ; preds = %244
  %246 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %247 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %246, i64 noundef 1) #7
  %248 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %247, i32 noundef 6)
          to label %249 unwind label %76

249:                                              ; preds = %245
  br i1 %248, label %250, label %320

250:                                              ; preds = %249
  %251 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %252 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %251, i64 noundef 2) #7
  %253 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %252, i32 noundef 6)
          to label %254 unwind label %76

254:                                              ; preds = %250
  br i1 %253, label %255, label %320

255:                                              ; preds = %254
  %256 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %257 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %256, i64 noundef 0) #7
  %258 = getelementptr inbounds %struct.RawToken, ptr %257, i32 0, i32 1
  %259 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  %260 = icmp eq i64 %259, 2
  invoke void @_Z8lpassertb(i1 noundef zeroext %260)
          to label %261 unwind label %76

261:                                              ; preds = %255
  %262 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %263 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %262, i64 noundef 0) #7
  %264 = getelementptr inbounds %struct.RawToken, ptr %263, i32 0, i32 1
  %265 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %264, i64 noundef 0)
          to label %266 unwind label %76

266:                                              ; preds = %261
  %267 = load i8, ptr %265, align 1, !tbaa !14
  %268 = sext i8 %267 to i32
  %269 = icmp eq i32 %268, 83
  br i1 %269, label %279, label %270

270:                                              ; preds = %266
  %271 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %272 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %271, i64 noundef 0) #7
  %273 = getelementptr inbounds %struct.RawToken, ptr %272, i32 0, i32 1
  %274 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %273, i64 noundef 0)
          to label %275 unwind label %76

275:                                              ; preds = %270
  %276 = load i8, ptr %274, align 1, !tbaa !14
  %277 = sext i8 %276 to i32
  %278 = icmp eq i32 %277, 115
  br label %279

279:                                              ; preds = %275, %266
  %280 = phi i1 [ true, %266 ], [ %278, %275 ]
  invoke void @_Z8lpassertb(i1 noundef zeroext %280)
          to label %281 unwind label %76

281:                                              ; preds = %279
  %282 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %283 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %282, i64 noundef 0) #7
  %284 = getelementptr inbounds %struct.RawToken, ptr %283, i32 0, i32 1
  %285 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %284, i64 noundef 1)
          to label %286 unwind label %76

286:                                              ; preds = %281
  %287 = load i8, ptr %285, align 1, !tbaa !14
  %288 = sext i8 %287 to i32
  %289 = icmp eq i32 %288, 49
  br i1 %289, label %299, label %290

290:                                              ; preds = %286
  %291 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %292 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %291, i64 noundef 0) #7
  %293 = getelementptr inbounds %struct.RawToken, ptr %292, i32 0, i32 1
  %294 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %293, i64 noundef 1)
          to label %295 unwind label %76

295:                                              ; preds = %290
  %296 = load i8, ptr %294, align 1, !tbaa !14
  %297 = sext i8 %296 to i32
  %298 = icmp eq i32 %297, 50
  br label %299

299:                                              ; preds = %295, %286
  %300 = phi i1 [ true, %286 ], [ %298, %295 ]
  invoke void @_Z8lpassertb(i1 noundef zeroext %300)
          to label %301 unwind label %76

301:                                              ; preds = %299
  %302 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %303 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %304 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %303, i64 noundef 0) #7
  %305 = getelementptr inbounds %struct.RawToken, ptr %304, i32 0, i32 1
  %306 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %305, i64 noundef 1)
          to label %307 unwind label %316

307:                                              ; preds = %301
  %308 = load i8, ptr %306, align 1, !tbaa !14
  %309 = sext i8 %308 to i32
  %310 = icmp eq i32 %309, 49
  %311 = zext i1 %310 to i64
  %312 = select i1 %310, i32 0, i32 1
  store i32 %312, ptr %16, align 4, !tbaa !15
  %313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ7SosTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %302, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %314 unwind label %316

314:                                              ; preds = %307
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 3)
          to label %315 unwind label %76

315:                                              ; preds = %314
  br label %34, !llvm.loop !11

316:                                              ; preds = %307, %301
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %4, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %684

320:                                              ; preds = %254, %249, %244
  %321 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %322 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %321, i64 noundef 0) #7
  %323 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %322, i32 noundef 1)
          to label %324 unwind label %76

324:                                              ; preds = %320
  br i1 %323, label %325, label %342

325:                                              ; preds = %324
  %326 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %327 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %326, i64 noundef 1) #7
  %328 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %327, i32 noundef 6)
          to label %329 unwind label %76

329:                                              ; preds = %325
  br i1 %328, label %330, label %342

330:                                              ; preds = %329
  %331 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 3, ptr %17, align 4, !tbaa !17
  %332 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %333 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %332, i64 noundef 0) #7
  %334 = getelementptr inbounds %struct.RawToken, ptr %333, i32 0, i32 1
  %335 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %331, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %336 unwind label %338

336:                                              ; preds = %330
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %337 unwind label %76

337:                                              ; preds = %336
  br label %34, !llvm.loop !11

338:                                              ; preds = %330
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %4, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %684

342:                                              ; preds = %329, %324
  %343 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %344 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %343, i64 noundef 0) #7
  %345 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %344, i32 noundef 1)
          to label %346 unwind label %76

346:                                              ; preds = %342
  br i1 %345, label %347, label %359

347:                                              ; preds = %346
  %348 = invoke noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @_ZL15LP_KEYWORD_FREEB5cxx11, i32 noundef 1)
          to label %349 unwind label %76

349:                                              ; preds = %347
  br i1 %348, label %350, label %359

350:                                              ; preds = %349
  %351 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 5, ptr %18, align 4, !tbaa !17
  %352 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %351, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %353 unwind label %355

353:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %354 unwind label %76

354:                                              ; preds = %353
  br label %34, !llvm.loop !11

355:                                              ; preds = %350
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %4, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %684

359:                                              ; preds = %349, %346
  %360 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %361 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %360, i64 noundef 0) #7
  %362 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %361, i32 noundef 1)
          to label %363 unwind label %76

363:                                              ; preds = %359
  br i1 %362, label %364, label %372

364:                                              ; preds = %363
  %365 = invoke noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @_ZL14LP_KEYWORD_INFB5cxx11, i32 noundef 2)
          to label %366 unwind label %76

366:                                              ; preds = %364
  br i1 %365, label %367, label %372

367:                                              ; preds = %366
  %368 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %369 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRKdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %368, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
          to label %370 unwind label %76

370:                                              ; preds = %367
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %371 unwind label %76

371:                                              ; preds = %370
  br label %34, !llvm.loop !11

372:                                              ; preds = %366, %363
  %373 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %374 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %373, i64 noundef 0) #7
  %375 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %374, i32 noundef 1)
          to label %376 unwind label %76

376:                                              ; preds = %372
  br i1 %375, label %377, label %389

377:                                              ; preds = %376
  %378 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 2, ptr %19, align 4, !tbaa !17
  %379 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %380 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %379, i64 noundef 0) #7
  %381 = getelementptr inbounds %struct.RawToken, ptr %380, i32 0, i32 1
  %382 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %378, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(32) %381)
          to label %383 unwind label %385

383:                                              ; preds = %377
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %384 unwind label %76

384:                                              ; preds = %383
  br label %34, !llvm.loop !11

385:                                              ; preds = %377
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %4, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %684

389:                                              ; preds = %376
  %390 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %391 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %390, i64 noundef 0) #7
  %392 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %391, i32 noundef 11)
          to label %393 unwind label %76

393:                                              ; preds = %389
  br i1 %392, label %399, label %394

394:                                              ; preds = %393
  %395 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %396 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %395, i64 noundef 0) #7
  %397 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %396, i32 noundef 12)
          to label %398 unwind label %76

398:                                              ; preds = %394
  br i1 %397, label %399, label %497

399:                                              ; preds = %398, %393
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %400 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %401 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %400, i64 noundef 0) #7
  %402 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %401, i32 noundef 11)
          to label %403 unwind label %426

403:                                              ; preds = %399
  %404 = zext i1 %402 to i64
  %405 = select i1 %402, double 1.000000e+00, double -1.000000e+00
  store double %405, ptr %20, align 8, !tbaa !19
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %406 unwind label %426

406:                                              ; preds = %403
  %407 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %408 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %407, i64 noundef 0) #7
  %409 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %408, i32 noundef 11)
          to label %410 unwind label %426

410:                                              ; preds = %406
  br i1 %409, label %416, label %411

411:                                              ; preds = %410
  %412 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %413 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %412, i64 noundef 0) #7
  %414 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %413, i32 noundef 12)
          to label %415 unwind label %426

415:                                              ; preds = %411
  br i1 %414, label %416, label %430

416:                                              ; preds = %415, %410
  %417 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %418 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %417, i64 noundef 0) #7
  %419 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %418, i32 noundef 11)
          to label %420 unwind label %426

420:                                              ; preds = %416
  %421 = zext i1 %419 to i64
  %422 = select i1 %419, double 1.000000e+00, double -1.000000e+00
  %423 = load double, ptr %20, align 8, !tbaa !19
  %424 = fmul double %423, %422
  store double %424, ptr %20, align 8, !tbaa !19
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %425 unwind label %426

425:                                              ; preds = %420
  br label %430

426:                                              ; preds = %491, %488, %483, %479, %474, %472, %467, %461, %450, %444, %430, %420, %416, %411, %406, %403, %399
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %4, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %5, align 4
  br label %496

430:                                              ; preds = %425, %415
  %431 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %432 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %431, i64 noundef 0) #7
  %433 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %432, i32 noundef 2)
          to label %434 unwind label %426

434:                                              ; preds = %430
  br i1 %433, label %435, label %450

435:                                              ; preds = %434
  %436 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %437 = load double, ptr %20, align 8, !tbaa !19
  %438 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %439 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %438, i64 noundef 0) #7
  %440 = getelementptr inbounds %struct.RawToken, ptr %439, i32 0, i32 2
  %441 = load double, ptr %440, align 8, !tbaa !21
  %442 = fmul double %437, %441
  store double %442, ptr %21, align 8, !tbaa !19
  %443 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %436, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %444 unwind label %446

444:                                              ; preds = %435
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %445 unwind label %426

445:                                              ; preds = %444
  store i32 2, ptr %10, align 4
  br label %493, !llvm.loop !11

446:                                              ; preds = %435
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %4, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %496

450:                                              ; preds = %434
  %451 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %452 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %451, i64 noundef 0) #7
  %453 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %452, i32 noundef 9)
          to label %454 unwind label %426

454:                                              ; preds = %450
  br i1 %453, label %455, label %467

455:                                              ; preds = %454
  %456 = load double, ptr %20, align 8, !tbaa !19
  %457 = fcmp oeq double %456, 1.000000e+00
  br i1 %457, label %458, label %467

458:                                              ; preds = %455
  %459 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  store i32 6, ptr %22, align 4, !tbaa !17
  %460 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %459, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %461 unwind label %463

461:                                              ; preds = %458
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %462 unwind label %426

462:                                              ; preds = %461
  store i32 2, ptr %10, align 4
  br label %493, !llvm.loop !11

463:                                              ; preds = %458
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %4, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %496

467:                                              ; preds = %455, %454
  %468 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %469 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %468, i64 noundef 0) #7
  %470 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %469, i32 noundef 9)
          to label %471 unwind label %426

471:                                              ; preds = %467
  br i1 %470, label %472, label %474

472:                                              ; preds = %471
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %473 unwind label %426

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473, %471
  %475 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %476 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %475, i64 noundef 0) #7
  %477 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %476, i32 noundef 1)
          to label %478 unwind label %426

478:                                              ; preds = %474
  br i1 %477, label %479, label %483

479:                                              ; preds = %478
  %480 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %481 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %480, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %482 unwind label %426

482:                                              ; preds = %479
  store i32 2, ptr %10, align 4
  br label %493, !llvm.loop !11

483:                                              ; preds = %478
  %484 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %485 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %484, i64 noundef 0) #7
  %486 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %485, i32 noundef 4)
          to label %487 unwind label %426

487:                                              ; preds = %483
  br i1 %486, label %488, label %491

488:                                              ; preds = %487
  %489 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.34)
          to label %490 unwind label %426

490:                                              ; preds = %488
  br label %491

491:                                              ; preds = %490, %487
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %492 unwind label %426

492:                                              ; preds = %491
  store i32 0, ptr %10, align 4
  br label %493

493:                                              ; preds = %492, %482, %462, %445
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  %494 = load i32, ptr %10, align 4
  switch i32 %494, label %690 [
    i32 0, label %495
    i32 2, label %34
  ]

495:                                              ; preds = %493
  br label %497

496:                                              ; preds = %463, %446, %426
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %684

497:                                              ; preds = %495, %398
  %498 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %499 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %498, i64 noundef 0) #7
  %500 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %499, i32 noundef 2)
          to label %501 unwind label %76

501:                                              ; preds = %497
  br i1 %500, label %502, label %509

502:                                              ; preds = %501
  %503 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %504 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %503, i64 noundef 1) #7
  %505 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %504, i32 noundef 9)
          to label %506 unwind label %76

506:                                              ; preds = %502
  br i1 %505, label %507, label %509

507:                                              ; preds = %506
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %508 unwind label %76

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508, %506, %501
  %510 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %511 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %510, i64 noundef 0) #7
  %512 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %511, i32 noundef 2)
          to label %513 unwind label %76

513:                                              ; preds = %509
  br i1 %512, label %514, label %522

514:                                              ; preds = %513
  %515 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  %516 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %517 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %516, i64 noundef 0) #7
  %518 = getelementptr inbounds %struct.RawToken, ptr %517, i32 0, i32 2
  %519 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %515, ptr noundef nonnull align 8 dereferenceable(8) %518)
          to label %520 unwind label %76

520:                                              ; preds = %514
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %521 unwind label %76

521:                                              ; preds = %520
  br label %34, !llvm.loop !11

522:                                              ; preds = %513
  %523 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %524 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %523, i64 noundef 0) #7
  %525 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %524, i32 noundef 9)
          to label %526 unwind label %76

526:                                              ; preds = %522
  br i1 %525, label %527, label %536

527:                                              ; preds = %526
  %528 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 6, ptr %23, align 4, !tbaa !17
  %529 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %528, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %530 unwind label %532

530:                                              ; preds = %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %531 unwind label %76

531:                                              ; preds = %530
  br label %34, !llvm.loop !11

532:                                              ; preds = %527
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %4, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %684

536:                                              ; preds = %526
  %537 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %538 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %537, i64 noundef 0) #7
  %539 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %538, i32 noundef 10)
          to label %540 unwind label %76

540:                                              ; preds = %536
  br i1 %539, label %541, label %550

541:                                              ; preds = %540
  %542 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 7, ptr %24, align 4, !tbaa !17
  %543 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %542, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %544 unwind label %546

544:                                              ; preds = %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %545 unwind label %76

545:                                              ; preds = %544
  br label %34, !llvm.loop !11

546:                                              ; preds = %541
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %4, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %684

550:                                              ; preds = %540
  %551 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %552 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %551, i64 noundef 0) #7
  %553 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %552, i32 noundef 14)
          to label %554 unwind label %76

554:                                              ; preds = %550
  br i1 %553, label %555, label %564

555:                                              ; preds = %554
  %556 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 10, ptr %25, align 4, !tbaa !17
  %557 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %556, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %558 unwind label %560

558:                                              ; preds = %555
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %559 unwind label %76

559:                                              ; preds = %558
  br label %34, !llvm.loop !11

560:                                              ; preds = %555
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %4, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %684

564:                                              ; preds = %554
  %565 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %566 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %565, i64 noundef 0) #7
  %567 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %566, i32 noundef 15)
          to label %568 unwind label %76

568:                                              ; preds = %564
  br i1 %567, label %569, label %578

569:                                              ; preds = %568
  %570 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 11, ptr %26, align 4, !tbaa !17
  %571 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %570, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %572 unwind label %574

572:                                              ; preds = %569
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %573 unwind label %76

573:                                              ; preds = %572
  br label %34, !llvm.loop !11

574:                                              ; preds = %569
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %4, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %684

578:                                              ; preds = %568
  %579 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %580 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %579, i64 noundef 0) #7
  %581 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %580, i32 noundef 13)
          to label %582 unwind label %76

582:                                              ; preds = %578
  br i1 %581, label %583, label %592

583:                                              ; preds = %582
  %584 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 12, ptr %27, align 4, !tbaa !17
  %585 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %584, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %586 unwind label %588

586:                                              ; preds = %583
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %587 unwind label %76

587:                                              ; preds = %586
  br label %34, !llvm.loop !11

588:                                              ; preds = %583
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %4, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %684

592:                                              ; preds = %582
  %593 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %594 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %593, i64 noundef 0) #7
  %595 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %594, i32 noundef 3)
          to label %596 unwind label %76

596:                                              ; preds = %592
  br i1 %595, label %597, label %611

597:                                              ; preds = %596
  %598 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %599 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %598, i64 noundef 1) #7
  %600 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %599, i32 noundef 5)
          to label %601 unwind label %76

601:                                              ; preds = %597
  br i1 %600, label %602, label %611

602:                                              ; preds = %601
  %603 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 0, ptr %28, align 4, !tbaa !27
  %604 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %603, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %605 unwind label %607

605:                                              ; preds = %602
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %606 unwind label %76

606:                                              ; preds = %605
  br label %34, !llvm.loop !11

607:                                              ; preds = %602
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %4, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %684

611:                                              ; preds = %601, %596
  %612 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %613 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %612, i64 noundef 0) #7
  %614 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %613, i32 noundef 3)
          to label %615 unwind label %76

615:                                              ; preds = %611
  br i1 %614, label %616, label %625

616:                                              ; preds = %615
  %617 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 1, ptr %29, align 4, !tbaa !27
  %618 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %617, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %619 unwind label %621

619:                                              ; preds = %616
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %620 unwind label %76

620:                                              ; preds = %619
  br label %34, !llvm.loop !11

621:                                              ; preds = %616
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %4, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %684

625:                                              ; preds = %615
  %626 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %627 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %626, i64 noundef 0) #7
  %628 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %627, i32 noundef 4)
          to label %629 unwind label %76

629:                                              ; preds = %625
  br i1 %628, label %630, label %644

630:                                              ; preds = %629
  %631 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %632 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %631, i64 noundef 1) #7
  %633 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %632, i32 noundef 5)
          to label %634 unwind label %76

634:                                              ; preds = %630
  br i1 %633, label %635, label %644

635:                                              ; preds = %634
  %636 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 4, ptr %30, align 4, !tbaa !27
  %637 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %636, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %638 unwind label %640

638:                                              ; preds = %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 2)
          to label %639 unwind label %76

639:                                              ; preds = %638
  br label %34, !llvm.loop !11

640:                                              ; preds = %635
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %4, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %684

644:                                              ; preds = %634, %629
  %645 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %646 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %645, i64 noundef 0) #7
  %647 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %646, i32 noundef 4)
          to label %648 unwind label %76

648:                                              ; preds = %644
  br i1 %647, label %649, label %658

649:                                              ; preds = %648
  %650 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 3, ptr %31, align 4, !tbaa !27
  %651 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %650, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %652 unwind label %654

652:                                              ; preds = %649
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %653 unwind label %76

653:                                              ; preds = %652
  br label %34, !llvm.loop !11

654:                                              ; preds = %649
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %4, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %684

658:                                              ; preds = %648
  %659 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %660 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %659, i64 noundef 0) #7
  %661 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %660, i32 noundef 5)
          to label %662 unwind label %76

662:                                              ; preds = %658
  br i1 %661, label %663, label %672

663:                                              ; preds = %662
  %664 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  store i32 2, ptr %32, align 4, !tbaa !27
  %665 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %664, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %666 unwind label %668

666:                                              ; preds = %663
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %33, i64 noundef 1)
          to label %667 unwind label %76

667:                                              ; preds = %666
  br label %34, !llvm.loop !11

668:                                              ; preds = %663
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %4, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %684

672:                                              ; preds = %662
  %673 = getelementptr inbounds %class.Reader, ptr %33, i32 0, i32 3
  %674 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %673, i64 noundef 0) #7
  %675 = invoke noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %674, i32 noundef 8)
          to label %676 unwind label %76

676:                                              ; preds = %672
  %677 = xor i1 %675, true
  br i1 %677, label %678, label %679

678:                                              ; preds = %676
  br label %681

679:                                              ; preds = %676
  call void @__assert_fail(ptr noundef @.str.35, ptr noundef @.str.36, i32 noundef 1131, ptr noundef @__PRETTY_FUNCTION__._ZN6Reader13processtokensEv) #8
  unreachable

680:                                              ; No predecessors!
  br label %681

681:                                              ; preds = %680, %678
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %682 unwind label %76

682:                                              ; preds = %681
  br label %683

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

684:                                              ; preds = %668, %654, %640, %621, %607, %588, %574, %560, %546, %532, %496, %385, %355, %338, %316, %232, %216, %156, %76
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #7
  br label %685

685:                                              ; preds = %684
  %686 = load ptr, ptr %4, align 8
  %687 = load i32, ptr %5, align 4
  %688 = insertvalue { ptr, i32 } poison, ptr %686, 0
  %689 = insertvalue { ptr, i32 } %688, i32 %687, 1
  resume { ptr, i32 } %689

690:                                              ; preds = %493, %237, %211, %151
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8lpassertb(i1 noundef zeroext) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) #4 align 2

declare i32 @fflush(ptr noundef) #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) #4

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

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

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

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

declare i32 @printf(ptr noundef, ...) #5

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #6

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn 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 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS16LpSectionKeyword", !7, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTS7SosType", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS18ProcessedTokenType", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"double", !7, i64 0}
!21 = !{!22, !20, i64 40}
!22 = !{!"_ZTS8RawToken", !23, i64 0, !24, i64 8, !20, i64 40}
!23 = !{!"_ZTS12RawTokenType", !7, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"_ZTS16LpComparisonType", !7, 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::__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] }

@_ZL14LP_KEYWORD_INFB5cxx11 = external hidden global [2 x %"class.std::__cxx11::basic_string"], align 16
@_ZL15LP_KEYWORD_FREEB5cxx11 = external hidden global [1 x %"class.std::__cxx11::basic_string"], align 16
@stdout = external local_unnamed_addr global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZL9kHighsInf = external hidden constant double, align 8
@.str.34 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN6Reader13processtokensEv = external hidden unnamed_addr constant [29 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Reader13processtokensEv(ptr noundef nonnull align 8 dereferenceable(928) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  %29 = getelementptr inbounds i8, ptr %0, i64 560
  %30 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %31 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %30, i32 noundef 8)
  br i1 %31, label %.loopexit59, label %.lr.ph

.lr.ph:                                           ; preds = %1
  %32 = getelementptr inbounds i8, ptr %0, i64 704
  br label %33

33:                                               ; preds = %.lr.ph, %.backedge
  %34 = load ptr, ptr @stdout, align 8, !tbaa !5
  %35 = call i32 @fflush(ptr noundef %34)
  %36 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %37 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %36, i32 noundef 14)
  br i1 %37, label %38, label %52

38:                                               ; preds = %33
  %39 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %40 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %39, i32 noundef 15)
  br i1 %40, label %.preheader, label %52

.preheader:                                       ; preds = %38, %47
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 2)
          to label %41 unwind label %.loopexit

41:                                               ; preds = %.preheader
  %42 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %43 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %42, i32 noundef 15)
  br i1 %43, label %44, label %47

44:                                               ; preds = %41
  %45 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %46 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %45, i32 noundef 14)
  br i1 %46, label %.invoke, label %47

47:                                               ; preds = %44, %41
  %48 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %49 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %48, i32 noundef 8)
  br i1 %49, label %.invoke, label %.preheader, !llvm.loop !9

.backedge:                                        ; preds = %.invoke, %95, %131, %146, %302
  %50 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %51 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %50, i32 noundef 8)
  br i1 %51, label %.loopexit59, label %33, !llvm.loop !11

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

.loopexit.split-lp.loopexit:                      ; preds = %.invoke, %315, %310, %228, %187, %173, %156, %59, %55
  %lpad.loopexit60 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

52:                                               ; preds = %38, %33
  %53 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %54 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %53, i32 noundef 1)
  br i1 %54, label %55, label %60

55:                                               ; preds = %52
  %56 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %57 = getelementptr inbounds i8, ptr %56, i64 8
  %58 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %59 unwind label %.loopexit.split-lp.loopexit

59:                                               ; preds = %55
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %60 unwind label %.loopexit.split-lp.loopexit

60:                                               ; preds = %59, %52
  %61 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %62 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %61, i32 noundef 1)
  br i1 %62, label %63, label %99

63:                                               ; preds = %60
  %64 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %65 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %64, i32 noundef 12)
  br i1 %65, label %66, label %99

66:                                               ; preds = %63
  %67 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 2) #7
  %68 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %67, i32 noundef 1)
  br i1 %68, label %69, label %99

69:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #7
  %70 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 2) #7
  %71 = getelementptr inbounds i8, ptr %70, i64 8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %72 unwind label %81

72:                                               ; preds = %69
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %73 unwind label %83

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.32)
          to label %74 unwind label %85

74:                                               ; preds = %73
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %75 unwind label %87

75:                                               ; preds = %74
  %76 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %77 unwind label %89

77:                                               ; preds = %75
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  store i32 %76, ptr %4, align 4, !tbaa !12
  %.not = icmp eq i32 %76, 0
  br i1 %.not, label %.thread, label %78

.thread:                                          ; preds = %77
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %99

78:                                               ; preds = %77
  %79 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %80 unwind label %93

80:                                               ; preds = %78
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 3)
          to label %95 unwind label %93, !llvm.loop !11

81:                                               ; preds = %69
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %98

83:                                               ; preds = %72
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %97

85:                                               ; preds = %73
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %92

87:                                               ; preds = %74
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %91

89:                                               ; preds = %75
  %90 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %91

91:                                               ; preds = %89, %87
  %.pn = phi { ptr, i32 } [ %90, %89 ], [ %88, %87 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %92

92:                                               ; preds = %91, %85
  %.pn.pn = phi { ptr, i32 } [ %.pn, %91 ], [ %86, %85 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %96

93:                                               ; preds = %80, %78
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %96

95:                                               ; preds = %80
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %.backedge

96:                                               ; preds = %93, %92
  %.pn25 = phi { ptr, i32 } [ %94, %93 ], [ %.pn.pn, %92 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  br label %97

97:                                               ; preds = %96, %83
  %.pn25.pn = phi { ptr, i32 } [ %.pn25, %96 ], [ %84, %83 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %98

98:                                               ; preds = %97, %81
  %.pn25.pn.pn = phi { ptr, i32 } [ %.pn25.pn, %97 ], [ %82, %81 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %.loopexit.split-lp

99:                                               ; preds = %.thread, %66, %63, %60
  %100 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %101 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %100, i32 noundef 1)
  br i1 %101, label %102, label %135

102:                                              ; preds = %99
  %103 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %104 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %103, i32 noundef 1)
  br i1 %104, label %105, label %135

105:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  %106 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %107 = getelementptr inbounds i8, ptr %106, i64 8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %108 unwind label %117

108:                                              ; preds = %105
  invoke void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %109 unwind label %119

109:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.33)
          to label %110 unwind label %121

110:                                              ; preds = %109
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %111 unwind label %123

111:                                              ; preds = %110
  %112 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %113 unwind label %125

113:                                              ; preds = %111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  store i32 %112, ptr %8, align 4, !tbaa !12
  %.not32 = icmp eq i32 %112, 0
  br i1 %.not32, label %.thread50, label %114

.thread50:                                        ; preds = %113
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %135

114:                                              ; preds = %113
  %115 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %116 unwind label %129

116:                                              ; preds = %114
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 2)
          to label %131 unwind label %129, !llvm.loop !11

117:                                              ; preds = %105
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %134

119:                                              ; preds = %108
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %133

121:                                              ; preds = %109
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %128

123:                                              ; preds = %110
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %111
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %127

127:                                              ; preds = %125, %123
  %.pn29 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %128

128:                                              ; preds = %127, %121
  %.pn29.pn = phi { ptr, i32 } [ %.pn29, %127 ], [ %122, %121 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %132

129:                                              ; preds = %116, %114
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %132

131:                                              ; preds = %116
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %.backedge

132:                                              ; preds = %129, %128
  %.pn33 = phi { ptr, i32 } [ %130, %129 ], [ %.pn29.pn, %128 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %133

133:                                              ; preds = %132, %119
  %.pn33.pn = phi { ptr, i32 } [ %.pn33, %132 ], [ %120, %119 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %134

134:                                              ; preds = %133, %117
  %.pn33.pn.pn = phi { ptr, i32 } [ %.pn33.pn, %133 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %.loopexit.split-lp

135:                                              ; preds = %.thread50, %102, %99
  %136 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %137 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %136, i32 noundef 1)
  br i1 %137, label %138, label %147

138:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  %139 = invoke noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %140 unwind label %144

140:                                              ; preds = %138
  store i32 %139, ptr %11, align 4, !tbaa !12
  %.not37 = icmp eq i32 %139, 0
  br i1 %.not37, label %.thread53, label %141

.thread53:                                        ; preds = %140
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %147

141:                                              ; preds = %140
  %142 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJR16LpSectionKeywordEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %143 unwind label %144

143:                                              ; preds = %141
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 1)
          to label %146 unwind label %144, !llvm.loop !11

144:                                              ; preds = %143, %141, %138
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %.loopexit.split-lp

146:                                              ; preds = %143
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %.backedge

147:                                              ; preds = %.thread53, %135
  %148 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %149 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %148, i32 noundef 1)
  br i1 %149, label %150, label %200

150:                                              ; preds = %147
  %151 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %152 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %151, i32 noundef 6)
  br i1 %152, label %153, label %200

153:                                              ; preds = %150
  %154 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 2) #7
  %155 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %154, i32 noundef 6)
  br i1 %155, label %156, label %200

156:                                              ; preds = %153
  %157 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %158 = getelementptr inbounds i8, ptr %157, i64 8
  %159 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  %160 = icmp eq i64 %159, 2
  invoke void @_Z8lpassertb(i1 noundef zeroext %160)
          to label %161 unwind label %.loopexit.split-lp.loopexit

161:                                              ; preds = %156
  %162 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %163 = getelementptr inbounds i8, ptr %162, i64 8
  %164 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %163, i64 noundef 0)
  %165 = load i8, ptr %164, align 1, !tbaa !14
  %166 = icmp eq i8 %165, 83
  br i1 %166, label %173, label %167

167:                                              ; preds = %161
  %168 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %169 = getelementptr inbounds i8, ptr %168, i64 8
  %170 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %169, i64 noundef 0)
  %171 = load i8, ptr %170, align 1, !tbaa !14
  %172 = icmp eq i8 %171, 115
  br label %173

173:                                              ; preds = %167, %161
  %174 = phi i1 [ true, %161 ], [ %172, %167 ]
  invoke void @_Z8lpassertb(i1 noundef zeroext %174)
          to label %175 unwind label %.loopexit.split-lp.loopexit

175:                                              ; preds = %173
  %176 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %177 = getelementptr inbounds i8, ptr %176, i64 8
  %178 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %177, i64 noundef 1)
  %179 = load i8, ptr %178, align 1, !tbaa !14
  %180 = icmp eq i8 %179, 49
  br i1 %180, label %187, label %181

181:                                              ; preds = %175
  %182 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %183 = getelementptr inbounds i8, ptr %182, i64 8
  %184 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %183, i64 noundef 1)
  %185 = load i8, ptr %184, align 1, !tbaa !14
  %186 = icmp eq i8 %185, 50
  br label %187

187:                                              ; preds = %181, %175
  %188 = phi i1 [ true, %175 ], [ %186, %181 ]
  invoke void @_Z8lpassertb(i1 noundef zeroext %188)
          to label %189 unwind label %.loopexit.split-lp.loopexit

189:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  %190 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %191 = getelementptr inbounds i8, ptr %190, i64 8
  %192 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %191, i64 noundef 1)
  %193 = load i8, ptr %192, align 1, !tbaa !14
  %194 = icmp ne i8 %193, 49
  %195 = zext i1 %194 to i32
  store i32 %195, ptr %12, align 4, !tbaa !15
  %196 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ7SosTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %197 unwind label %198

197:                                              ; preds = %189
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br label %.invoke

198:                                              ; preds = %189
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br label %.loopexit.split-lp

200:                                              ; preds = %153, %150, %147
  %201 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %202 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %201, i32 noundef 1)
  br i1 %202, label %203, label %213

203:                                              ; preds = %200
  %204 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %205 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %204, i32 noundef 6)
  br i1 %205, label %206, label %213

206:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  store i32 3, ptr %13, align 4, !tbaa !17
  %207 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %208 = getelementptr inbounds i8, ptr %207, i64 8
  %209 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 8 dereferenceable(32) %208)
          to label %210 unwind label %211

210:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %.invoke

211:                                              ; preds = %206
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %.loopexit.split-lp

213:                                              ; preds = %203, %200
  %214 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %215 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %214, i32 noundef 1)
  br i1 %215, label %216, label %223

216:                                              ; preds = %213
  %217 = call noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @_ZL15LP_KEYWORD_FREEB5cxx11, i32 noundef 1)
  br i1 %217, label %218, label %223

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  store i32 5, ptr %14, align 4, !tbaa !17
  %219 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %220 unwind label %221

220:                                              ; preds = %218
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br label %.invoke

221:                                              ; preds = %218
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br label %.loopexit.split-lp

223:                                              ; preds = %216, %213
  %224 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %225 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %224, i32 noundef 1)
  br i1 %225, label %226, label %230

226:                                              ; preds = %223
  %227 = call noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @_ZL14LP_KEYWORD_INFB5cxx11, i32 noundef 2)
  br i1 %227, label %228, label %230

228:                                              ; preds = %226
  %229 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRKdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
          to label %.invoke unwind label %.loopexit.split-lp.loopexit

230:                                              ; preds = %226, %223
  %231 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %232 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %231, i32 noundef 1)
  br i1 %232, label %233, label %240

233:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  store i32 2, ptr %15, align 4, !tbaa !17
  %234 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %235 = getelementptr inbounds i8, ptr %234, i64 8
  %236 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %237 unwind label %238

237:                                              ; preds = %233
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %.invoke

238:                                              ; preds = %233
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %.loopexit.split-lp

240:                                              ; preds = %230
  %241 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %242 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %241, i32 noundef 11)
  br i1 %242, label %246, label %243

243:                                              ; preds = %240
  %244 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %245 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %244, i32 noundef 12)
  br i1 %245, label %246, label %304

246:                                              ; preds = %243, %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %247 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %248 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %247, i32 noundef 11)
  %249 = select i1 %248, double 1.000000e+00, double -1.000000e+00
  store double %249, ptr %16, align 8, !tbaa !19
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 1)
          to label %250 unwind label %262

250:                                              ; preds = %246
  %251 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %252 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %251, i32 noundef 11)
  br i1 %252, label %256, label %253

253:                                              ; preds = %250
  %254 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %255 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %254, i32 noundef 12)
  br i1 %255, label %256, label %264

256:                                              ; preds = %253, %250
  %257 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %258 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %257, i32 noundef 11)
  %259 = load double, ptr %16, align 8, !tbaa !19
  %260 = fneg double %259
  %261 = select i1 %258, double %259, double %260
  store double %261, ptr %16, align 8, !tbaa !19
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 1)
          to label %264 unwind label %262

262:                                              ; preds = %.invoke96, %301, %294, %290, %256, %246
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %303

264:                                              ; preds = %256, %253
  %265 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %266 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %265, i32 noundef 2)
  br i1 %266, label %267, label %277

267:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %268 = load double, ptr %16, align 8, !tbaa !19
  %269 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %270 = getelementptr inbounds i8, ptr %269, i64 40
  %271 = load double, ptr %270, align 8, !tbaa !21
  %272 = fmul double %268, %271
  store double %272, ptr %17, align 8, !tbaa !19
  %273 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %274 unwind label %275

274:                                              ; preds = %267
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %.invoke96

275:                                              ; preds = %267
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %303

277:                                              ; preds = %264
  %278 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %279 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %278, i32 noundef 9)
  %280 = load double, ptr %16, align 8
  %281 = fcmp oeq double %280, 1.000000e+00
  %or.cond = select i1 %279, i1 %281, i1 false
  br i1 %or.cond, label %282, label %287

282:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  store i32 6, ptr %18, align 4, !tbaa !17
  %283 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %284 unwind label %285

284:                                              ; preds = %282
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %.invoke96

.invoke96:                                        ; preds = %274, %284
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef 1)
          to label %302 unwind label %262, !llvm.loop !11

285:                                              ; preds = %282
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %303

287:                                              ; preds = %277
  %288 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %289 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %288, i32 noundef 9)
  br i1 %289, label %290, label %291

290:                                              ; preds = %287
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %291 unwind label %262

291:                                              ; preds = %290, %287
  %292 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %293 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %292, i32 noundef 1)
  br i1 %293, label %294, label %296

294:                                              ; preds = %291
  %295 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %302 unwind label %262, !llvm.loop !11

296:                                              ; preds = %291
  %297 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %298 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %297, i32 noundef 4)
  br i1 %298, label %299, label %301

299:                                              ; preds = %296
  %300 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34)
  br label %301

301:                                              ; preds = %299, %296
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %.thread56 unwind label %262

.thread56:                                        ; preds = %301
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %304

302:                                              ; preds = %.invoke96, %294
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %.backedge

303:                                              ; preds = %285, %275, %262
  %.pn38 = phi { ptr, i32 } [ %263, %262 ], [ %276, %275 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %.loopexit.split-lp

304:                                              ; preds = %.thread56, %243
  %305 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %306 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %305, i32 noundef 2)
  br i1 %306, label %307, label %311

307:                                              ; preds = %304
  %308 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %309 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %308, i32 noundef 9)
  br i1 %309, label %310, label %311

310:                                              ; preds = %307
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %311 unwind label %.loopexit.split-lp.loopexit

311:                                              ; preds = %310, %307, %304
  %312 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %313 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %312, i32 noundef 2)
  %314 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  br i1 %313, label %315, label %318

315:                                              ; preds = %311
  %316 = getelementptr inbounds i8, ptr %314, i64 40
  %317 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJRdEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(8) %316)
          to label %.invoke unwind label %.loopexit.split-lp.loopexit

318:                                              ; preds = %311
  %319 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %314, i32 noundef 9)
  br i1 %319, label %320, label %325

320:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  store i32 6, ptr %19, align 4, !tbaa !17
  %321 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %322 unwind label %323

322:                                              ; preds = %320
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %.invoke

323:                                              ; preds = %320
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %.loopexit.split-lp

325:                                              ; preds = %318
  %326 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %327 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %326, i32 noundef 10)
  br i1 %327, label %328, label %333

328:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 7, ptr %20, align 4, !tbaa !17
  %329 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %330 unwind label %331

330:                                              ; preds = %328
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %.invoke

331:                                              ; preds = %328
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %.loopexit.split-lp

333:                                              ; preds = %325
  %334 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %335 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %334, i32 noundef 14)
  br i1 %335, label %336, label %341

336:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  store i32 10, ptr %21, align 4, !tbaa !17
  %337 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %338 unwind label %339

338:                                              ; preds = %336
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %.invoke

339:                                              ; preds = %336
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %.loopexit.split-lp

341:                                              ; preds = %333
  %342 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %343 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %342, i32 noundef 15)
  br i1 %343, label %344, label %349

344:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  store i32 11, ptr %22, align 4, !tbaa !17
  %345 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %346 unwind label %347

346:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br label %.invoke

347:                                              ; preds = %344
  %348 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br label %.loopexit.split-lp

349:                                              ; preds = %341
  %350 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %351 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %350, i32 noundef 13)
  br i1 %351, label %352, label %357

352:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  store i32 12, ptr %23, align 4, !tbaa !17
  %353 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %354 unwind label %355

354:                                              ; preds = %352
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  br label %.invoke

355:                                              ; preds = %352
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  br label %.loopexit.split-lp

357:                                              ; preds = %349
  %358 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %359 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %358, i32 noundef 3)
  br i1 %359, label %360, label %368

360:                                              ; preds = %357
  %361 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %362 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %361, i32 noundef 5)
  br i1 %362, label %363, label %368

363:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  store i32 0, ptr %24, align 4, !tbaa !27
  %364 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %365 unwind label %366

365:                                              ; preds = %363
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  br label %.invoke

366:                                              ; preds = %363
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  br label %.loopexit.split-lp

368:                                              ; preds = %360, %357
  %369 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %370 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %369, i32 noundef 3)
  br i1 %370, label %371, label %376

371:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  store i32 1, ptr %25, align 4, !tbaa !27
  %372 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %373 unwind label %374

373:                                              ; preds = %371
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br label %.invoke

374:                                              ; preds = %371
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br label %.loopexit.split-lp

376:                                              ; preds = %368
  %377 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %378 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %377, i32 noundef 4)
  br i1 %378, label %379, label %387

379:                                              ; preds = %376
  %380 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 1) #7
  %381 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %380, i32 noundef 5)
  br i1 %381, label %382, label %387

382:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  store i32 4, ptr %26, align 4, !tbaa !27
  %383 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %384 unwind label %385

384:                                              ; preds = %382
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %.invoke

385:                                              ; preds = %382
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %.loopexit.split-lp

387:                                              ; preds = %379, %376
  %388 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %389 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %388, i32 noundef 4)
  br i1 %389, label %390, label %395

390:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  store i32 3, ptr %27, align 4, !tbaa !27
  %391 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %392 unwind label %393

392:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br label %.invoke

393:                                              ; preds = %390
  %394 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br label %.loopexit.split-lp

395:                                              ; preds = %387
  %396 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %397 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %396, i32 noundef 5)
  br i1 %397, label %398, label %404

398:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  store i32 2, ptr %28, align 4, !tbaa !27
  %399 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ16LpComparisonTypeEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %400 unwind label %402

400:                                              ; preds = %398
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br label %.invoke

.invoke:                                          ; preds = %47, %44, %315, %228, %197, %210, %220, %237, %322, %330, %338, %346, %354, %365, %373, %384, %392, %400
  %401 = phi i64 [ 1, %400 ], [ 1, %392 ], [ 2, %384 ], [ 1, %373 ], [ 2, %365 ], [ 1, %354 ], [ 1, %346 ], [ 1, %338 ], [ 1, %330 ], [ 1, %322 ], [ 1, %237 ], [ 1, %220 ], [ 2, %210 ], [ 3, %197 ], [ 1, %228 ], [ 1, %315 ], [ 2, %44 ], [ 2, %47 ]
  invoke void @_ZN6Reader12nextrawtokenEm(ptr noundef nonnull align 8 dereferenceable(928) %0, i64 noundef %401)
          to label %.backedge unwind label %.loopexit.split-lp.loopexit

402:                                              ; preds = %398
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br label %.loopexit.split-lp

404:                                              ; preds = %395
  %405 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayI8RawTokenLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(144) %29, i64 noundef 0) #7
  %406 = call noundef zeroext i1 @_ZNK8RawToken6istypeE12RawTokenType(ptr noundef nonnull align 8 dereferenceable(48) %405, i32 noundef 8)
  br i1 %406, label %407, label %408

407:                                              ; preds = %404
  call void @__assert_fail(ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.36, i32 noundef 1131, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6Reader13processtokensEv) #8
  unreachable

408:                                              ; preds = %404
  invoke void @_Z8lpassertb(i1 noundef zeroext false)
          to label %.loopexit59 unwind label %.loopexit.split-lp.loopexit.split-lp

.loopexit59:                                      ; preds = %.backedge, %1, %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  ret void

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %402, %393, %385, %374, %366, %355, %347, %339, %331, %323, %303, %238, %221, %211, %198, %144, %134, %98
  %.pn40 = phi { ptr, i32 } [ %199, %198 ], [ %212, %211 ], [ %222, %221 ], [ %239, %238 ], [ %324, %323 ], [ %332, %331 ], [ %340, %339 ], [ %348, %347 ], [ %356, %355 ], [ %367, %366 ], [ %375, %374 ], [ %386, %385 ], [ %394, %393 ], [ %403, %402 ], [ %.pn38, %303 ], [ %145, %144 ], [ %.pn33.pn.pn, %134 ], [ %.pn25.pn.pn, %98 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit60, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp61, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  resume { ptr, i32 } %.pn40
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8lpassertb(i1 noundef zeroext) local_unnamed_addr #3

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL7tolowerRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL19parsesectionkeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI14ProcessedTokenSaIS0_EE12emplace_backIJ18ProcessedTokenTypeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9iskeywordRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_i(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #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 = { 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 #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn 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 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS16LpSectionKeyword", !7, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTS7SosType", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS18ProcessedTokenType", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"double", !7, i64 0}
!21 = !{!22, !20, i64 40}
!22 = !{!"_ZTS8RawToken", !23, i64 0, !24, i64 8, !20, i64 40}
!23 = !{!"_ZTS12RawTokenType", !7, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"_ZTS16LpComparisonType", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass