; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --scrub-attributes
; RUN: opt -S -instcombine < %s | FileCheck %s

define dso_local void @test() local_unnamed_addr #0 {
; CHECK-LABEL: @test(
; CHECK-NEXT:    ret void
;
  %1 = tail call noalias align 16 dereferenceable_or_null(4) i8* @malloc(i64 4) #4
  %2 = tail call align 16 dereferenceable_or_null(6) i8* @realloc(i8* %1, i64 6) #4
  tail call void @free(i8* %2) #4
  ret void
}

declare dso_local noalias noundef i8* @malloc(i64 noundef) local_unnamed_addr #1
declare dso_local noalias noundef i8* @realloc(i8* nocapture, i64 noundef) local_unnamed_addr #2
declare dso_local void @free(i8* nocapture noundef) local_unnamed_addr #2
declare void @llvm.dbg.value(metadata, metadata, metadata) #3

attributes #0 = { mustprogress nounwind uwtable willreturn }
attributes #1 = { inaccessiblememonly mustprogress nofree nounwind willreturn }
attributes #2 = { inaccessiblemem_or_argmemonly mustprogress nounwind willreturn }
attributes #3 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #4 = { nounwind }

