18 lines
		
	
	
		
			580 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			580 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis
 | 
						|
 | 
						|
declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint)
 | 
						|
declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint)
 | 
						|
declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint)
 | 
						|
 | 
						|
%X = global sbyte 0
 | 
						|
%Y = global sbyte 12
 | 
						|
 | 
						|
void %zero_byte_test() {
 | 
						|
  ; These process zero bytes, so they are a noop.
 | 
						|
  call void %llvm.memmove.i32(sbyte* %X, sbyte* %Y, uint 0, uint 100)
 | 
						|
  call void %llvm.memcpy.i32(sbyte* %X, sbyte* %Y, uint 0, uint 100)
 | 
						|
  call void %llvm.memset.i32(sbyte* %X, ubyte 123, uint 0, uint 100)
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 |