; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/chrono-test.ll (ZN23chrono_test_locale_Test8TestBodyEv)

; 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::chrono::duration" = type { i64 }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%"class.testing::AssertionResult" = type { i8, %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::locale" = type { ptr }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"class.fmt::v10::basic_format_string.70" = type { %"class.fmt::v10::basic_string_view" }
%"class.std::chrono::duration.71" = type { i64 }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.fmt::v10::basic_format_string.68" = type { %"class.fmt::v10::basic_string_view" }
%"class.std::chrono::duration.69" = type { i64 }
%"class.fmt::v10::basic_format_string.36" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.79" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [8 x i8], align 1
@__const._ZN23chrono_test_locale_Test8TestBodyEv.sec = external hidden unnamed_addr constant %"class.std::chrono::duration", align 8
@.str.511 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z7make_tmv(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9make_houri(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z11make_minutei(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z11make_secondi(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) #0

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6locale7classicEv() #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

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

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #2

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: nounwind
declare void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl60ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN23chrono_test_locale_Test8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::locale", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::locale", align 8
  %8 = alloca %"class.testing::AssertionResult", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %struct.tm, align 8
  %11 = alloca %"class.fmt::v10::basic_string_view", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.fmt::v10::basic_format_string.70", align 8
  %14 = alloca %"class.std::chrono::duration.71", align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.testing::Message", align 8
  %17 = alloca %"class.testing::internal::AssertHelper", align 8
  %18 = alloca %"class.std::locale", align 8
  %19 = alloca %"class.testing::AssertionResult", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %struct.tm, align 8
  %22 = alloca %"class.fmt::v10::basic_string_view", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.fmt::v10::basic_format_string.70", align 8
  %25 = alloca %"class.std::chrono::duration.71", align 8
  %26 = alloca i32, align 4
  %27 = alloca %"class.testing::Message", align 8
  %28 = alloca %"class.testing::internal::AssertHelper", align 8
  %29 = alloca %"class.std::locale", align 8
  %30 = alloca %"class.testing::AssertionResult", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %struct.tm, align 8
  %33 = alloca %"class.fmt::v10::basic_string_view", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.fmt::v10::basic_format_string.68", align 8
  %36 = alloca %"class.std::chrono::duration.69", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.testing::Message", align 8
  %39 = alloca %"class.testing::internal::AssertHelper", align 8
  %40 = alloca %"class.std::locale", align 8
  %41 = alloca %"class.testing::AssertionResult", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %struct.tm, align 8
  %44 = alloca %"class.fmt::v10::basic_string_view", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.fmt::v10::basic_format_string.36", align 8
  %47 = alloca %"class.std::chrono::duration", align 8
  %48 = alloca i32, align 4
  %49 = alloca %"class.testing::Message", align 8
  %50 = alloca %"class.testing::internal::AssertHelper", align 8
  %51 = alloca %struct.tm, align 8
  %52 = alloca %"class.std::chrono::duration", align 8
  %53 = alloca %"class.std::locale", align 8
  %54 = alloca %"class.testing::AssertionResult", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.fmt::v10::basic_string_view", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.fmt::v10::basic_format_string.79", align 8
  %59 = alloca %"class.testing::Message", align 8
  %60 = alloca %"class.testing::internal::AssertHelper", align 8
  %61 = alloca %"class.std::locale", align 8
  %62 = alloca %"class.testing::AssertionResult", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.fmt::v10::basic_string_view", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.fmt::v10::basic_format_string.79", align 8
  %67 = alloca %"class.testing::Message", align 8
  %68 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %69 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  call void @_Z10get_localePKcS0_(ptr dead_on_unwind writable sret(%"class.std::locale") align 8 %3, ptr noundef @.str.498, ptr noundef null)
  %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6locale7classicEv()
          to label %71 unwind label %74

71:                                               ; preds = %1
  %72 = call noundef zeroext i1 @_ZNKSt6localeeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  br i1 %72, label %73, label %78

73:                                               ; preds = %71
  store i32 1, ptr %6, align 4
  br label %481

74:                                               ; preds = %1
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %4, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %5, align 4
  br label %488

78:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.498)
          to label %79 unwind label %97

79:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %10) #9
  call void @_Z9make_houri(ptr dead_on_unwind writable sret(%struct.tm) align 8 %10, i32 noundef 14)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef @.str.143)
          to label %80 unwind label %101

80:                                               ; preds = %79
  %81 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 0
  %82 = load ptr, ptr %81, align 8
  %83 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 1
  %84 = load i64, ptr %83, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(56) %10, ptr %82, i64 %84, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %85 unwind label %101

85:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(8) @.str.501)
          to label %86 unwind label %105

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  store i32 14, ptr %15, align 4, !tbaa !9
  invoke void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %87 unwind label %109

87:                                               ; preds = %86
  %88 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 0
  %89 = load ptr, ptr %88, align 8
  %90 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 1
  %91 = load i64, ptr %90, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr %89, i64 %91, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %92 unwind label %109

92:                                               ; preds = %87
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %8, ptr noundef @.str.499, ptr noundef @.str.500, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %93 unwind label %113

93:                                               ; preds = %92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #9
  %94 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %95 unwind label %120

95:                                               ; preds = %93
  br i1 %94, label %96, label %124

96:                                               ; preds = %95
  br label %144

97:                                               ; preds = %78
  %98 = landingpad { ptr, i32 }
          cleanup
  %99 = extractvalue { ptr, i32 } %98, 0
  store ptr %99, ptr %4, align 8
  %100 = extractvalue { ptr, i32 } %98, 1
  store i32 %100, ptr %5, align 4
  br label %165

101:                                              ; preds = %80, %79
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %4, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %5, align 4
  br label %119

105:                                              ; preds = %85
  %106 = landingpad { ptr, i32 }
          cleanup
  %107 = extractvalue { ptr, i32 } %106, 0
  store ptr %107, ptr %4, align 8
  %108 = extractvalue { ptr, i32 } %106, 1
  store i32 %108, ptr %5, align 4
  br label %118

109:                                              ; preds = %87, %86
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %4, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %5, align 4
  br label %117

113:                                              ; preds = %92
  %114 = landingpad { ptr, i32 }
          cleanup
  %115 = extractvalue { ptr, i32 } %114, 0
  store ptr %115, ptr %4, align 8
  %116 = extractvalue { ptr, i32 } %114, 1
  store i32 %116, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %117

117:                                              ; preds = %113, %109
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %118

118:                                              ; preds = %117, %105
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %119

119:                                              ; preds = %118, %101
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #9
  br label %164

120:                                              ; preds = %93
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %4, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %5, align 4
  br label %163

124:                                              ; preds = %95
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %125 unwind label %130

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  %126 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %127 unwind label %134

127:                                              ; preds = %125
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %17, i32 noundef 1, ptr noundef @.str.3, i32 noundef 614, ptr noundef %126)
          to label %128 unwind label %134

128:                                              ; preds = %127
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %129 unwind label %138

129:                                              ; preds = %128
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %144

130:                                              ; preds = %124
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %4, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %5, align 4
  br label %143

134:                                              ; preds = %127, %125
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %4, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %5, align 4
  br label %142

138:                                              ; preds = %128
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %4, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  br label %142

142:                                              ; preds = %138, %134
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  br label %143

143:                                              ; preds = %142, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %163

144:                                              ; preds = %129, %96
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef @.str.498)
          to label %145 unwind label %166

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %21) #9
  call void @_Z9make_houri(ptr dead_on_unwind writable sret(%struct.tm) align 8 %21, i32 noundef 14)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef @.str.145)
          to label %146 unwind label %170

146:                                              ; preds = %145
  %147 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 0
  %148 = load ptr, ptr %147, align 8
  %149 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 1
  %150 = load i64, ptr %149, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(56) %21, ptr %148, i64 %150, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %151 unwind label %170

151:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 1 dereferenceable(8) @.str.504)
          to label %152 unwind label %174

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  store i32 14, ptr %26, align 4, !tbaa !9
  invoke void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %153 unwind label %178

153:                                              ; preds = %152
  %154 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 0
  %155 = load ptr, ptr %154, align 8
  %156 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 1
  %157 = load i64, ptr %156, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr %155, i64 %157, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %158 unwind label %178

158:                                              ; preds = %153
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %19, ptr noundef @.str.502, ptr noundef @.str.503, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %159 unwind label %182

159:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  %160 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %161 unwind label %189

161:                                              ; preds = %159
  br i1 %160, label %162, label %193

162:                                              ; preds = %161
  br label %213

163:                                              ; preds = %143, %120
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #9
  br label %164

164:                                              ; preds = %163, %119
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br label %165

165:                                              ; preds = %164, %97
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %488

166:                                              ; preds = %144
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %4, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %5, align 4
  br label %234

170:                                              ; preds = %146, %145
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %4, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %5, align 4
  br label %188

174:                                              ; preds = %151
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %4, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %5, align 4
  br label %187

178:                                              ; preds = %153, %152
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %4, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %5, align 4
  br label %186

182:                                              ; preds = %158
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %4, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %186

186:                                              ; preds = %182, %178
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %187

187:                                              ; preds = %186, %174
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %188

188:                                              ; preds = %187, %170
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  br label %233

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

193:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %194 unwind label %199

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %195 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %196 unwind label %203

196:                                              ; preds = %194
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %28, i32 noundef 1, ptr noundef @.str.3, i32 noundef 615, ptr noundef %195)
          to label %197 unwind label %203

197:                                              ; preds = %196
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %198 unwind label %207

198:                                              ; preds = %197
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %213

199:                                              ; preds = %193
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %4, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %5, align 4
  br label %212

203:                                              ; preds = %196, %194
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %4, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %5, align 4
  br label %211

207:                                              ; preds = %197
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %4, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  br label %211

211:                                              ; preds = %207, %203
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br label %212

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

213:                                              ; preds = %198, %162
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef @.str.498)
          to label %214 unwind label %235

214:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %32) #9
  call void @_Z11make_minutei(ptr dead_on_unwind writable sret(%struct.tm) align 8 %32, i32 noundef 42)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef @.str.147)
          to label %215 unwind label %239

215:                                              ; preds = %214
  %216 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 0
  %217 = load ptr, ptr %216, align 8
  %218 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 1
  %219 = load i64, ptr %218, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(56) %32, ptr %217, i64 %219, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %220 unwind label %239

220:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(8) @.str.507)
          to label %221 unwind label %243

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 42, ptr %37, align 4, !tbaa !9
  invoke void @_ZNSt6chrono8durationIlSt5ratioILl60ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %222 unwind label %247

222:                                              ; preds = %221
  %223 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 0
  %224 = load ptr, ptr %223, align 8
  %225 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 1
  %226 = load i64, ptr %225, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(8) %29, ptr %224, i64 %226, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %227 unwind label %247

227:                                              ; preds = %222
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %30, ptr noundef @.str.505, ptr noundef @.str.506, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %228 unwind label %251

228:                                              ; preds = %227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  %229 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %230 unwind label %258

230:                                              ; preds = %228
  br i1 %229, label %231, label %262

231:                                              ; preds = %230
  br label %282

232:                                              ; preds = %212, %189
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  br label %233

233:                                              ; preds = %232, %188
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br label %234

234:                                              ; preds = %233, %166
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %488

235:                                              ; preds = %213
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %4, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %5, align 4
  br label %303

239:                                              ; preds = %215, %214
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %4, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %5, align 4
  br label %257

243:                                              ; preds = %220
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %4, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %5, align 4
  br label %256

247:                                              ; preds = %222, %221
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %4, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %5, align 4
  br label %255

251:                                              ; preds = %227
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %4, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %255

255:                                              ; preds = %251, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %256

256:                                              ; preds = %255, %243
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %257

257:                                              ; preds = %256, %239
  call void @llvm.lifetime.end.p0(i64 56, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #9
  br label %302

258:                                              ; preds = %228
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %4, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %5, align 4
  br label %301

262:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %263 unwind label %268

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %264 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %265 unwind label %272

265:                                              ; preds = %263
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %39, i32 noundef 1, ptr noundef @.str.3, i32 noundef 616, ptr noundef %264)
          to label %266 unwind label %272

266:                                              ; preds = %265
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %267 unwind label %276

267:                                              ; preds = %266
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %282

268:                                              ; preds = %262
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %4, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %5, align 4
  br label %281

272:                                              ; preds = %265, %263
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %4, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %5, align 4
  br label %280

276:                                              ; preds = %266
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %4, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  br label %280

280:                                              ; preds = %276, %272
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  br label %281

281:                                              ; preds = %280, %268
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %301

282:                                              ; preds = %267, %231
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef @.str.498)
          to label %283 unwind label %304

283:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %43) #9
  call void @_Z11make_secondi(ptr dead_on_unwind writable sret(%struct.tm) align 8 %43, i32 noundef 42)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef @.str.149)
          to label %284 unwind label %308

284:                                              ; preds = %283
  %285 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 0
  %286 = load ptr, ptr %285, align 8
  %287 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 1
  %288 = load i64, ptr %287, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(56) %43, ptr %286, i64 %288, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %289 unwind label %308

289:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 1 dereferenceable(8) @.str.510)
          to label %290 unwind label %312

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  store i32 42, ptr %48, align 4, !tbaa !9
  invoke void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %291 unwind label %316

291:                                              ; preds = %290
  %292 = getelementptr inbounds { ptr, i64 }, ptr %46, i32 0, i32 0
  %293 = load ptr, ptr %292, align 8
  %294 = getelementptr inbounds { ptr, i64 }, ptr %46, i32 0, i32 1
  %295 = load i64, ptr %294, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %40, ptr %293, i64 %295, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %296 unwind label %316

296:                                              ; preds = %291
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %41, ptr noundef @.str.508, ptr noundef @.str.509, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %297 unwind label %320

297:                                              ; preds = %296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  %298 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %299 unwind label %327

299:                                              ; preds = %297
  br i1 %298, label %300, label %331

300:                                              ; preds = %299
  br label %351

301:                                              ; preds = %281, %258
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #9
  br label %302

302:                                              ; preds = %301, %257
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  br label %303

303:                                              ; preds = %302, %235
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %488

304:                                              ; preds = %282
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %4, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %5, align 4
  br label %374

308:                                              ; preds = %284, %283
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %4, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %5, align 4
  br label %326

312:                                              ; preds = %289
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %4, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %5, align 4
  br label %325

316:                                              ; preds = %291, %290
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %4, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %5, align 4
  br label %324

320:                                              ; preds = %296
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %4, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %324

324:                                              ; preds = %320, %316
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %325

325:                                              ; preds = %324, %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %326

326:                                              ; preds = %325, %308
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  br label %373

327:                                              ; preds = %297
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %4, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %5, align 4
  br label %372

331:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %332 unwind label %337

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %333 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %334 unwind label %341

334:                                              ; preds = %332
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %50, i32 noundef 1, ptr noundef @.str.3, i32 noundef 617, ptr noundef %333)
          to label %335 unwind label %341

335:                                              ; preds = %334
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %336 unwind label %345

336:                                              ; preds = %335
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %351

337:                                              ; preds = %331
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %4, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %5, align 4
  br label %350

341:                                              ; preds = %334, %332
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %4, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %5, align 4
  br label %349

345:                                              ; preds = %335
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %4, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br label %349

349:                                              ; preds = %345, %341
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  br label %350

350:                                              ; preds = %349, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %372

351:                                              ; preds = %336, %300
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %51) #9
  call void @_Z7make_tmv(ptr dead_on_unwind writable sret(%struct.tm) align 8 %51)
  %352 = getelementptr inbounds %struct.tm, ptr %51, i32 0, i32 2
  store i32 3, ptr %352, align 8, !tbaa !11
  %353 = getelementptr inbounds %struct.tm, ptr %51, i32 0, i32 1
  store i32 25, ptr %353, align 4, !tbaa !14
  %354 = getelementptr inbounds %struct.tm, ptr %51, i32 0, i32 0
  store i32 45, ptr %354, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %52, ptr align 8 @__const._ZN23chrono_test_locale_Test8TestBodyEv.sec, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef @.str.498)
          to label %355 unwind label %375

355:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef @.str.160)
          to label %356 unwind label %379

356:                                              ; preds = %355
  %357 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 0
  %358 = load ptr, ptr %357, align 8
  %359 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 1
  %360 = load i64, ptr %359, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(56) %51, ptr %358, i64 %360, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %361 unwind label %379

361:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 1 dereferenceable(7) @.str.513)
          to label %362 unwind label %383

362:                                              ; preds = %361
  %363 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 0
  %364 = load ptr, ptr %363, align 8
  %365 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 1
  %366 = load i64, ptr %365, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSA_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSN_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr %364, i64 %366, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %367 unwind label %383

367:                                              ; preds = %362
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %54, ptr noundef @.str.511, ptr noundef @.str.512, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %368 unwind label %387

368:                                              ; preds = %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  %369 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %370 unwind label %393

370:                                              ; preds = %368
  br i1 %369, label %371, label %397

371:                                              ; preds = %370
  br label %417

372:                                              ; preds = %350, %327
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #9
  br label %373

373:                                              ; preds = %372, %326
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  br label %374

374:                                              ; preds = %373, %304
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  br label %488

375:                                              ; preds = %351
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %4, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %5, align 4
  br label %437

379:                                              ; preds = %356, %355
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %4, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %5, align 4
  br label %392

383:                                              ; preds = %362, %361
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %4, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %5, align 4
  br label %391

387:                                              ; preds = %367
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %4, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %391

391:                                              ; preds = %387, %383
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %392

392:                                              ; preds = %391, %379
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %436

393:                                              ; preds = %368
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %4, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %5, align 4
  br label %435

397:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %398 unwind label %403

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %399 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %400 unwind label %407

400:                                              ; preds = %398
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %60, i32 noundef 1, ptr noundef @.str.3, i32 noundef 623, ptr noundef %399)
          to label %401 unwind label %407

401:                                              ; preds = %400
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %402 unwind label %411

402:                                              ; preds = %401
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %417

403:                                              ; preds = %397
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %4, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %5, align 4
  br label %416

407:                                              ; preds = %400, %398
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %4, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %5, align 4
  br label %415

411:                                              ; preds = %401
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %4, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  br label %415

415:                                              ; preds = %411, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  br label %416

416:                                              ; preds = %415, %403
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %435

417:                                              ; preds = %402, %371
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef @.str.498)
          to label %418 unwind label %438

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef @.str.158)
          to label %419 unwind label %442

419:                                              ; preds = %418
  %420 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 0
  %421 = load ptr, ptr %420, align 8
  %422 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 1
  %423 = load i64, ptr %422, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(56) %51, ptr %421, i64 %423, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %424 unwind label %442

424:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 1 dereferenceable(7) @.str.516)
          to label %425 unwind label %446

425:                                              ; preds = %424
  %426 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 0
  %427 = load ptr, ptr %426, align 8
  %428 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 1
  %429 = load i64, ptr %428, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSA_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSN_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(8) %61, ptr %427, i64 %429, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %430 unwind label %446

430:                                              ; preds = %425
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %62, ptr noundef @.str.514, ptr noundef @.str.515, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %431 unwind label %450

431:                                              ; preds = %430
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  %432 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %433 unwind label %456

433:                                              ; preds = %431
  br i1 %432, label %434, label %460

434:                                              ; preds = %433
  br label %480

435:                                              ; preds = %416, %393
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  br label %436

436:                                              ; preds = %435, %392
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  br label %437

437:                                              ; preds = %436, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %487

438:                                              ; preds = %417
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %4, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %5, align 4
  br label %486

442:                                              ; preds = %419, %418
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %4, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %5, align 4
  br label %455

446:                                              ; preds = %425, %424
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %4, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %5, align 4
  br label %454

450:                                              ; preds = %430
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %4, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %454

454:                                              ; preds = %450, %446
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %455

455:                                              ; preds = %454, %442
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  br label %485

456:                                              ; preds = %431
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %4, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %5, align 4
  br label %484

460:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %461 unwind label %466

461:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %462 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %463 unwind label %470

463:                                              ; preds = %461
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %68, i32 noundef 1, ptr noundef @.str.3, i32 noundef 624, ptr noundef %462)
          to label %464 unwind label %470

464:                                              ; preds = %463
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %465 unwind label %474

465:                                              ; preds = %464
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  br label %480

466:                                              ; preds = %460
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %4, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %5, align 4
  br label %479

470:                                              ; preds = %463, %461
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %4, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %5, align 4
  br label %478

474:                                              ; preds = %464
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %4, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %5, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  br label %478

478:                                              ; preds = %474, %470
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br label %479

479:                                              ; preds = %478, %466
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  br label %484

480:                                              ; preds = %465, %434
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %51) #9
  store i32 0, ptr %6, align 4
  br label %481

481:                                              ; preds = %480, %73
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  %482 = load i32, ptr %6, align 4
  switch i32 %482, label %494 [
    i32 0, label %483
    i32 1, label %483
  ]

483:                                              ; preds = %481, %481
  ret void

484:                                              ; preds = %479, %456
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #9
  br label %485

485:                                              ; preds = %484, %455
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #9
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  br label %486

486:                                              ; preds = %485, %438
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %487

487:                                              ; preds = %486, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %51) #9
  br label %488

488:                                              ; preds = %487, %374, %303, %234, %165, %74
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  br label %489

489:                                              ; preds = %488
  %490 = load ptr, ptr %4, align 8
  %491 = load i32, ptr %5, align 4
  %492 = insertvalue { ptr, i32 } poison, ptr %490, 0
  %493 = insertvalue { ptr, i32 } %492, i32 %491, 1
  resume { ptr, i32 } %493

494:                                              ; preds = %481
  unreachable
}

declare void @_Z10get_localePKcS0_(ptr dead_on_unwind writable sret(%"class.std::locale") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNKSt6localeeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

declare void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #7 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #7 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #7 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 8}
!12 = !{!"_ZTS2tm", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !13, i64 40, !6, i64 48}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !10, i64 4}
!15 = !{!12, !10, i64 0}


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

%"class.std::chrono::duration" = type { i64 }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%"class.testing::AssertionResult" = type { i8, %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::locale" = type { ptr }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"class.fmt::v10::basic_format_string.70" = type { %"class.fmt::v10::basic_string_view" }
%"class.std::chrono::duration.71" = type { i64 }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.fmt::v10::basic_format_string.68" = type { %"class.fmt::v10::basic_string_view" }
%"class.std::chrono::duration.69" = type { i64 }
%"class.fmt::v10::basic_format_string.36" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.79" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [8 x i8], align 1
@__const._ZN23chrono_test_locale_Test8TestBodyEv.sec = external hidden unnamed_addr constant %"class.std::chrono::duration", align 8
@.str.511 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z7make_tmv(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9make_houri(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z11make_minutei(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z11make_secondi(ptr dead_on_unwind noalias writable sret(%struct.tm) align 8, i32 noundef) 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 noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6locale7classicEv() local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

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

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #2

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl60ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #0 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) unnamed_addr #6 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN23chrono_test_locale_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::locale", align 8
  %3 = alloca %"class.std::locale", align 8
  %4 = alloca %"class.testing::AssertionResult", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %struct.tm, align 8
  %7 = alloca %"class.fmt::v10::basic_string_view", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.fmt::v10::basic_format_string.70", align 8
  %10 = alloca %"class.std::chrono::duration.71", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.testing::Message", align 8
  %13 = alloca %"class.testing::internal::AssertHelper", align 8
  %14 = alloca %"class.std::locale", align 8
  %15 = alloca %"class.testing::AssertionResult", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %struct.tm, align 8
  %18 = alloca %"class.fmt::v10::basic_string_view", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.fmt::v10::basic_format_string.70", align 8
  %21 = alloca %"class.std::chrono::duration.71", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.testing::Message", align 8
  %24 = alloca %"class.testing::internal::AssertHelper", align 8
  %25 = alloca %"class.std::locale", align 8
  %26 = alloca %"class.testing::AssertionResult", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %struct.tm, align 8
  %29 = alloca %"class.fmt::v10::basic_string_view", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.fmt::v10::basic_format_string.68", align 8
  %32 = alloca %"class.std::chrono::duration.69", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.testing::Message", align 8
  %35 = alloca %"class.testing::internal::AssertHelper", align 8
  %36 = alloca %"class.std::locale", align 8
  %37 = alloca %"class.testing::AssertionResult", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %struct.tm, align 8
  %40 = alloca %"class.fmt::v10::basic_string_view", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.fmt::v10::basic_format_string.36", align 8
  %43 = alloca %"class.std::chrono::duration", align 8
  %44 = alloca i32, align 4
  %45 = alloca %"class.testing::Message", align 8
  %46 = alloca %"class.testing::internal::AssertHelper", align 8
  %47 = alloca %struct.tm, align 8
  %48 = alloca %"class.std::chrono::duration", align 8
  %49 = alloca %"class.std::locale", align 8
  %50 = alloca %"class.testing::AssertionResult", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.fmt::v10::basic_string_view", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.fmt::v10::basic_format_string.79", align 8
  %55 = alloca %"class.testing::Message", align 8
  %56 = alloca %"class.testing::internal::AssertHelper", align 8
  %57 = alloca %"class.std::locale", align 8
  %58 = alloca %"class.testing::AssertionResult", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.fmt::v10::basic_string_view", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.fmt::v10::basic_format_string.79", align 8
  %63 = alloca %"class.testing::Message", align 8
  %64 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #8
  call void @_Z10get_localePKcS0_(ptr dead_on_unwind nonnull writable sret(%"class.std::locale") align 8 %2, ptr noundef nonnull @.str.498, ptr noundef null)
  %65 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6locale7classicEv()
          to label %66 unwind label %68

66:                                               ; preds = %1
  %67 = call noundef zeroext i1 @_ZNKSt6localeeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  br i1 %67, label %324, label %70

68:                                               ; preds = %1
  %69 = landingpad { ptr, i32 }
          cleanup
  br label %328

70:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull @.str.498)
          to label %71 unwind label %84

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6) #8
  call void @_Z9make_houri(ptr dead_on_unwind nonnull writable sret(%struct.tm) align 8 %6, i32 noundef 14)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull @.str.143)
          to label %72 unwind label %86

72:                                               ; preds = %71
  %73 = load ptr, ptr %7, align 8
  %74 = getelementptr inbounds i8, ptr %7, i64 8
  %75 = load i64, ptr %74, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(56) %6, ptr %73, i64 %75, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %76 unwind label %86

76:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 1 dereferenceable(8) @.str.501)
          to label %77 unwind label %88

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  store i32 14, ptr %11, align 4, !tbaa !5
  call void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %78 = load ptr, ptr %9, align 8
  %79 = getelementptr inbounds i8, ptr %9, i64 8
  %80 = load i64, ptr %79, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr %78, i64 %80, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %81 unwind label %90

81:                                               ; preds = %77
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %4, ptr noundef nonnull @.str.499, ptr noundef nonnull @.str.500, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %82 unwind label %92

82:                                               ; preds = %81
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  %83 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
  br i1 %83, label %111, label %97

84:                                               ; preds = %70
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %126

86:                                               ; preds = %72, %71
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %96

88:                                               ; preds = %76
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %95

90:                                               ; preds = %77
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %94

92:                                               ; preds = %81
  %93 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %94

94:                                               ; preds = %92, %90
  %.pn = phi { ptr, i32 } [ %93, %92 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  br label %95

95:                                               ; preds = %94, %88
  %.pn.pn = phi { ptr, i32 } [ %.pn, %94 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %96

96:                                               ; preds = %95, %86
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %95 ], [ %87, %86 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %125

97:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %98 unwind label %103

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  %99 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %100 unwind label %105

100:                                              ; preds = %98
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 614, ptr noundef %99)
          to label %101 unwind label %105

101:                                              ; preds = %100
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %102 unwind label %107

102:                                              ; preds = %101
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %111

103:                                              ; preds = %97
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %110

105:                                              ; preds = %100, %98
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %109

107:                                              ; preds = %101
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  br label %109

109:                                              ; preds = %107, %105
  %.pn54 = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br label %110

110:                                              ; preds = %109, %103
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %109 ], [ %104, %103 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  br label %125

111:                                              ; preds = %82, %102
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull @.str.498)
          to label %112 unwind label %127

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %17) #8
  call void @_Z9make_houri(ptr dead_on_unwind nonnull writable sret(%struct.tm) align 8 %17, i32 noundef 14)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull @.str.145)
          to label %113 unwind label %129

113:                                              ; preds = %112
  %114 = load ptr, ptr %18, align 8
  %115 = getelementptr inbounds i8, ptr %18, i64 8
  %116 = load i64, ptr %115, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(56) %17, ptr %114, i64 %116, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %117 unwind label %129

117:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 1 dereferenceable(8) @.str.504)
          to label %118 unwind label %131

118:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #8
  store i32 14, ptr %22, align 4, !tbaa !5
  call void @_ZNSt6chrono8durationIlSt5ratioILl3600ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
  %119 = load ptr, ptr %20, align 8
  %120 = getelementptr inbounds i8, ptr %20, i64 8
  %121 = load i64, ptr %120, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr %119, i64 %121, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %122 unwind label %133

122:                                              ; preds = %118
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %15, ptr noundef nonnull @.str.502, ptr noundef nonnull @.str.503, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %123 unwind label %135

123:                                              ; preds = %122
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  %124 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  br i1 %124, label %154, label %140

125:                                              ; preds = %110, %96
  %.pn54.pn.pn = phi { ptr, i32 } [ %.pn54.pn, %110 ], [ %.pn.pn.pn, %96 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  br label %126

126:                                              ; preds = %125, %84
  %.pn54.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn, %125 ], [ %85, %84 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  br label %328

127:                                              ; preds = %111
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %169

129:                                              ; preds = %113, %112
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %139

131:                                              ; preds = %117
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %138

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

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

137:                                              ; preds = %135, %133
  %.pn59 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %138

138:                                              ; preds = %137, %131
  %.pn59.pn = phi { ptr, i32 } [ %.pn59, %137 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %139

139:                                              ; preds = %138, %129
  %.pn59.pn.pn = phi { ptr, i32 } [ %.pn59.pn, %138 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %168

140:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %141 unwind label %146

141:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %142 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
          to label %143 unwind label %148

143:                                              ; preds = %141
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %24, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 615, ptr noundef %142)
          to label %144 unwind label %148

144:                                              ; preds = %143
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %145 unwind label %150

145:                                              ; preds = %144
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %154

146:                                              ; preds = %140
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %153

148:                                              ; preds = %143, %141
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %144
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  br label %152

152:                                              ; preds = %150, %148
  %.pn63 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br label %153

153:                                              ; preds = %152, %146
  %.pn63.pn = phi { ptr, i32 } [ %.pn63, %152 ], [ %147, %146 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br label %168

154:                                              ; preds = %123, %145
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull @.str.498)
          to label %155 unwind label %170

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %28) #8
  call void @_Z11make_minutei(ptr dead_on_unwind nonnull writable sret(%struct.tm) align 8 %28, i32 noundef 42)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull @.str.147)
          to label %156 unwind label %172

156:                                              ; preds = %155
  %157 = load ptr, ptr %29, align 8
  %158 = getelementptr inbounds i8, ptr %29, i64 8
  %159 = load i64, ptr %158, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(56) %28, ptr %157, i64 %159, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %160 unwind label %172

160:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 1 dereferenceable(8) @.str.507)
          to label %161 unwind label %174

161:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #8
  store i32 42, ptr %33, align 4, !tbaa !5
  call void @_ZNSt6chrono8durationIlSt5ratioILl60ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(4) %33)
  %162 = load ptr, ptr %31, align 8
  %163 = getelementptr inbounds i8, ptr %31, i64 8
  %164 = load i64, ptr %163, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr %162, i64 %164, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %165 unwind label %176

165:                                              ; preds = %161
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %26, ptr noundef nonnull @.str.505, ptr noundef nonnull @.str.506, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %166 unwind label %178

166:                                              ; preds = %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  %167 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
  br i1 %167, label %197, label %183

168:                                              ; preds = %153, %139
  %.pn63.pn.pn = phi { ptr, i32 } [ %.pn63.pn, %153 ], [ %.pn59.pn.pn, %139 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br label %169

169:                                              ; preds = %168, %127
  %.pn63.pn.pn.pn = phi { ptr, i32 } [ %.pn63.pn.pn, %168 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %328

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

172:                                              ; preds = %156, %155
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %182

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

176:                                              ; preds = %161
  %177 = landingpad { ptr, i32 }
          cleanup
  br label %180

178:                                              ; preds = %165
  %179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %180

180:                                              ; preds = %178, %176
  %.pn68 = phi { ptr, i32 } [ %179, %178 ], [ %177, %176 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %181

181:                                              ; preds = %180, %174
  %.pn68.pn = phi { ptr, i32 } [ %.pn68, %180 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %182

182:                                              ; preds = %181, %172
  %.pn68.pn.pn = phi { ptr, i32 } [ %.pn68.pn, %181 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %211

183:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %184 unwind label %189

184:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  %185 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %186 unwind label %191

186:                                              ; preds = %184
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %35, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 616, ptr noundef %185)
          to label %187 unwind label %191

187:                                              ; preds = %186
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %188 unwind label %193

188:                                              ; preds = %187
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  br label %197

189:                                              ; preds = %183
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %196

191:                                              ; preds = %186, %184
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %195

193:                                              ; preds = %187
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %195

195:                                              ; preds = %193, %191
  %.pn72 = phi { ptr, i32 } [ %194, %193 ], [ %192, %191 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br label %196

196:                                              ; preds = %195, %189
  %.pn72.pn = phi { ptr, i32 } [ %.pn72, %195 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  br label %211

197:                                              ; preds = %166, %188
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull @.str.498)
          to label %198 unwind label %213

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %39) #8
  call void @_Z11make_secondi(ptr dead_on_unwind nonnull writable sret(%struct.tm) align 8 %39, i32 noundef 42)
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull @.str.149)
          to label %199 unwind label %215

199:                                              ; preds = %198
  %200 = load ptr, ptr %40, align 8
  %201 = getelementptr inbounds i8, ptr %40, i64 8
  %202 = load i64, ptr %201, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(56) %39, ptr %200, i64 %202, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %203 unwind label %215

203:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 1 dereferenceable(8) @.str.510)
          to label %204 unwind label %217

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #8
  store i32 42, ptr %44, align 4, !tbaa !5
  call void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(4) %44)
  %205 = load ptr, ptr %42, align 8
  %206 = getelementptr inbounds i8, ptr %42, i64 8
  %207 = load i64, ptr %206, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS9_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSM_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(8) %36, ptr %205, i64 %207, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %208 unwind label %219

208:                                              ; preds = %204
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %37, ptr noundef nonnull @.str.508, ptr noundef nonnull @.str.509, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %209 unwind label %221

209:                                              ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  %210 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
  br i1 %210, label %240, label %226

211:                                              ; preds = %196, %182
  %.pn72.pn.pn = phi { ptr, i32 } [ %.pn72.pn, %196 ], [ %.pn68.pn.pn, %182 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br label %212

212:                                              ; preds = %211, %170
  %.pn72.pn.pn.pn = phi { ptr, i32 } [ %.pn72.pn.pn, %211 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %328

213:                                              ; preds = %197
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %258

215:                                              ; preds = %199, %198
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %225

217:                                              ; preds = %203
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %224

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

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

223:                                              ; preds = %221, %219
  %.pn77 = phi { ptr, i32 } [ %222, %221 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %224

224:                                              ; preds = %223, %217
  %.pn77.pn = phi { ptr, i32 } [ %.pn77, %223 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %225

225:                                              ; preds = %224, %215
  %.pn77.pn.pn = phi { ptr, i32 } [ %.pn77.pn, %224 ], [ %216, %215 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %257

226:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %227 unwind label %232

227:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #8
  %228 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %229 unwind label %234

229:                                              ; preds = %227
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %46, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 617, ptr noundef %228)
          to label %230 unwind label %234

230:                                              ; preds = %229
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %231 unwind label %236

231:                                              ; preds = %230
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  br label %240

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

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

236:                                              ; preds = %230
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  br label %238

238:                                              ; preds = %236, %234
  %.pn81 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br label %239

239:                                              ; preds = %238, %232
  %.pn81.pn = phi { ptr, i32 } [ %.pn81, %238 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  br label %257

240:                                              ; preds = %209, %231
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %47) #8
  call void @_Z7make_tmv(ptr dead_on_unwind nonnull writable sret(%struct.tm) align 8 %47)
  %241 = getelementptr inbounds i8, ptr %47, i64 8
  store i32 3, ptr %241, align 8, !tbaa !9
  %242 = getelementptr inbounds i8, ptr %47, i64 4
  store i32 25, ptr %242, align 4, !tbaa !13
  store i32 45, ptr %47, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  %243 = load i64, ptr @__const._ZN23chrono_test_locale_Test8TestBodyEv.sec, align 8
  store i64 %243, ptr %48, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull @.str.498)
          to label %244 unwind label %259

244:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull @.str.160)
          to label %245 unwind label %261

245:                                              ; preds = %244
  %246 = load ptr, ptr %52, align 8
  %247 = getelementptr inbounds i8, ptr %52, i64 8
  %248 = load i64, ptr %247, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(56) %47, ptr %246, i64 %248, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %249 unwind label %261

249:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 1 dereferenceable(7) @.str.513)
          to label %250 unwind label %263

250:                                              ; preds = %249
  %251 = load ptr, ptr %54, align 8
  %252 = getelementptr inbounds i8, ptr %54, i64 8
  %253 = load i64, ptr %252, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSA_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSN_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(8) %49, ptr %251, i64 %253, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %254 unwind label %263

254:                                              ; preds = %250
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %50, ptr noundef nonnull @.str.511, ptr noundef nonnull @.str.512, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %255 unwind label %265

255:                                              ; preds = %254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  %256 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
  br i1 %256, label %283, label %269

257:                                              ; preds = %239, %225
  %.pn81.pn.pn = phi { ptr, i32 } [ %.pn81.pn, %239 ], [ %.pn77.pn.pn, %225 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %258

258:                                              ; preds = %257, %213
  %.pn81.pn.pn.pn = phi { ptr, i32 } [ %.pn81.pn.pn, %257 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %328

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

261:                                              ; preds = %245, %244
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %268

263:                                              ; preds = %250, %249
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %254
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %267

267:                                              ; preds = %265, %263
  %.pn86 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %268

268:                                              ; preds = %267, %261
  %.pn86.pn = phi { ptr, i32 } [ %.pn86, %267 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  br label %297

269:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %270 unwind label %275

270:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  %271 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %272 unwind label %277

272:                                              ; preds = %270
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 623, ptr noundef %271)
          to label %273 unwind label %277

273:                                              ; preds = %272
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %274 unwind label %279

274:                                              ; preds = %273
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  br label %283

275:                                              ; preds = %269
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %282

277:                                              ; preds = %272, %270
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %281

279:                                              ; preds = %273
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br label %281

281:                                              ; preds = %279, %277
  %.pn89 = phi { ptr, i32 } [ %280, %279 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %282

282:                                              ; preds = %281, %275
  %.pn89.pn = phi { ptr, i32 } [ %.pn89, %281 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  br label %297

283:                                              ; preds = %255, %274
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  invoke void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull @.str.498)
          to label %284 unwind label %299

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #8
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull @.str.158)
          to label %285 unwind label %301

285:                                              ; preds = %284
  %286 = load ptr, ptr %60, align 8
  %287 = getelementptr inbounds i8, ptr %60, i64 8
  %288 = load i64, ptr %287, align 8
  invoke void @_Z9format_tmB5cxx11RK2tmN3fmt3v1017basic_string_viewIcEERKSt6locale(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(56) %47, ptr %286, i64 %288, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %289 unwind label %301

289:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESE_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(7) @.str.516)
          to label %290 unwind label %303

290:                                              ; preds = %289
  %291 = load ptr, ptr %62, align 8
  %292 = getelementptr inbounds i8, ptr %62, i64 8
  %293 = load i64, ptr %292, align 8
  invoke void @_ZN3fmt3v106formatISt6localeJRNSt6chrono8durationIlSt5ratioILl1ELl1EEEEETnNSt9enable_ifIXsr6detail9is_localeIT_EE5valueEiE4typeELi0EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSA_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSN_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr %291, i64 %293, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %294 unwind label %303

294:                                              ; preds = %290
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_TnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSI_RKSA_RKSB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %58, ptr noundef nonnull @.str.514, ptr noundef nonnull @.str.515, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %295 unwind label %305

295:                                              ; preds = %294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  %296 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %58)
  br i1 %296, label %323, label %309

297:                                              ; preds = %282, %268
  %.pn89.pn.pn = phi { ptr, i32 } [ %.pn89.pn, %282 ], [ %.pn86.pn, %268 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br label %298

298:                                              ; preds = %297, %259
  %.pn89.pn.pn.pn = phi { ptr, i32 } [ %.pn89.pn.pn, %297 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  br label %327

299:                                              ; preds = %283
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %326

301:                                              ; preds = %285, %284
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %308

303:                                              ; preds = %290, %289
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %307

305:                                              ; preds = %294
  %306 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %307

307:                                              ; preds = %305, %303
  %.pn94 = phi { ptr, i32 } [ %306, %305 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %308

308:                                              ; preds = %307, %301
  %.pn94.pn = phi { ptr, i32 } [ %.pn94, %307 ], [ %302, %301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  br label %325

309:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #8
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %310 unwind label %315

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #8
  %311 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %312 unwind label %317

312:                                              ; preds = %310
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %64, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 624, ptr noundef %311)
          to label %313 unwind label %317

313:                                              ; preds = %312
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %314 unwind label %319

314:                                              ; preds = %313
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  br label %323

315:                                              ; preds = %309
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %322

317:                                              ; preds = %312, %310
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %321

319:                                              ; preds = %313
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  br label %321

321:                                              ; preds = %319, %317
  %.pn97 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %322

322:                                              ; preds = %321, %315
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %321 ], [ %316, %315 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  br label %325

323:                                              ; preds = %295, %314
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #8
  br label %324

324:                                              ; preds = %66, %323
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  ret void

325:                                              ; preds = %322, %308
  %.pn97.pn.pn = phi { ptr, i32 } [ %.pn97.pn, %322 ], [ %.pn94.pn, %308 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  br label %326

326:                                              ; preds = %325, %299
  %.pn97.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn, %325 ], [ %300, %299 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  br label %327

327:                                              ; preds = %326, %298
  %.pn97.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn.pn, %326 ], [ %.pn89.pn.pn.pn, %298 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #8
  br label %328

328:                                              ; preds = %327, %258, %212, %169, %126, %68
  %.pn97.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn.pn.pn, %327 ], [ %.pn81.pn.pn.pn, %258 ], [ %.pn72.pn.pn.pn, %212 ], [ %.pn63.pn.pn.pn, %169 ], [ %.pn54.pn.pn.pn, %126 ], [ %69, %68 ]
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn97.pn.pn.pn.pn.pn
}

declare void @_Z10get_localePKcS0_(ptr dead_on_unwind writable sret(%"class.std::locale") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNKSt6localeeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

declare void @_ZNSt6localeC1EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl3600ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #6 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl60ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #6 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJNSt6chrono8durationIlSt5ratioILl1ELl1EEEEEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8)) unnamed_addr #6 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 8}
!10 = !{!"_ZTS2tm", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !11, i64 40, !12, i64 48}
!11 = !{!"long", !7, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!10, !6, i64 4}
!14 = !{!10, !6, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass