43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
		
			Executable File
		
	
	
| ; RUN: llc %s -O0 -march=sparc -mcpu=ut699 -o - | FileCheck %s
 | |
| ; RUN: llc %s -O0 -march=sparc -mcpu=leon3 -mattr=+insertnopload -o - | FileCheck %s
 | |
| 
 | |
| ; CHECK-LABEL: ld_float_test
 | |
| ; CHECK:       ld [%o0+%lo(.LCPI0_0)], %f0
 | |
| ; CHECK-NEXT:  nop
 | |
| define float @ld_float_test() #0 {
 | |
| entry:
 | |
|   %f = alloca float, align 4
 | |
|   store float 0x3FF3C08320000000, float* %f, align 4
 | |
|   %0 = load float, float* %f, align 4
 | |
|   ret float %0
 | |
| }
 | |
| 
 | |
| ; CHECK-LABEL: ld_i32_test
 | |
| ; CHECK:       ld [%o0], %o0
 | |
| ; CHECK-NEXT:  nop
 | |
| define i32 @ld_i32_test(i32 *%p) {
 | |
|   %res = load i32, i32* %p
 | |
|   ret i32 %res
 | |
| }
 | |
| 
 | |
| ; CHECK-LABEL: ld_inlineasm_test_1
 | |
| ; CHECK:       ld [%o0], %o0
 | |
| ; CHECK-NEXT:  !NO_APP
 | |
| ; CHECK-NEXT:  nop
 | |
| define float @ld_inlineasm_test_1(float* %a) {
 | |
| entry:
 | |
|   %res = tail call float asm sideeffect "ld [$1], $0", "=r,r"(float* %a)
 | |
| 
 | |
|   ret float %res
 | |
| }
 | |
| 
 | |
| ; CHECK-LABEL: ld_inlineasm_test_2
 | |
| ; CHECK:       ld [%o0], %o0
 | |
| ; CHECK-NEXT:  !NO_APP
 | |
| ; CHECK-NEXT:  nop
 | |
| define i32 @ld_inlineasm_test_2(i32* %a) {
 | |
| entry:
 | |
|   %res = tail call i32 asm sideeffect "ld [$1], $0", "=r,r"(i32* %a)
 | |
| 
 | |
|   ret i32 %res
 | |
| } |