mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	previous revision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22072 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			29 lines
		
	
	
		
			796 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			796 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; Test that the ToAsciiOptimizer works correctly
 | |
| ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*%ffs'
 | |
| 
 | |
| declare int %ffs(int)
 | |
| declare int %ffsl(int)
 | |
| declare int %ffsll(long)
 | |
| 
 | |
| %non_const = external global int
 | |
| 
 | |
| implementation   ; Functions:
 | |
| 
 | |
| int %main () {
 | |
|   %arg  = load int* %non_const
 | |
|   %val0 = call int %ffs(int %arg)
 | |
|   %val1 = call int %ffs(int 1)
 | |
|   %val2 = call int %ffs(int 2048)
 | |
|   %val3 = call int %ffsl(int 65536)
 | |
|   %val4 = call int %ffsll(long 1024)
 | |
|   %val5 = call int %ffsll(long 17179869184)
 | |
|   %val6 = call int %ffsll(long 1152921504606846976)
 | |
|   %rslt1 = add int %val1, %val2
 | |
|   %rslt2 = add int %val3, %val4
 | |
|   %rslt3 = add int %val5, %val6
 | |
|   %rslt4 = add int %rslt1, %rslt2
 | |
|   %rslt5 = add int %rslt4, %rslt3
 | |
|   %rslt6 = add int %rslt5, %val0
 | |
|   ret int %rslt5
 | |
| }
 |