mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	The only generated code difference is that now we call memcpy when the size of the array is unknown. This matches GCC behavior and is better since the run time value can be arbitrarily large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42433 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			18 lines
		
	
	
		
			473 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			473 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; RUN: llvm-as < %s | llc -march=x86-64 | grep call.*memcpy | count 2
 | 
						|
 | 
						|
declare void @llvm.memcpy.i64(i8*, i8*, i64, i32)
 | 
						|
 | 
						|
define i8* @my_memcpy(i8* %a, i8* %b, i64 %n) {
 | 
						|
entry:
 | 
						|
	tail call void @llvm.memcpy.i64( i8* %a, i8* %b, i64 %n, i32 1 )
 | 
						|
	ret i8* %a
 | 
						|
}
 | 
						|
 | 
						|
define i8* @my_memcpy2(i64* %a, i64* %b, i64 %n) {
 | 
						|
entry:
 | 
						|
	%tmp14 = bitcast i64* %a to i8*
 | 
						|
	%tmp25 = bitcast i64* %b to i8*
 | 
						|
	tail call void @llvm.memcpy.i64(i8* %tmp14, i8* %tmp25, i64 %n, i32 8 )
 | 
						|
	ret i8* %tmp14
 | 
						|
}
 |