30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -verify-machineinstrs | FileCheck %s
 | 
						|
; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -verify-machineinstrs | FileCheck %s
 | 
						|
; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 -verify-machineinstrs | FileCheck %s
 | 
						|
 | 
						|
target datalayout = "e-m:e-i64:64-n32:64"
 | 
						|
target triple = "powerpc64le-unknown-linux-gnu"
 | 
						|
 | 
						|
; Function Attrs: noinline nounwind
 | 
						|
define void @_Z23BuiltinLongJmpFunc1_bufv() #0 {
 | 
						|
entry:
 | 
						|
  call void @llvm.eh.sjlj.longjmp(i8* bitcast (void ()* @_Z23BuiltinLongJmpFunc1_bufv to i8*))
 | 
						|
  unreachable
 | 
						|
 | 
						|
; CHECK: @_Z23BuiltinLongJmpFunc1_bufv
 | 
						|
; CHECK: addis [[REG:[0-9]+]], 2, .LC0@toc@ha
 | 
						|
; CHECK: ld 31, 0([[REG]])
 | 
						|
; CHECK: ld [[REG2:[0-9]+]], 8([[REG]])
 | 
						|
; CHECK-DAG: ld 1, 16([[REG]])
 | 
						|
; CHECK-DAG: ld 30, 32([[REG]])
 | 
						|
; CHECK-DAG: ld 2, 24([[REG]])
 | 
						|
; CHECK-DAG: mtctr [[REG2]]
 | 
						|
; CHECK: bctr
 | 
						|
 | 
						|
return:                                           ; No predecessors!
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
; Function Attrs: noreturn nounwind
 | 
						|
declare void @llvm.eh.sjlj.longjmp(i8*) #1
 |