25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; 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 }
 | |
| 
 |