; LLVM IR from AdaptiveCpp/AdaptiveCpp :: tests/pcuda/pcuda_test_suite.ll (ZN5boost10test_tools18output_test_stream13match_patternEb)

; 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.boost::test_tools::assertion_result" = type { %"class.boost::test_tools::assertion_result::readonly_property65", %"class.boost::shared_ptr.225" }
%"class.boost::test_tools::assertion_result::readonly_property65" = type { %"class.boost::unit_test::readonly_property.213" }
%"class.boost::unit_test::readonly_property.213" = type { %"class.boost::unit_test::class_property.98" }
%"class.boost::unit_test::class_property.98" = type { i8 }
%"class.boost::shared_ptr.225" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"class.std::vector.230" = type { %"struct.std::_Vector_base.231" }
%"struct.std::_Vector_base.231" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.232" = type { ptr }
%"class.std::allocator" = type { i8 }
%"class.boost::test_tools::output_test_stream" = type { %"class.std::__cxx11::basic_ostringstream.base", ptr, %"class.std::basic_ios" }
%"class.std::__cxx11::basic_ostringstream.base" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"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.boost::test_tools::output_test_stream::Impl" = type { %"class.std::basic_fstream", i8, i8, %"class.std::__cxx11::basic_string" }
%"class.std::basic_fstream" = type { %"class.std::basic_iostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"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 }
%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.68 }
%union.anon.68 = type { i32 }

@.str.194 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [51 x i8], align 1

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools16assertion_resultC2Eb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5boost10test_tools18output_test_stream13match_patternEb(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8 %0, ptr noundef nonnull align 8 dereferenceable(120) %1, i1 noundef zeroext %2) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca i64, align 8
  %8 = alloca i1, align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::vector.230", align 8
  %14 = alloca i64, align 8
  %15 = alloca i32, align 4
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i64, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.232", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.232", align 8
  %26 = alloca i8, align 1
  %27 = alloca i64, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca i8, align 1
  %41 = alloca i64, align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::vector.230", align 8
  %46 = alloca i64, align 8
  %47 = alloca i8, align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i8, align 1
  %63 = alloca i8, align 1
  %64 = alloca i64, align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca i32, align 4
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  %75 = zext i1 %2 to i8
  store i8 %75, ptr %6, align 1, !tbaa !9
  %76 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  store i64 10, ptr %7, align 8, !tbaa !11
  %77 = load ptr, ptr %76, align 8, !tbaa !13
  %78 = getelementptr inbounds ptr, ptr %77, i64 7
  %79 = load ptr, ptr %78, align 8
  call void %79(ptr noundef nonnull align 8 dereferenceable(120) %76)
  store i1 false, ptr %8, align 1
  call void @_ZN5boost10test_tools16assertion_resultC2Eb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #7
  %80 = load ptr, ptr %76, align 8, !tbaa !13
  %81 = getelementptr inbounds ptr, ptr %80, i64 6
  %82 = load ptr, ptr %81, align 8
  invoke void %82(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(120) %76)
          to label %83 unwind label %95

83:                                               ; preds = %3
  %84 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %85 = load ptr, ptr %84, align 8, !tbaa !15
  %86 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %85, i32 0, i32 0
  %87 = invoke noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264) %86)
          to label %88 unwind label %99

88:                                               ; preds = %83
  br i1 %87, label %103, label %89

89:                                               ; preds = %88
  invoke void @_ZN5boost10test_tools16assertion_resultaSEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext false)
          to label %90 unwind label %99

90:                                               ; preds = %89
  %91 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %92 unwind label %99

92:                                               ; preds = %90
  %93 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA30_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %91, ptr noundef nonnull align 1 dereferenceable(30) @.str.245)
          to label %94 unwind label %99

94:                                               ; preds = %92
  br label %806

95:                                               ; preds = %3
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %10, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %11, align 4
  br label %814

99:                                               ; preds = %809, %798, %790, %92, %90, %89, %83
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %10, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %11, align 4
  br label %813

103:                                              ; preds = %88
  %104 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %105 = load ptr, ptr %104, align 8, !tbaa !15
  %106 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %105, i32 0, i32 1
  %107 = load i8, ptr %106, align 8, !tbaa !25, !range !34, !noundef !35
  %108 = trunc i8 %107 to i1
  br i1 %108, label %109, label %790

109:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 0, ptr %12, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %110

110:                                              ; preds = %783, %109
  %111 = load i64, ptr %14, align 8, !tbaa !11
  %112 = load i32, ptr %12, align 4, !tbaa !36
  %113 = sext i32 %112 to i64
  %114 = add i64 %111, %113
  %115 = trunc i64 %114 to i32
  %116 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  %117 = trunc i64 %116 to i32
  %118 = icmp slt i32 %115, %117
  br i1 %118, label %120, label %119

119:                                              ; preds = %110
  store i32 2, ptr %15, align 4
  br label %788

120:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  %121 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %122 = load ptr, ptr %121, align 8, !tbaa !15
  %123 = invoke noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568) %122)
          to label %124 unwind label %129

124:                                              ; preds = %120
  store i8 %123, ptr %16, align 1, !tbaa !37
  %125 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %126 = icmp ule i64 %125, 10
  br i1 %126, label %127, label %133

127:                                              ; preds = %124
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %128 unwind label %129

128:                                              ; preds = %127
  br label %139

129:                                              ; preds = %127, %120
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %10, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %11, align 4
  br label %787

133:                                              ; preds = %124
  %134 = load i8, ptr %16, align 1, !tbaa !37
  %135 = load i64, ptr %14, align 8, !tbaa !11
  %136 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %137 = urem i64 %135, %136
  %138 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %137) #7
  store i8 %134, ptr %138, align 1, !tbaa !37
  br label %139

139:                                              ; preds = %133, %128
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  %140 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %141 = load ptr, ptr %140, align 8, !tbaa !15
  %142 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %141, i32 0, i32 0
  %143 = load ptr, ptr %142, align 8, !tbaa !13
  %144 = getelementptr i8, ptr %143, i64 -24
  %145 = load i64, ptr %144, align 8
  %146 = getelementptr inbounds i8, ptr %142, i64 %145
  %147 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %146)
          to label %148 unwind label %286

148:                                              ; preds = %139
  br i1 %147, label %170, label %149

149:                                              ; preds = %148
  %150 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %151 = load ptr, ptr %150, align 8, !tbaa !15
  %152 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %151, i32 0, i32 0
  %153 = load ptr, ptr %152, align 8, !tbaa !13
  %154 = getelementptr i8, ptr %153, i64 -24
  %155 = load i64, ptr %154, align 8
  %156 = getelementptr inbounds i8, ptr %152, i64 %155
  %157 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %156)
          to label %158 unwind label %286

158:                                              ; preds = %149
  br i1 %157, label %170, label %159

159:                                              ; preds = %158
  %160 = load i64, ptr %14, align 8, !tbaa !11
  %161 = load i32, ptr %12, align 4, !tbaa !36
  %162 = sext i32 %161 to i64
  %163 = add i64 %160, %162
  %164 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %163) #7
  %165 = load i8, ptr %164, align 1, !tbaa !37
  %166 = sext i8 %165 to i32
  %167 = load i8, ptr %16, align 1, !tbaa !37
  %168 = sext i8 %167 to i32
  %169 = icmp eq i32 %166, %168
  br label %170

170:                                              ; preds = %159, %158, %148
  %171 = phi i1 [ false, %158 ], [ false, %148 ], [ %169, %159 ]
  %172 = zext i1 %171 to i8
  store i8 %172, ptr %17, align 1, !tbaa !9
  %173 = load i8, ptr %17, align 1, !tbaa !9, !range !34, !noundef !35
  %174 = trunc i8 %173 to i1
  br i1 %174, label %779, label %175

175:                                              ; preds = %170
  invoke void @_ZN5boost10test_tools16assertion_resultaSEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext false)
          to label %176 unwind label %286

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %177 = load i64, ptr %14, align 8, !tbaa !11
  %178 = load i32, ptr %12, align 4, !tbaa !36
  %179 = sext i32 %178 to i64
  %180 = add i64 %177, %179
  store i64 %180, ptr %19, align 8, !tbaa !11
  %181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %182 unwind label %290

182:                                              ; preds = %176
  %183 = load i64, ptr %181, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  store i64 %183, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %184 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  %185 = load i64, ptr %14, align 8, !tbaa !11
  %186 = sub i64 %184, %185
  %187 = load i32, ptr %12, align 4, !tbaa !36
  %188 = sext i32 %187 to i64
  %189 = sub i64 %186, %188
  store i64 %189, ptr %21, align 8, !tbaa !11
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %191 unwind label %294

191:                                              ; preds = %182
  %192 = load i64, ptr %190, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  store i64 %192, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  %193 = load i64, ptr %14, align 8, !tbaa !11
  %194 = load i32, ptr %12, align 4, !tbaa !36
  %195 = sext i32 %194 to i64
  %196 = add i64 %193, %195
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef 0, i64 noundef %196)
          to label %197 unwind label %298

197:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %198 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  %199 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.232", ptr %24, i32 0, i32 0
  store ptr %198, ptr %199, align 8
  %200 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  %201 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.232", ptr %25, i32 0, i32 0
  store ptr %200, ptr %201, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  store i8 10, ptr %26, align 1, !tbaa !37
  %202 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.232", ptr %24, i32 0, i32 0
  %203 = load ptr, ptr %202, align 8
  %204 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.232", ptr %25, i32 0, i32 0
  %205 = load ptr, ptr %204, align 8
  %206 = invoke noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcENSt15iterator_traitsIT_E15difference_typeESB_SB_RKT0_(ptr %203, ptr %205, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %207 unwind label %302

207:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  store i64 %206, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %208 = load i64, ptr %14, align 8, !tbaa !11
  %209 = load i32, ptr %12, align 4, !tbaa !36
  %210 = sext i32 %209 to i64
  %211 = add i64 %208, %210
  %212 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %22, i8 noundef signext 10, i64 noundef -1) #7
  %213 = sub i64 %211, %212
  store i64 %213, ptr %27, align 8, !tbaa !11
  %214 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %215 unwind label %306

215:                                              ; preds = %207
  %216 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA22_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %214, ptr noundef nonnull align 1 dereferenceable(22) @.str.246)
          to label %217 unwind label %306

217:                                              ; preds = %215
  %218 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %216, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %219 unwind label %306

219:                                              ; preds = %217
  %220 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA8_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %218, ptr noundef nonnull align 1 dereferenceable(8) @.str.247)
          to label %221 unwind label %306

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %220, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %223 unwind label %306

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %222, ptr noundef nonnull align 1 dereferenceable(10) @.str.248)
          to label %225 unwind label %306

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %224, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %227 unwind label %306

227:                                              ; preds = %225
  %228 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %226, ptr noundef nonnull align 1 dereferenceable(5) @.str.249)
          to label %229 unwind label %306

229:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  %230 = load i64, ptr %14, align 8, !tbaa !11
  %231 = load i32, ptr %12, align 4, !tbaa !36
  %232 = sext i32 %231 to i64
  %233 = add i64 %230, %232
  %234 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %233) #7
  %235 = load i8, ptr %234, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 1, i8 noundef signext %235, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %236 unwind label %310

236:                                              ; preds = %229
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef %29)
          to label %237 unwind label %314

237:                                              ; preds = %236
  %238 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %228, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %239 unwind label %318

239:                                              ; preds = %237
  %240 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA7_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %238, ptr noundef nonnull align 1 dereferenceable(7) @.str.250)
          to label %241 unwind label %318

241:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  %242 = load i8, ptr %16, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, i64 noundef 1, i8 noundef signext %242, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %243 unwind label %322

243:                                              ; preds = %241
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef %32)
          to label %244 unwind label %326

244:                                              ; preds = %243
  %245 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %240, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %246 unwind label %330

246:                                              ; preds = %244
  %247 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %245, ptr noundef nonnull align 1 dereferenceable(5) @.str.251)
          to label %248 unwind label %330

248:                                              ; preds = %246
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  %249 = load i64, ptr %14, align 8, !tbaa !11
  %250 = load i32, ptr %12, align 4, !tbaa !36
  %251 = sext i32 %250 to i64
  %252 = add i64 %249, %251
  %253 = load i64, ptr %18, align 8, !tbaa !11
  %254 = sub i64 %252, %253
  %255 = load i64, ptr %18, align 8, !tbaa !11
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %254, i64 noundef %255)
          to label %256 unwind label %339

256:                                              ; preds = %248
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef %35)
          to label %257 unwind label %343

257:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  %258 = load i64, ptr %14, align 8, !tbaa !11
  %259 = load i32, ptr %12, align 4, !tbaa !36
  %260 = sext i32 %259 to i64
  %261 = add i64 %258, %260
  %262 = load i64, ptr %20, align 8, !tbaa !11
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %261, i64 noundef %262)
          to label %263 unwind label %347

263:                                              ; preds = %257
  %264 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %265 unwind label %351

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %264, ptr noundef nonnull align 1 dereferenceable(5) @.str.252)
          to label %267 unwind label %351

267:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %268 unwind label %355

268:                                              ; preds = %267
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef %39)
          to label %269 unwind label %359

269:                                              ; preds = %268
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %270 unwind label %363

270:                                              ; preds = %269
  %271 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %266, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %272 unwind label %367

272:                                              ; preds = %270
  %273 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %271, ptr noundef nonnull align 1 dereferenceable(5) @.str.253)
          to label %274 unwind label %367

274:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #7
  store i8 10, ptr %40, align 1, !tbaa !37
  %275 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %273, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %276 unwind label %371

276:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  %277 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %278 unwind label %351

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %277, ptr noundef nonnull align 1 dereferenceable(5) @.str.252)
          to label %280 unwind label %351

280:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  store i64 0, ptr %41, align 8, !tbaa !11
  br label %281

281:                                              ; preds = %394, %280
  %282 = load i64, ptr %41, align 8, !tbaa !11
  %283 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %284 = icmp ult i64 %282, %283
  br i1 %284, label %379, label %285

285:                                              ; preds = %281
  store i32 5, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %416

286:                                              ; preds = %175, %149, %139
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %10, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %11, align 4
  br label %786

290:                                              ; preds = %176
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %10, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %778

294:                                              ; preds = %182
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %10, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %777

298:                                              ; preds = %191
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %10, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %11, align 4
  br label %776

302:                                              ; preds = %197
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %10, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  br label %775

306:                                              ; preds = %227, %225, %223, %221, %219, %217, %215, %207
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %10, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %11, align 4
  br label %774

310:                                              ; preds = %229
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %10, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %11, align 4
  br label %338

314:                                              ; preds = %236
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %10, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %11, align 4
  br label %337

318:                                              ; preds = %239, %237
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %10, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %11, align 4
  br label %336

322:                                              ; preds = %241
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %10, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %11, align 4
  br label %335

326:                                              ; preds = %243
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %10, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %11, align 4
  br label %334

330:                                              ; preds = %246, %244
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %10, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %334

334:                                              ; preds = %330, %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %335

335:                                              ; preds = %334, %322
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %336

336:                                              ; preds = %335, %318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %337

337:                                              ; preds = %336, %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %338

338:                                              ; preds = %337, %310
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %774

339:                                              ; preds = %248
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %10, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %11, align 4
  br label %773

343:                                              ; preds = %256
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %10, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %773

347:                                              ; preds = %257
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %10, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %11, align 4
  br label %772

351:                                              ; preds = %278, %276, %265, %263
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %10, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %11, align 4
  br label %771

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

359:                                              ; preds = %268
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %10, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %11, align 4
  br label %377

363:                                              ; preds = %269
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %10, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %11, align 4
  br label %376

367:                                              ; preds = %272, %270
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %10, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %11, align 4
  br label %375

371:                                              ; preds = %274
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %10, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  br label %375

375:                                              ; preds = %371, %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %376

376:                                              ; preds = %375, %363
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %377

377:                                              ; preds = %376, %359
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %378

378:                                              ; preds = %377, %355
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %771

379:                                              ; preds = %281
  %380 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %381 unwind label %397

381:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  %382 = load i64, ptr %14, align 8, !tbaa !11
  %383 = load i64, ptr %41, align 8, !tbaa !11
  %384 = add i64 %382, %383
  %385 = add i64 %384, 1
  %386 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %387 = urem i64 %385, %386
  %388 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %387) #7
  %389 = load i8, ptr %388, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, i64 noundef 1, i8 noundef signext %389, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %390 unwind label %401

390:                                              ; preds = %381
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef %43)
          to label %391 unwind label %405

391:                                              ; preds = %390
  %392 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %380, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %393 unwind label %409

393:                                              ; preds = %391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  br label %394

394:                                              ; preds = %393
  %395 = load i64, ptr %41, align 8, !tbaa !11
  %396 = add i64 %395, 1
  store i64 %396, ptr %41, align 8, !tbaa !11
  br label %281, !llvm.loop !38

397:                                              ; preds = %379
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %10, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %11, align 4
  br label %415

401:                                              ; preds = %381
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %10, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %11, align 4
  br label %414

405:                                              ; preds = %390
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %10, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %11, align 4
  br label %413

409:                                              ; preds = %391
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %10, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %413

413:                                              ; preds = %409, %405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %414

414:                                              ; preds = %413, %401
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  br label %415

415:                                              ; preds = %414, %397
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %771

416:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %417 unwind label %424

417:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store i64 0, ptr %46, align 8, !tbaa !11
  br label %418

418:                                              ; preds = %469, %417
  %419 = load i64, ptr %46, align 8, !tbaa !11
  %420 = load i64, ptr %20, align 8, !tbaa !11
  %421 = sub i64 %420, 1
  %422 = icmp ult i64 %419, %421
  br i1 %422, label %428, label %423

423:                                              ; preds = %418
  store i32 8, ptr %15, align 4
  br label %487

424:                                              ; preds = %416
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %10, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %11, align 4
  br label %770

428:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  %429 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %430 = load ptr, ptr %429, align 8, !tbaa !15
  %431 = invoke noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568) %430)
          to label %432 unwind label %453

432:                                              ; preds = %428
  store i8 %431, ptr %47, align 1, !tbaa !37
  %433 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %434 = load ptr, ptr %433, align 8, !tbaa !15
  %435 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %434, i32 0, i32 0
  %436 = load ptr, ptr %435, align 8, !tbaa !13
  %437 = getelementptr i8, ptr %436, i64 -24
  %438 = load i64, ptr %437, align 8
  %439 = getelementptr inbounds i8, ptr %435, i64 %438
  %440 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %439)
          to label %441 unwind label %453

441:                                              ; preds = %432
  br i1 %440, label %452, label %442

442:                                              ; preds = %441
  %443 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %444 = load ptr, ptr %443, align 8, !tbaa !15
  %445 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %444, i32 0, i32 0
  %446 = load ptr, ptr %445, align 8, !tbaa !13
  %447 = getelementptr i8, ptr %446, i64 -24
  %448 = load i64, ptr %447, align 8
  %449 = getelementptr inbounds i8, ptr %445, i64 %448
  %450 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %449)
          to label %451 unwind label %453

451:                                              ; preds = %442
  br i1 %450, label %452, label %457

452:                                              ; preds = %451, %441
  store i32 8, ptr %15, align 4
  br label %466

453:                                              ; preds = %464, %457, %442, %432, %428
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %10, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %11, align 4
  br label %486

457:                                              ; preds = %451
  %458 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %459 unwind label %453

459:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #7
  %460 = load i8, ptr %47, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 1, i8 noundef signext %460, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %461 unwind label %472

461:                                              ; preds = %459
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef %49)
          to label %462 unwind label %476

462:                                              ; preds = %461
  %463 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %458, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %464 unwind label %480

464:                                              ; preds = %462
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %465 unwind label %453

465:                                              ; preds = %464
  store i32 0, ptr %15, align 4
  br label %466

466:                                              ; preds = %465, %452
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  %467 = load i32, ptr %15, align 4
  switch i32 %467, label %487 [
    i32 0, label %468
  ]

468:                                              ; preds = %466
  br label %469

469:                                              ; preds = %468
  %470 = load i64, ptr %46, align 8, !tbaa !11
  %471 = add i64 %470, 1
  store i64 %471, ptr %46, align 8, !tbaa !11
  br label %418, !llvm.loop !40

472:                                              ; preds = %459
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %10, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %11, align 4
  br label %485

476:                                              ; preds = %461
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %10, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %11, align 4
  br label %484

480:                                              ; preds = %462
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %10, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %484

484:                                              ; preds = %480, %476
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %485

485:                                              ; preds = %484, %472
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  br label %486

486:                                              ; preds = %485, %453
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %770

487:                                              ; preds = %466, %423
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %488

488:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  store i64 0, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  store i64 0, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  store i64 0, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %489 = load i64, ptr %52, align 8, !tbaa !11
  store i64 %489, ptr %54, align 8, !tbaa !11
  br label %490

490:                                              ; preds = %572, %488
  %491 = load i64, ptr %54, align 8, !tbaa !11
  %492 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  %493 = icmp ult i64 %491, %492
  br i1 %493, label %495, label %494

494:                                              ; preds = %490
  store i32 11, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %575

495:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %496 = load i64, ptr %53, align 8, !tbaa !11
  store i64 %496, ptr %55, align 8, !tbaa !11
  br label %497

497:                                              ; preds = %566, %495
  %498 = load i64, ptr %55, align 8, !tbaa !11
  %499 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  %500 = icmp ult i64 %498, %499
  br i1 %500, label %502, label %501

501:                                              ; preds = %497
  store i32 14, ptr %15, align 4
  br label %570

502:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %503 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  %504 = load i64, ptr %54, align 8, !tbaa !11
  %505 = sub i64 %503, %504
  store i64 %505, ptr %57, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %506 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  %507 = load i64, ptr %55, align 8, !tbaa !11
  %508 = sub i64 %506, %507
  store i64 %508, ptr %58, align 8, !tbaa !11
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %510 unwind label %516

510:                                              ; preds = %502
  %511 = load i64, ptr %509, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  store i64 %511, ptr %56, align 8, !tbaa !11
  %512 = load i64, ptr %51, align 8, !tbaa !11
  %513 = load i64, ptr %56, align 8, !tbaa !11
  %514 = icmp ugt i64 %512, %513
  br i1 %514, label %515, label %520

515:                                              ; preds = %510
  store i32 14, ptr %15, align 4
  br label %563

516:                                              ; preds = %502
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %10, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  br label %569

520:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  store i64 0, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  store i64 0, ptr %60, align 8, !tbaa !11
  br label %521

521:                                              ; preds = %550, %520
  %522 = load i64, ptr %60, align 8, !tbaa !11
  %523 = load i64, ptr %56, align 8, !tbaa !11
  %524 = icmp ult i64 %522, %523
  br i1 %524, label %526, label %525

525:                                              ; preds = %521
  store i32 17, ptr %15, align 4
  br label %553

526:                                              ; preds = %521
  %527 = load i64, ptr %54, align 8, !tbaa !11
  %528 = load i64, ptr %60, align 8, !tbaa !11
  %529 = add i64 %527, %528
  %530 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %529) #7
  %531 = load i8, ptr %530, align 1, !tbaa !37
  %532 = sext i8 %531 to i32
  %533 = load i64, ptr %55, align 8, !tbaa !11
  %534 = load i64, ptr %60, align 8, !tbaa !11
  %535 = add i64 %533, %534
  %536 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %36, i64 noundef %535)
          to label %537 unwind label %544

537:                                              ; preds = %526
  %538 = load i8, ptr %536, align 1, !tbaa !37
  %539 = sext i8 %538 to i32
  %540 = icmp eq i32 %532, %539
  br i1 %540, label %541, label %548

541:                                              ; preds = %537
  %542 = load i64, ptr %59, align 8, !tbaa !11
  %543 = add i64 %542, 1
  store i64 %543, ptr %59, align 8, !tbaa !11
  br label %549

544:                                              ; preds = %526
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %10, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  br label %569

548:                                              ; preds = %537
  store i32 17, ptr %15, align 4
  br label %553

549:                                              ; preds = %541
  br label %550

550:                                              ; preds = %549
  %551 = load i64, ptr %60, align 8, !tbaa !11
  %552 = add i64 %551, 1
  store i64 %552, ptr %60, align 8, !tbaa !11
  br label %521, !llvm.loop !41

553:                                              ; preds = %548, %525
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %554

554:                                              ; preds = %553
  %555 = load i64, ptr %59, align 8, !tbaa !11
  %556 = load i64, ptr %51, align 8, !tbaa !11
  %557 = icmp ugt i64 %555, %556
  br i1 %557, label %558, label %562

558:                                              ; preds = %554
  %559 = load i64, ptr %59, align 8, !tbaa !11
  store i64 %559, ptr %51, align 8, !tbaa !11
  %560 = load i64, ptr %54, align 8, !tbaa !11
  store i64 %560, ptr %52, align 8, !tbaa !11
  %561 = load i64, ptr %55, align 8, !tbaa !11
  store i64 %561, ptr %53, align 8, !tbaa !11
  br label %562

562:                                              ; preds = %558, %554
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  store i32 0, ptr %15, align 4
  br label %563

563:                                              ; preds = %562, %515
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  %564 = load i32, ptr %15, align 4
  switch i32 %564, label %570 [
    i32 0, label %565
  ]

565:                                              ; preds = %563
  br label %566

566:                                              ; preds = %565
  %567 = load i64, ptr %55, align 8, !tbaa !11
  %568 = add i64 %567, 1
  store i64 %568, ptr %55, align 8, !tbaa !11
  br label %497, !llvm.loop !42

569:                                              ; preds = %544, %516
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %769

570:                                              ; preds = %563, %501
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  %573 = load i64, ptr %54, align 8, !tbaa !11
  %574 = add i64 %573, 1
  store i64 %574, ptr %54, align 8, !tbaa !11
  br label %490, !llvm.loop !43

575:                                              ; preds = %494
  %576 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %577 unwind label %585

577:                                              ; preds = %575
  %578 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %576, ptr noundef nonnull align 1 dereferenceable(10) @.str.254)
          to label %579 unwind label %585

579:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  store i64 0, ptr %61, align 8, !tbaa !11
  br label %580

580:                                              ; preds = %594, %579
  %581 = load i64, ptr %61, align 8, !tbaa !11
  %582 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  %583 = icmp ult i64 %581, %582
  br i1 %583, label %589, label %584

584:                                              ; preds = %580
  store i32 20, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %606

585:                                              ; preds = %721, %719, %717, %714, %712, %702, %606, %577, %575
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %10, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %11, align 4
  br label %769

589:                                              ; preds = %580
  %590 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %591 unwind label %597

591:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #7
  store i8 32, ptr %62, align 1, !tbaa !37
  %592 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %590, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %593 unwind label %601

593:                                              ; preds = %591
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  br label %594

594:                                              ; preds = %593
  %595 = load i64, ptr %61, align 8, !tbaa !11
  %596 = add i64 %595, 1
  store i64 %596, ptr %61, align 8, !tbaa !11
  br label %580, !llvm.loop !44

597:                                              ; preds = %589
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %10, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %11, align 4
  br label %605

601:                                              ; preds = %591
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %10, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  br label %605

605:                                              ; preds = %601, %597
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %769

606:                                              ; preds = %584
  %607 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %608 unwind label %585

608:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  store i8 126, ptr %63, align 1, !tbaa !37
  %609 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %607, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %610 unwind label %618

610:                                              ; preds = %608
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  store i64 1, ptr %64, align 8, !tbaa !11
  br label %611

611:                                              ; preds = %696, %610
  %612 = load i64, ptr %64, align 8, !tbaa !11
  %613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %614 unwind label %622

614:                                              ; preds = %611
  %615 = load i64, ptr %613, align 8, !tbaa !11
  %616 = icmp ult i64 %612, %615
  br i1 %616, label %626, label %617

617:                                              ; preds = %614
  store i32 23, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %702

618:                                              ; preds = %608
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %10, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  br label %769

622:                                              ; preds = %611
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %10, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %11, align 4
  br label %701

626:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  %627 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %628 unwind label %652

628:                                              ; preds = %626
  %629 = load i64, ptr %627, align 8, !tbaa !11
  %630 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %629) #7
  %631 = load i8, ptr %630, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, i64 noundef 1, i8 noundef signext %631, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %632 unwind label %656

632:                                              ; preds = %628
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef %66)
          to label %633 unwind label %660

633:                                              ; preds = %632
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  %634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %635 unwind label %665

635:                                              ; preds = %633
  %636 = load i64, ptr %634, align 8, !tbaa !11
  %637 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %36, i64 noundef %636)
          to label %638 unwind label %665

638:                                              ; preds = %635
  %639 = load i8, ptr %637, align 1, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 1, i8 noundef signext %639, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %640 unwind label %669

640:                                              ; preds = %638
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef %69)
          to label %641 unwind label %673

641:                                              ; preds = %640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %642 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  store i64 %642, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %643 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  store i64 %643, ptr %73, align 8, !tbaa !11
  %644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %645 unwind label %678

645:                                              ; preds = %641
  %646 = load i64, ptr %644, align 8, !tbaa !11
  %647 = trunc i64 %646 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  store i32 %647, ptr %71, align 4, !tbaa !36
  br label %648

648:                                              ; preds = %687, %645
  %649 = load i32, ptr %71, align 4, !tbaa !36
  %650 = icmp sgt i32 %649, 0
  br i1 %650, label %682, label %651

651:                                              ; preds = %648
  store i32 26, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  br label %695

652:                                              ; preds = %626
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %10, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %11, align 4
  br label %700

656:                                              ; preds = %628
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %10, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %11, align 4
  br label %664

660:                                              ; preds = %632
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %10, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %664

664:                                              ; preds = %660, %656
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %700

665:                                              ; preds = %635, %633
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %10, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %11, align 4
  br label %699

669:                                              ; preds = %638
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %10, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %11, align 4
  br label %677

673:                                              ; preds = %640
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %10, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %677

677:                                              ; preds = %673, %669
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  br label %699

678:                                              ; preds = %641
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %10, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %694

682:                                              ; preds = %648
  %683 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %684 unwind label %690

684:                                              ; preds = %682
  %685 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %683, ptr noundef nonnull align 1 dereferenceable(2) @.str.255)
          to label %686 unwind label %690

686:                                              ; preds = %684
  br label %687

687:                                              ; preds = %686
  %688 = load i32, ptr %71, align 4, !tbaa !36
  %689 = add nsw i32 %688, -1
  store i32 %689, ptr %71, align 4, !tbaa !36
  br label %648, !llvm.loop !45

690:                                              ; preds = %684, %682
  %691 = landingpad { ptr, i32 }
          cleanup
  %692 = extractvalue { ptr, i32 } %691, 0
  store ptr %692, ptr %10, align 8
  %693 = extractvalue { ptr, i32 } %691, 1
  store i32 %693, ptr %11, align 4
  br label %694

694:                                              ; preds = %690, %678
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %699

695:                                              ; preds = %651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %696

696:                                              ; preds = %695
  %697 = load i64, ptr %64, align 8, !tbaa !11
  %698 = add i64 %697, 1
  store i64 %698, ptr %64, align 8, !tbaa !11
  br label %611, !llvm.loop !46

699:                                              ; preds = %694, %677, %665
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %700

700:                                              ; preds = %699, %664, %652
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %701

701:                                              ; preds = %700, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %769

702:                                              ; preds = %617
  %703 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %704 = load ptr, ptr %703, align 8, !tbaa !15
  %705 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %704, i32 0, i32 0
  %706 = load ptr, ptr %705, align 8, !tbaa !13
  %707 = getelementptr i8, ptr %706, i64 -24
  %708 = load i64, ptr %707, align 8
  %709 = getelementptr inbounds i8, ptr %705, i64 %708
  %710 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %709)
          to label %711 unwind label %585

711:                                              ; preds = %702
  br i1 %710, label %712, label %717

712:                                              ; preds = %711
  %713 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %714 unwind label %585

714:                                              ; preds = %712
  %715 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA51_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %713, ptr noundef nonnull align 1 dereferenceable(51) @.str.256)
          to label %716 unwind label %585

716:                                              ; preds = %714
  br label %717

717:                                              ; preds = %716, %711
  %718 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %719 unwind label %585

719:                                              ; preds = %717
  %720 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %718, ptr noundef nonnull align 1 dereferenceable(2) @.str.194)
          to label %721 unwind label %585

721:                                              ; preds = %719
  %722 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %723 = load ptr, ptr %722, align 8, !tbaa !15
  %724 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %723, i32 0, i32 0
  %725 = load ptr, ptr %724, align 8, !tbaa !13
  %726 = getelementptr i8, ptr %725, i64 -24
  %727 = load i64, ptr %726, align 8
  %728 = getelementptr inbounds i8, ptr %724, i64 %727
  %729 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %728)
          to label %730 unwind label %585

730:                                              ; preds = %721
  br i1 %729, label %731, label %732

731:                                              ; preds = %730
  store i32 2, ptr %15, align 4
  br label %766

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  store i64 0, ptr %74, align 8, !tbaa !11
  br label %733

733:                                              ; preds = %751, %732
  %734 = load i64, ptr %74, align 8, !tbaa !11
  %735 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  %736 = sub i64 %735, 1
  %737 = icmp ult i64 %734, %736
  br i1 %737, label %739, label %738

738:                                              ; preds = %733
  store i32 29, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  br label %754

739:                                              ; preds = %733
  %740 = load i64, ptr %74, align 8, !tbaa !11
  %741 = add i64 %740, 1
  %742 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %741) #7
  %743 = load i8, ptr %742, align 1, !tbaa !37
  %744 = load i64, ptr %14, align 8, !tbaa !11
  %745 = add i64 %744, 1
  %746 = load i64, ptr %74, align 8, !tbaa !11
  %747 = add i64 %745, %746
  %748 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  %749 = urem i64 %747, %748
  %750 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %749) #7
  store i8 %743, ptr %750, align 1, !tbaa !37
  br label %751

751:                                              ; preds = %739
  %752 = load i64, ptr %74, align 8, !tbaa !11
  %753 = add i64 %752, 1
  store i64 %753, ptr %74, align 8, !tbaa !11
  br label %733, !llvm.loop !47

754:                                              ; preds = %738
  %755 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  %756 = sub i64 %755, 1
  %757 = load i64, ptr %14, align 8, !tbaa !11
  %758 = add i64 %757, %756
  store i64 %758, ptr %14, align 8, !tbaa !11
  %759 = load i64, ptr %53, align 8, !tbaa !11
  %760 = load i64, ptr %52, align 8, !tbaa !11
  %761 = sub i64 %759, %760
  %762 = load i32, ptr %12, align 4, !tbaa !36
  %763 = sext i32 %762 to i64
  %764 = add i64 %763, %761
  %765 = trunc i64 %764 to i32
  store i32 %765, ptr %12, align 4, !tbaa !36
  store i32 0, ptr %15, align 4
  br label %766

766:                                              ; preds = %754, %731
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  %767 = load i32, ptr %15, align 4
  switch i32 %767, label %780 [
    i32 0, label %768
  ]

768:                                              ; preds = %766
  br label %779

769:                                              ; preds = %701, %618, %605, %585, %569
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %770

770:                                              ; preds = %769, %486, %424
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  br label %771

771:                                              ; preds = %770, %415, %378, %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %772

772:                                              ; preds = %771, %347
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %773

773:                                              ; preds = %772, %343, %339
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %774

774:                                              ; preds = %773, %338, %306
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %775

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

776:                                              ; preds = %775, %298
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %777

777:                                              ; preds = %776, %294
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %778

778:                                              ; preds = %777, %290
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %786

779:                                              ; preds = %768, %170
  store i32 0, ptr %15, align 4
  br label %780

780:                                              ; preds = %779, %766
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  %781 = load i32, ptr %15, align 4
  switch i32 %781, label %788 [
    i32 0, label %782
  ]

782:                                              ; preds = %780
  br label %783

783:                                              ; preds = %782
  %784 = load i64, ptr %14, align 8, !tbaa !11
  %785 = add i64 %784, 1
  store i64 %785, ptr %14, align 8, !tbaa !11
  br label %110, !llvm.loop !48

786:                                              ; preds = %778, %286
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  br label %787

787:                                              ; preds = %786, %129
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %813

788:                                              ; preds = %780, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %789

789:                                              ; preds = %788
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %805

790:                                              ; preds = %103
  %791 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %792 = load ptr, ptr %791, align 8, !tbaa !15
  %793 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %792, i32 0, i32 0
  %794 = getelementptr inbounds i8, ptr %793, i64 16
  %795 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  %796 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  %797 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %794, ptr noundef %795, i64 noundef %796)
          to label %798 unwind label %99

798:                                              ; preds = %790
  %799 = getelementptr inbounds %"class.boost::test_tools::output_test_stream", ptr %76, i32 0, i32 1
  %800 = load ptr, ptr %799, align 8, !tbaa !15
  %801 = getelementptr inbounds %"struct.boost::test_tools::output_test_stream::Impl", ptr %800, i32 0, i32 0
  %802 = getelementptr inbounds i8, ptr %801, i64 16
  %803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %802)
          to label %804 unwind label %99

804:                                              ; preds = %798
  br label %805

805:                                              ; preds = %804, %789
  br label %806

806:                                              ; preds = %805, %94
  %807 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %808 = trunc i8 %807 to i1
  br i1 %808, label %809, label %811

809:                                              ; preds = %806
  invoke void @_ZN5boost10test_tools18output_test_stream5flushEv(ptr noundef nonnull align 8 dereferenceable(120) %76)
          to label %810 unwind label %99

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810, %806
  store i1 true, ptr %8, align 1
  store i32 1, ptr %15, align 4
  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
  %812 = load i1, ptr %8, align 1
  br i1 %812, label %816, label %815

813:                                              ; preds = %787, %99
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %814

814:                                              ; preds = %813, %95
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  br label %817

815:                                              ; preds = %811
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  br label %816

816:                                              ; preds = %815, %811
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  ret void

817:                                              ; preds = %814
  %818 = load ptr, ptr %10, align 8
  %819 = load i32, ptr %11, align 4
  %820 = insertvalue { ptr, i32 } poison, ptr %818, 0
  %821 = insertvalue { ptr, i32 } %820, i32 %819, 1
  resume { ptr, i32 } %821
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA30_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(30)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568)) #3 align 2

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcENSt15iterator_traitsIT_E15difference_typeESB_SB_RKT0_(ptr, ptr, ptr noundef nonnull align 1 dereferenceable(1)) #5

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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(5)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA7_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(7)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(10)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA8_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(8)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA22_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(22)) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(1)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(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)) #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(2)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA51_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(51)) #5

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i64 noundef) #0

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !6, i64 112}
!16 = !{!"_ZTSN5boost10test_tools18output_test_streamE", !17, i64 0, !6, i64 112}
!17 = !{!"_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE", !18, i64 0, !19, i64 8}
!18 = !{!"_ZTSSo"}
!19 = !{!"_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE", !20, i64 0, !22, i64 64, !23, i64 72}
!20 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !21, i64 56}
!21 = !{!"_ZTSSt6locale", !6, i64 0}
!22 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !12, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!26, !10, i64 528}
!26 = !{!"_ZTSN5boost10test_tools18output_test_stream4ImplE", !27, i64 0, !10, i64 528, !10, i64 529, !23, i64 536}
!27 = !{!"_ZTSSt13basic_fstreamIcSt11char_traitsIcEE", !28, i64 0, !30, i64 24}
!28 = !{!"_ZTSSd", !29, i64 0, !18, i64 16}
!29 = !{!"_ZTSSi", !12, i64 8}
!30 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !20, i64 0, !7, i64 64, !31, i64 104, !22, i64 120, !32, i64 124, !32, i64 132, !32, i64 140, !6, i64 152, !12, i64 160, !10, i64 168, !10, i64 169, !10, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !10, i64 192, !6, i64 200, !6, i64 208, !12, i64 216, !6, i64 224, !6, i64 232}
!31 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !10, i64 8}
!32 = !{!"_ZTS11__mbstate_t", !33, i64 0, !7, i64 4}
!33 = !{!"int", !7, i64 0}
!34 = !{i8 0, i8 2}
!35 = !{}
!36 = !{!33, !33, i64 0}
!37 = !{!7, !7, i64 0}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}
!40 = distinct !{!40, !39}
!41 = distinct !{!41, !39}
!42 = distinct !{!42, !39}
!43 = distinct !{!43, !39}
!44 = distinct !{!44, !39}
!45 = distinct !{!45, !39}
!46 = distinct !{!46, !39}
!47 = distinct !{!47, !39}
!48 = distinct !{!48, !39}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.boost::test_tools::assertion_result" = type { %"class.boost::test_tools::assertion_result::readonly_property65", %"class.boost::shared_ptr.225" }
%"class.boost::test_tools::assertion_result::readonly_property65" = type { %"class.boost::unit_test::readonly_property.213" }
%"class.boost::unit_test::readonly_property.213" = type { %"class.boost::unit_test::class_property.98" }
%"class.boost::unit_test::class_property.98" = type { i8 }
%"class.boost::shared_ptr.225" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"class.std::vector.230" = type { %"struct.std::_Vector_base.231" }
%"struct.std::_Vector_base.231" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str.194 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [51 x i8], align 1

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

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

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) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools16assertion_resultC2Eb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5boost10test_tools18output_test_stream13match_patternEb(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8 %0, ptr noundef nonnull align 8 dereferenceable(120) %1, i1 noundef zeroext %2) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i64, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::vector.230", align 8
  %7 = alloca i64, align 8
  %8 = alloca i8, align 1
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i64, align 8
  %13 = alloca i8, align 1
  %14 = alloca i64, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i8, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %"class.std::vector.230", align 8
  %32 = alloca i8, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca i64, align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  store i64 10, ptr %4, align 8, !tbaa !5
  %51 = load ptr, ptr %1, align 8, !tbaa !9
  %52 = getelementptr inbounds i8, ptr %51, i64 56
  %53 = load ptr, ptr %52, align 8
  tail call void %53(ptr noundef nonnull align 8 dereferenceable(120) %1)
  tail call void @_ZN5boost10test_tools16assertion_resultC2Eb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  %54 = load ptr, ptr %1, align 8, !tbaa !9
  %55 = getelementptr inbounds i8, ptr %54, i64 48
  %56 = load ptr, ptr %55, align 8
  invoke void %56(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(120) %1)
          to label %57 unwind label %65

57:                                               ; preds = %3
  %58 = getelementptr inbounds i8, ptr %1, i64 112
  %59 = load ptr, ptr %58, align 8, !tbaa !11
  %60 = call noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264) %59)
  br i1 %60, label %69, label %61

61:                                               ; preds = %57
  call void @_ZN5boost10test_tools16assertion_resultaSEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext false)
  %62 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %63 unwind label %67

63:                                               ; preds = %61
  %64 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA30_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %62, ptr noundef nonnull align 1 dereferenceable(30) @.str.245)
          to label %473 unwind label %67

65:                                               ; preds = %3
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %477

67:                                               ; preds = %474, %469, %464, %63, %61
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %476

69:                                               ; preds = %57
  %70 = load ptr, ptr %58, align 8, !tbaa !11
  %71 = getelementptr inbounds i8, ptr %70, i64 528
  %72 = load i8, ptr %71, align 8, !tbaa !22, !range !32, !noundef !33
  %73 = trunc nuw i8 %72 to i1
  br i1 %73, label %74, label %464

74:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  store i64 0, ptr %7, align 8, !tbaa !5
  %75 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  %76 = trunc i64 %75 to i32
  %77 = icmp sgt i32 %76, 0
  br i1 %77, label %.lr.ph211, label %.loopexit174

.lr.ph211:                                        ; preds = %74, %.thread161
  %78 = phi i64 [ %456, %.thread161 ], [ 0, %74 ]
  %.0107209 = phi i32 [ %.3110.ph, %.thread161 ], [ 0, %74 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  %79 = load ptr, ptr %58, align 8, !tbaa !11
  %80 = invoke noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568) %79)
          to label %81 unwind label %85

81:                                               ; preds = %.lr.ph211
  store i8 %80, ptr %8, align 1, !tbaa !34
  %82 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %83 = icmp ult i64 %82, 11
  br i1 %83, label %84, label %87

84:                                               ; preds = %81
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %93 unwind label %85

85:                                               ; preds = %84, %.lr.ph211
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %463

87:                                               ; preds = %81
  %88 = load i8, ptr %8, align 1, !tbaa !34
  %89 = load i64, ptr %7, align 8, !tbaa !5
  %90 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %91 = urem i64 %89, %90
  %92 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %91) #7
  store i8 %88, ptr %92, align 1, !tbaa !34
  br label %93

93:                                               ; preds = %84, %87
  %94 = load ptr, ptr %58, align 8, !tbaa !11
  %95 = load ptr, ptr %94, align 8, !tbaa !9
  %96 = getelementptr i8, ptr %95, i64 -24
  %97 = load i64, ptr %96, align 8
  %98 = getelementptr inbounds i8, ptr %94, i64 %97
  %99 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %98)
          to label %100 unwind label %195

100:                                              ; preds = %93
  br i1 %99, label %.critedge, label %101

101:                                              ; preds = %100
  %102 = load ptr, ptr %58, align 8, !tbaa !11
  %103 = load ptr, ptr %102, align 8, !tbaa !9
  %104 = getelementptr i8, ptr %103, i64 -24
  %105 = load i64, ptr %104, align 8
  %106 = getelementptr inbounds i8, ptr %102, i64 %105
  %107 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %106)
  br i1 %107, label %.critedge, label %108

108:                                              ; preds = %101
  %109 = load i64, ptr %7, align 8, !tbaa !5
  %110 = add i64 %109, %78
  %111 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %110) #7
  %112 = load i8, ptr %111, align 1, !tbaa !34
  %113 = load i8, ptr %8, align 1, !tbaa !34
  %114 = icmp eq i8 %112, %113
  br i1 %114, label %.thread161, label %.critedge

.critedge:                                        ; preds = %101, %100, %108
  call void @_ZN5boost10test_tools16assertion_resultaSEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %115 = load i64, ptr %7, align 8, !tbaa !5
  %116 = add i64 %115, %78
  store i64 %116, ptr %9, align 8, !tbaa !5
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %118 = load i64, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %119 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  %120 = load i64, ptr %7, align 8, !tbaa !5
  %121 = add i64 %78, %120
  %122 = sub i64 %119, %121
  store i64 %122, ptr %10, align 8, !tbaa !5
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %124 = load i64, ptr %123, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  %125 = load i64, ptr %7, align 8, !tbaa !5
  %126 = add i64 %125, %78
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef 0, i64 noundef %126)
          to label %127 unwind label %197

127:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %128 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  %129 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  store i8 10, ptr %13, align 1, !tbaa !34
  %130 = invoke noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcENSt15iterator_traitsIT_E15difference_typeESB_SB_RKT0_(ptr %128, ptr %129, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %131 unwind label %199

131:                                              ; preds = %127
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  store i64 %130, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %132 = load i64, ptr %7, align 8, !tbaa !5
  %133 = add i64 %132, %78
  %134 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %11, i8 noundef signext 10, i64 noundef -1) #7
  %135 = sub i64 %133, %134
  store i64 %135, ptr %14, align 8, !tbaa !5
  %136 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %137 unwind label %201

137:                                              ; preds = %131
  %138 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA22_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %136, ptr noundef nonnull align 1 dereferenceable(22) @.str.246)
          to label %139 unwind label %201

139:                                              ; preds = %137
  %140 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %138, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %141 unwind label %201

141:                                              ; preds = %139
  %142 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA8_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %140, ptr noundef nonnull align 1 dereferenceable(8) @.str.247)
          to label %143 unwind label %201

143:                                              ; preds = %141
  %144 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %142, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %145 unwind label %201

145:                                              ; preds = %143
  %146 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %144, ptr noundef nonnull align 1 dereferenceable(10) @.str.248)
          to label %147 unwind label %201

147:                                              ; preds = %145
  %148 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %146, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %149 unwind label %201

149:                                              ; preds = %147
  %150 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %148, ptr noundef nonnull align 1 dereferenceable(5) @.str.249)
          to label %151 unwind label %201

151:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  %152 = load i64, ptr %7, align 8, !tbaa !5
  %153 = add i64 %152, %78
  %154 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %153) #7
  %155 = load i8, ptr %154, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 1, i8 noundef signext %155, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %156 unwind label %203

156:                                              ; preds = %151
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull %16)
          to label %157 unwind label %205

157:                                              ; preds = %156
  %158 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %150, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %159 unwind label %207

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA7_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %158, ptr noundef nonnull align 1 dereferenceable(7) @.str.250)
          to label %161 unwind label %207

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  %162 = load i8, ptr %8, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 1, i8 noundef signext %162, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %163 unwind label %209

163:                                              ; preds = %161
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull %19)
          to label %164 unwind label %211

164:                                              ; preds = %163
  %165 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %160, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %166 unwind label %213

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %165, ptr noundef nonnull align 1 dereferenceable(5) @.str.251)
          to label %168 unwind label %213

168:                                              ; preds = %166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  %169 = load i64, ptr %7, align 8, !tbaa !5
  %170 = sub i64 %78, %118
  %171 = add i64 %170, %169
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %171, i64 noundef %118)
          to label %172 unwind label %220

172:                                              ; preds = %168
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull %22)
          to label %173 unwind label %222

173:                                              ; preds = %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  %174 = load i64, ptr %7, align 8, !tbaa !5
  %175 = add i64 %174, %78
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %175, i64 noundef %124)
          to label %176 unwind label %224

176:                                              ; preds = %173
  %177 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %178 unwind label %226

178:                                              ; preds = %176
  %179 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %177, ptr noundef nonnull align 1 dereferenceable(5) @.str.252)
          to label %180 unwind label %226

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %181 unwind label %228

181:                                              ; preds = %180
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull %26)
          to label %182 unwind label %230

182:                                              ; preds = %181
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %183 unwind label %232

183:                                              ; preds = %182
  %184 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %179, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %185 unwind label %234

185:                                              ; preds = %183
  %186 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %184, ptr noundef nonnull align 1 dereferenceable(5) @.str.253)
          to label %187 unwind label %234

187:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #7
  store i8 10, ptr %27, align 1, !tbaa !34
  %188 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %186, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %189 unwind label %236

189:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  %190 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %191 unwind label %226

191:                                              ; preds = %189
  %192 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %190, ptr noundef nonnull align 1 dereferenceable(5) @.str.252)
          to label %.preheader173 unwind label %226

.preheader173:                                    ; preds = %191
  %193 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %.not212 = icmp eq i64 %193, 0
  br i1 %.not212, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %254, %.preheader173
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %.preheader172 unwind label %267

.preheader172:                                    ; preds = %._crit_edge
  %194 = add i64 %124, -1
  %.not213 = icmp eq i64 %194, 0
  br i1 %.not213, label %.loopexit, label %.lr.ph177

195:                                              ; preds = %93
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %463

197:                                              ; preds = %.critedge
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %453

199:                                              ; preds = %127
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  br label %452

201:                                              ; preds = %149, %147, %145, %143, %141, %139, %137, %131
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %451

203:                                              ; preds = %151
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %219

205:                                              ; preds = %156
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %218

207:                                              ; preds = %159, %157
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %217

209:                                              ; preds = %161
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %216

211:                                              ; preds = %163
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %215

213:                                              ; preds = %166, %164
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %215

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

216:                                              ; preds = %215, %209
  %.pn.pn = phi { ptr, i32 } [ %.pn, %215 ], [ %210, %209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %217

217:                                              ; preds = %216, %207
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %216 ], [ %208, %207 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %218

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

219:                                              ; preds = %218, %203
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %218 ], [ %204, %203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %451

220:                                              ; preds = %168
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %450

222:                                              ; preds = %172
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %450

224:                                              ; preds = %173
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %449

226:                                              ; preds = %191, %189, %178, %176
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %448

228:                                              ; preds = %180
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %241

230:                                              ; preds = %181
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %240

232:                                              ; preds = %182
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %239

234:                                              ; preds = %185, %183
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %187
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  br label %238

238:                                              ; preds = %236, %234
  %.pn121 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %239

239:                                              ; preds = %238, %232
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %238 ], [ %233, %232 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %240

240:                                              ; preds = %239, %230
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %239 ], [ %231, %230 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %241

241:                                              ; preds = %240, %228
  %.pn121.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn, %240 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %448

.lr.ph:                                           ; preds = %.preheader173, %254
  %.069175 = phi i64 [ %245, %254 ], [ 0, %.preheader173 ]
  %242 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %243 unwind label %257

243:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  %244 = load i64, ptr %7, align 8, !tbaa !5
  %245 = add nuw i64 %.069175, 1
  %246 = add i64 %245, %244
  %247 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %248 = urem i64 %246, %247
  %249 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %248) #7
  %250 = load i8, ptr %249, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 1, i8 noundef signext %250, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %251 unwind label %259

251:                                              ; preds = %243
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull %29)
          to label %252 unwind label %261

252:                                              ; preds = %251
  %253 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %242, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %254 unwind label %263

254:                                              ; preds = %252
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  %255 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %256 = icmp ult i64 %245, %255
  br i1 %256, label %.lr.ph, label %._crit_edge, !llvm.loop !35

257:                                              ; preds = %.lr.ph
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %448

259:                                              ; preds = %243
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %266

261:                                              ; preds = %251
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %265

263:                                              ; preds = %252
  %264 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %265

265:                                              ; preds = %263, %261
  %.pn143 = phi { ptr, i32 } [ %264, %263 ], [ %262, %261 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %266

266:                                              ; preds = %265, %259
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %265 ], [ %260, %259 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %448

267:                                              ; preds = %._crit_edge
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %447

.lr.ph177:                                        ; preds = %.preheader172, %296
  %.068176 = phi i64 [ %297, %296 ], [ 0, %.preheader172 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  %269 = load ptr, ptr %58, align 8, !tbaa !11
  %270 = invoke noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568) %269)
          to label %271 unwind label %286

271:                                              ; preds = %.lr.ph177
  store i8 %270, ptr %32, align 1, !tbaa !34
  %272 = load ptr, ptr %58, align 8, !tbaa !11
  %273 = load ptr, ptr %272, align 8, !tbaa !9
  %274 = getelementptr i8, ptr %273, i64 -24
  %275 = load i64, ptr %274, align 8
  %276 = getelementptr inbounds i8, ptr %272, i64 %275
  %277 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %276)
          to label %278 unwind label %286

278:                                              ; preds = %271
  br i1 %277, label %.critedge159, label %279

279:                                              ; preds = %278
  %280 = load ptr, ptr %58, align 8, !tbaa !11
  %281 = load ptr, ptr %280, align 8, !tbaa !9
  %282 = getelementptr i8, ptr %281, i64 -24
  %283 = load i64, ptr %282, align 8
  %284 = getelementptr inbounds i8, ptr %280, i64 %283
  %285 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %284)
  br i1 %285, label %.critedge159, label %288

286:                                              ; preds = %295, %288, %271, %.lr.ph177
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %306

288:                                              ; preds = %279
  %289 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %290 unwind label %286

290:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  %291 = load i8, ptr %32, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 1, i8 noundef signext %291, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %292 unwind label %298

292:                                              ; preds = %290
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull %34)
          to label %293 unwind label %300

293:                                              ; preds = %292
  %294 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %289, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %295 unwind label %302

295:                                              ; preds = %293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  invoke void @_ZNSt6vectorIcSaIcEE9push_backERKc(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %296 unwind label %286

296:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  %297 = add nuw i64 %.068176, 1
  %exitcond.not = icmp eq i64 %297, %194
  br i1 %exitcond.not, label %.loopexit, label %.lr.ph177, !llvm.loop !37

298:                                              ; preds = %290
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %305

300:                                              ; preds = %292
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %304

302:                                              ; preds = %293
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %304

304:                                              ; preds = %302, %300
  %.pn126 = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %305

305:                                              ; preds = %304, %298
  %.pn126.pn = phi { ptr, i32 } [ %.pn126, %304 ], [ %299, %298 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %306

306:                                              ; preds = %305, %286
  %.pn129 = phi { ptr, i32 } [ %287, %286 ], [ %.pn126.pn, %305 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  br label %447

.critedge159:                                     ; preds = %278, %279
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  br label %.loopexit

.loopexit:                                        ; preds = %296, %.preheader172, %.critedge159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  store i64 0, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  store i64 0, ptr %37, align 8, !tbaa !5
  %307 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %.not214 = icmp eq i64 %307, 0
  br i1 %.not214, label %._crit_edge195, label %.lr.ph194

._crit_edge195:                                   ; preds = %.thread, %.loopexit
  %308 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %335 unwind label %339

.lr.ph194:                                        ; preds = %.loopexit, %.thread
  %.066192 = phi i64 [ %332, %.thread ], [ 0, %.loopexit ]
  %.067191 = phi i64 [ %.4, %.thread ], [ 0, %.loopexit ]
  %309 = load i64, ptr %37, align 8, !tbaa !5
  %310 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  %311 = icmp ult i64 %309, %310
  br i1 %311, label %.lr.ph187, label %.thread

.lr.ph187:                                        ; preds = %.lr.ph194, %._crit_edge181.thread
  %.065185 = phi i64 [ %329, %._crit_edge181.thread ], [ %309, %.lr.ph194 ]
  %.1184 = phi i64 [ %.3, %._crit_edge181.thread ], [ %.067191, %.lr.ph194 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  %312 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %313 = sub i64 %312, %.066192
  store i64 %313, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  %314 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  %315 = sub i64 %314, %.065185
  store i64 %315, ptr %39, align 8, !tbaa !5
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39)
  %317 = load i64, ptr %316, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  %.not = icmp ugt i64 %.1184, %317
  br i1 %.not, label %.thread, label %.preheader

.preheader:                                       ; preds = %.lr.ph187
  %.not215 = icmp eq i64 %317, 0
  br i1 %.not215, label %._crit_edge181.thread, label %.lr.ph180

.lr.ph180:                                        ; preds = %.preheader, %325
  %.063179 = phi i64 [ %326, %325 ], [ 0, %.preheader ]
  %318 = add i64 %.063179, %.066192
  %319 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %318) #7
  %320 = load i8, ptr %319, align 1, !tbaa !34
  %321 = add i64 %.063179, %.065185
  %322 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef %321)
  %323 = load i8, ptr %322, align 1, !tbaa !34
  %324 = icmp eq i8 %320, %323
  br i1 %324, label %325, label %._crit_edge181

325:                                              ; preds = %.lr.ph180
  %326 = add nuw i64 %.063179, 1
  %exitcond218.not = icmp eq i64 %326, %317
  br i1 %exitcond218.not, label %._crit_edge181, label %.lr.ph180, !llvm.loop !38

._crit_edge181:                                   ; preds = %325, %.lr.ph180
  %.064.lcssa = phi i64 [ %317, %325 ], [ %.063179, %.lr.ph180 ]
  %327 = icmp ugt i64 %.064.lcssa, %.1184
  br i1 %327, label %328, label %._crit_edge181.thread

328:                                              ; preds = %._crit_edge181
  store i64 %.066192, ptr %36, align 8, !tbaa !5
  store i64 %.065185, ptr %37, align 8, !tbaa !5
  br label %._crit_edge181.thread

._crit_edge181.thread:                            ; preds = %.preheader, %._crit_edge181, %328
  %.3 = phi i64 [ %.064.lcssa, %328 ], [ %.1184, %._crit_edge181 ], [ %.1184, %.preheader ]
  %329 = add nuw i64 %.065185, 1
  %330 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  %331 = icmp ult i64 %329, %330
  br i1 %331, label %.lr.ph187, label %.thread, !llvm.loop !39

.thread:                                          ; preds = %._crit_edge181.thread, %.lr.ph187, %.lr.ph194
  %.4 = phi i64 [ %.067191, %.lr.ph194 ], [ %.1184, %.lr.ph187 ], [ %.3, %._crit_edge181.thread ]
  %332 = add nuw i64 %.066192, 1
  %333 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %334 = icmp ult i64 %332, %333
  br i1 %334, label %.lr.ph194, label %._crit_edge195, !llvm.loop !40

335:                                              ; preds = %._crit_edge195
  %336 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %308, ptr noundef nonnull align 1 dereferenceable(10) @.str.254)
          to label %.preheader171 unwind label %339

.preheader171:                                    ; preds = %335
  %337 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  %.not216 = icmp eq i64 %337, 0
  br i1 %.not216, label %._crit_edge198, label %.lr.ph197

._crit_edge198:                                   ; preds = %344, %.preheader171
  %338 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %352 unwind label %339

339:                                              ; preds = %415, %413, %411, %409, %._crit_edge198, %335, %._crit_edge195
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %446

.lr.ph197:                                        ; preds = %.preheader171, %344
  %.062196 = phi i64 [ %345, %344 ], [ 0, %.preheader171 ]
  %341 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %342 unwind label %348

342:                                              ; preds = %.lr.ph197
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  store i8 32, ptr %40, align 1, !tbaa !34
  %343 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %341, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %344 unwind label %350

344:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  %345 = add nuw i64 %.062196, 1
  %346 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  %347 = icmp ult i64 %345, %346
  br i1 %347, label %.lr.ph197, label %._crit_edge198, !llvm.loop !41

348:                                              ; preds = %.lr.ph197
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %446

350:                                              ; preds = %342
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  br label %446

352:                                              ; preds = %._crit_edge198
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #7
  store i8 126, ptr %41, align 1, !tbaa !34
  %353 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %338, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %354 unwind label %364

354:                                              ; preds = %352
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  store i64 1, ptr %42, align 8, !tbaa !5
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %356 = load i64, ptr %355, align 8, !tbaa !5
  %357 = icmp ugt i64 %356, 1
  br i1 %357, label %.lr.ph204, label %._crit_edge205

._crit_edge205:                                   ; preds = %._crit_edge202, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  %358 = load ptr, ptr %58, align 8, !tbaa !11
  %359 = load ptr, ptr %358, align 8, !tbaa !9
  %360 = getelementptr i8, ptr %359, i64 -24
  %361 = load i64, ptr %360, align 8
  %362 = getelementptr inbounds i8, ptr %358, i64 %361
  %363 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %362)
  br i1 %363, label %409, label %413

364:                                              ; preds = %352
  %365 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  br label %446

.lr.ph204:                                        ; preds = %354, %._crit_edge202
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  %366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %36)
  %367 = load i64, ptr %366, align 8, !tbaa !5
  %368 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %367) #7
  %369 = load i8, ptr %368, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, i64 noundef 1, i8 noundef signext %369, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %370 unwind label %389

370:                                              ; preds = %.lr.ph204
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull %44)
          to label %371 unwind label %391

371:                                              ; preds = %370
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %373 = load i64, ptr %372, align 8, !tbaa !5
  %374 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef %373)
  %375 = load i8, ptr %374, align 1, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, i64 noundef 1, i8 noundef signext %375, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %376 unwind label %394

376:                                              ; preds = %371
  invoke void @_ZN5boost10test_tools16pretty_print_logENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull %47)
          to label %377 unwind label %396

377:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  %378 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  store i64 %378, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  %379 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  store i64 %379, ptr %50, align 8, !tbaa !5
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50)
  %381 = load i64, ptr %380, align 8, !tbaa !5
  %382 = trunc i64 %381 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  %383 = icmp sgt i32 %382, 0
  br i1 %383, label %.lr.ph201, label %._crit_edge202

._crit_edge202:                                   ; preds = %402, %377
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  %384 = load i64, ptr %42, align 8, !tbaa !5
  %385 = add i64 %384, 1
  store i64 %385, ptr %42, align 8, !tbaa !5
  %386 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %387 = load i64, ptr %386, align 8, !tbaa !5
  %388 = icmp ult i64 %385, %387
  br i1 %388, label %.lr.ph204, label %._crit_edge205, !llvm.loop !42

389:                                              ; preds = %.lr.ph204
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %393

391:                                              ; preds = %370
  %392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %393

393:                                              ; preds = %391, %389
  %.pn132 = phi { ptr, i32 } [ %392, %391 ], [ %390, %389 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #7
  br label %408

394:                                              ; preds = %371
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %398

396:                                              ; preds = %376
  %397 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %398

398:                                              ; preds = %396, %394
  %.pn134 = phi { ptr, i32 } [ %397, %396 ], [ %395, %394 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  br label %407

.lr.ph201:                                        ; preds = %377, %402
  %.061199 = phi i32 [ %403, %402 ], [ %382, %377 ]
  %399 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %400 unwind label %405

400:                                              ; preds = %.lr.ph201
  %401 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %399, ptr noundef nonnull align 1 dereferenceable(2) @.str.255)
          to label %402 unwind label %405

402:                                              ; preds = %400
  %403 = add nsw i32 %.061199, -1
  %404 = icmp sgt i32 %.061199, 1
  br i1 %404, label %.lr.ph201, label %._crit_edge202, !llvm.loop !43

405:                                              ; preds = %400, %.lr.ph201
  %406 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %407

407:                                              ; preds = %405, %398
  %.pn136 = phi { ptr, i32 } [ %406, %405 ], [ %.pn134, %398 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %408

408:                                              ; preds = %407, %393
  %.pn136.pn = phi { ptr, i32 } [ %.pn136, %407 ], [ %.pn132, %393 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  br label %446

409:                                              ; preds = %._crit_edge205
  %410 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %411 unwind label %339

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA51_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %410, ptr noundef nonnull align 1 dereferenceable(51) @.str.256)
          to label %413 unwind label %339

413:                                              ; preds = %411, %._crit_edge205
  %414 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boost10test_tools16assertion_result7messageEv(ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %415 unwind label %339

415:                                              ; preds = %413
  %416 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408) %414, ptr noundef nonnull align 1 dereferenceable(2) @.str.194)
          to label %417 unwind label %339

417:                                              ; preds = %415
  %418 = load ptr, ptr %58, align 8, !tbaa !11
  %419 = load ptr, ptr %418, align 8, !tbaa !9
  %420 = getelementptr i8, ptr %419, i64 -24
  %421 = load i64, ptr %420, align 8
  %422 = getelementptr inbounds i8, ptr %418, i64 %421
  %423 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %422)
  br i1 %423, label %445, label %.preheader170

.preheader170:                                    ; preds = %417
  %424 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %.not217 = icmp eq i64 %424, 1
  br i1 %.not217, label %._crit_edge208, label %.lr.ph207

._crit_edge208:                                   ; preds = %.lr.ph207, %.preheader170
  %425 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %426 = add i64 %425, -1
  %427 = load i64, ptr %7, align 8, !tbaa !5
  %428 = add i64 %426, %427
  store i64 %428, ptr %7, align 8, !tbaa !5
  %429 = load i64, ptr %37, align 8, !tbaa !5
  %430 = load i64, ptr %36, align 8, !tbaa !5
  %431 = sub i64 %429, %430
  %432 = trunc i64 %431 to i32
  %433 = add i32 %.0107209, %432
  br label %445

.lr.ph207:                                        ; preds = %.preheader170, %.lr.ph207
  %.0206 = phi i64 [ %434, %.lr.ph207 ], [ 0, %.preheader170 ]
  %434 = add nuw i64 %.0206, 1
  %435 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %434) #7
  %436 = load i8, ptr %435, align 1, !tbaa !34
  %437 = load i64, ptr %7, align 8, !tbaa !5
  %438 = add i64 %434, %437
  %439 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  %440 = urem i64 %438, %439
  %441 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %440) #7
  store i8 %436, ptr %441, align 1, !tbaa !34
  %442 = call noundef i64 @_ZNKSt6vectorIcSaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %443 = add i64 %442, -1
  %444 = icmp ult i64 %434, %443
  br i1 %444, label %.lr.ph207, label %._crit_edge208, !llvm.loop !44

445:                                              ; preds = %417, %._crit_edge208
  %.1108 = phi i32 [ %433, %._crit_edge208 ], [ %.0107209, %417 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %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 nonnull %11) #7
  br i1 %423, label %462, label %.thread161

446:                                              ; preds = %348, %350, %408, %364, %339
  %.pn139.pn = phi { ptr, i32 } [ %.pn136.pn, %408 ], [ %340, %339 ], [ %365, %364 ], [ %351, %350 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  br label %447

447:                                              ; preds = %446, %306, %267
  %.pn139.pn.pn = phi { ptr, i32 } [ %.pn139.pn, %446 ], [ %.pn129, %306 ], [ %268, %267 ]
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  br label %448

448:                                              ; preds = %257, %266, %447, %241, %226
  %.pn143.pn.pn.pn = phi { ptr, i32 } [ %.pn139.pn.pn, %447 ], [ %227, %226 ], [ %.pn121.pn.pn.pn, %241 ], [ %.pn143.pn, %266 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %449

449:                                              ; preds = %448, %224
  %.pn143.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn, %448 ], [ %225, %224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %450

450:                                              ; preds = %449, %222, %220
  %.pn143.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn, %449 ], [ %223, %222 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %451

451:                                              ; preds = %450, %219, %201
  %.pn143.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn, %450 ], [ %.pn.pn.pn.pn.pn, %219 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %452

452:                                              ; preds = %451, %199
  %.pn143.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn, %451 ], [ %200, %199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %453

453:                                              ; preds = %452, %197
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn.pn, %452 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %463

.thread161:                                       ; preds = %108, %445
  %.3110.ph = phi i32 [ %.1108, %445 ], [ %.0107209, %108 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  %454 = load i64, ptr %7, align 8, !tbaa !5
  %455 = add i64 %454, 1
  store i64 %455, ptr %7, align 8, !tbaa !5
  %456 = sext i32 %.3110.ph to i64
  %457 = trunc i64 %455 to i32
  %458 = add i32 %.3110.ph, %457
  %459 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  %460 = trunc i64 %459 to i32
  %461 = icmp slt i32 %458, %460
  br i1 %461, label %.lr.ph211, label %.loopexit174, !llvm.loop !45

462:                                              ; preds = %445
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  br label %.loopexit174

463:                                              ; preds = %195, %453, %85
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %86, %85 ], [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn, %453 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  br label %476

.loopexit174:                                     ; preds = %.thread161, %74, %462
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  br label %473

464:                                              ; preds = %69
  %465 = getelementptr inbounds i8, ptr %70, i64 16
  %466 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  %467 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  %468 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef %466, i64 noundef %467)
          to label %469 unwind label %67

469:                                              ; preds = %464
  %470 = load ptr, ptr %58, align 8, !tbaa !11
  %471 = getelementptr inbounds i8, ptr %470, i64 16
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %471)
          to label %473 unwind label %67

473:                                              ; preds = %.loopexit174, %469, %63
  br i1 %2, label %474, label %475

474:                                              ; preds = %473
  invoke void @_ZN5boost10test_tools18output_test_stream5flushEv(ptr noundef nonnull align 8 dereferenceable(120) %1)
          to label %475 unwind label %67

475:                                              ; preds = %474, %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  ret void

476:                                              ; preds = %463, %67
  %.pn155 = phi { ptr, i32 } [ %68, %67 ], [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %463 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %477

477:                                              ; preds = %476, %65
  %.pn155.pn = phi { ptr, i32 } [ %.pn155, %476 ], [ %66, %65 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  resume { ptr, i32 } %.pn155.pn
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA30_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(30)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef signext i8 @_ZN5boost10test_tools18output_test_stream4Impl8get_charEv(ptr noundef nonnull align 8 dereferenceable(568)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcENSt15iterator_traitsIT_E15difference_typeESB_SB_RKT0_(ptr, ptr, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #5

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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA5_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_23basic_wrap_stringstreamIT_EESA_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA7_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(7)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcmEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA10_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(10)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA8_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA22_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(22)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIccEERNS_23basic_wrap_stringstreamIT_EES4_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(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 #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA2_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(408) ptr @_ZN5boostlsIcA51_cEERNS_23basic_wrap_stringstreamIT_EES5_RKT0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 1 dereferenceable(51)) local_unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i64 noundef) local_unnamed_addr #0

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !17, i64 112}
!12 = !{!"_ZTSN5boost10test_tools18output_test_streamE", !13, i64 0, !17, i64 112}
!13 = !{!"_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE", !14, i64 0, !15, i64 8}
!14 = !{!"_ZTSSo"}
!15 = !{!"_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE", !16, i64 0, !19, i64 64, !20, i64 72}
!16 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !17, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !18, i64 56}
!17 = !{!"any pointer", !7, i64 0}
!18 = !{!"_ZTSSt6locale", !17, i64 0}
!19 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !6, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!22 = !{!23, !29, i64 528}
!23 = !{!"_ZTSN5boost10test_tools18output_test_stream4ImplE", !24, i64 0, !29, i64 528, !29, i64 529, !20, i64 536}
!24 = !{!"_ZTSSt13basic_fstreamIcSt11char_traitsIcEE", !25, i64 0, !27, i64 24}
!25 = !{!"_ZTSSd", !26, i64 0, !14, i64 16}
!26 = !{!"_ZTSSi", !6, i64 8}
!27 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !16, i64 0, !7, i64 64, !28, i64 104, !19, i64 120, !30, i64 124, !30, i64 132, !30, i64 140, !17, i64 152, !6, i64 160, !29, i64 168, !29, i64 169, !29, i64 170, !7, i64 171, !17, i64 176, !17, i64 184, !29, i64 192, !17, i64 200, !17, i64 208, !6, i64 216, !17, i64 224, !17, i64 232}
!28 = !{!"_ZTSSt12__basic_fileIcE", !17, i64 0, !29, i64 8}
!29 = !{!"bool", !7, i64 0}
!30 = !{!"_ZTS11__mbstate_t", !31, i64 0, !7, i64 4}
!31 = !{!"int", !7, i64 0}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{!7, !7, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = distinct !{!37, !36}
!38 = distinct !{!38, !36}
!39 = distinct !{!39, !36}
!40 = distinct !{!40, !36}
!41 = distinct !{!41, !36}
!42 = distinct !{!42, !36}
!43 = distinct !{!43, !36}
!44 = distinct !{!44, !36}
!45 = distinct !{!45, !36}


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