25 lines
		
	
	
		
			640 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			640 B
		
	
	
	
		
			LLVM
		
	
	
	
; DISABLED: llc < %s -march=mipsel -mips-fix-global-base-reg=false | FileCheck %s 
 | 
						|
; RUN: false
 | 
						|
; XFAIL: *
 | 
						|
 | 
						|
@g0 = external global i32
 | 
						|
@g1 = external global i32
 | 
						|
@g2 = external global i32
 | 
						|
 | 
						|
define void @foo1() nounwind {
 | 
						|
entry:
 | 
						|
; CHECK-NOT:    .cpload
 | 
						|
; CHECK-NOT:    .cprestore
 | 
						|
; CHECK: lui    $[[R0:[0-9]+]], %hi(_gp_disp)
 | 
						|
; CHECK: addiu  $[[R1:[0-9]+]], $[[R0]], %lo(_gp_disp)
 | 
						|
; CHECK: addu   $[[GP:[0-9]+]], $[[R1]], $25
 | 
						|
; CHECK: lw     ${{[0-9]+}}, %call16(foo2)($[[GP]])
 | 
						|
 | 
						|
  tail call void @foo2(i32* @g0) nounwind
 | 
						|
  tail call void @foo2(i32* @g1) nounwind
 | 
						|
  tail call void @foo2(i32* @g2) nounwind
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
declare void @foo2(i32*)
 |