47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
 | 
						|
; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P9
 | 
						|
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
 | 
						|
; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10
 | 
						|
 | 
						|
@newname = dso_local alias i32 (...), bitcast (i32 ()* @oldname to i32 (...)*)
 | 
						|
 | 
						|
; Function Attrs: noinline nounwind optnone
 | 
						|
define dso_local signext i32 @oldname() #0 {
 | 
						|
entry:
 | 
						|
  ret i32 55
 | 
						|
}
 | 
						|
 | 
						|
; Function Attrs: noinline nounwind optnone
 | 
						|
define dso_local signext i32 @caller() #0 {
 | 
						|
; #P9-LABEL: caller
 | 
						|
; #P9:       bl newname
 | 
						|
; #P9-NOT:   nop
 | 
						|
; #P9:       blr
 | 
						|
; #P10-LABEL: caller
 | 
						|
; #P10:       bl newname@notoc
 | 
						|
; #P10-NOT:   nop
 | 
						|
; #P10:       blr
 | 
						|
entry:
 | 
						|
  %call = call signext i32 bitcast (i32 (...)* @newname to i32 ()*)()
 | 
						|
  ret i32 %call
 | 
						|
}
 | 
						|
 | 
						|
; Function Attrs: noinline nounwind optnone -pcrelative-memops
 | 
						|
; This caller does not use PC Relative memops
 | 
						|
define dso_local signext i32 @caller_nopcrel() #1 {
 | 
						|
; #P9-LABEL: caller_nopcrel
 | 
						|
; #P9:       bl newname
 | 
						|
; #P9-NOT:   nop
 | 
						|
; #P9:       blr
 | 
						|
; #P10-LABEL: caller_nopcrel
 | 
						|
; #P10:       bl newname
 | 
						|
; #P10-NEXT:  nop
 | 
						|
; #P10:       blr
 | 
						|
entry:
 | 
						|
  %call = call signext i32 bitcast (i32 (...)* @newname to i32 ()*)()
 | 
						|
  ret i32 %call
 | 
						|
}
 | 
						|
 | 
						|
attributes #0 = { noinline nounwind optnone }
 | 
						|
attributes #1 = { noinline nounwind optnone "target-features"="-pcrelative-memops" }
 |