141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 | 
						|
 | 
						|
define void @nop_test() {
 | 
						|
entry:
 | 
						|
; CHECK-LABEL: nop_test:
 | 
						|
 | 
						|
; 2
 | 
						|
; CHECK:      bcr 0, %r0
 | 
						|
 | 
						|
; 4
 | 
						|
; CHECK:      bc 0, 0
 | 
						|
 | 
						|
; 6
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
 | 
						|
; 8
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bcr 0, %r0
 | 
						|
 | 
						|
; 10
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bc 0, 0
 | 
						|
 | 
						|
; 12
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
 | 
						|
; 14
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bcr 0, %r0
 | 
						|
 | 
						|
; 16
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bc 0, 0
 | 
						|
 | 
						|
; 18
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
 | 
						|
; 20
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bcr 0, %r0
 | 
						|
 | 
						|
; 22
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bc 0, 0
 | 
						|
 | 
						|
; 24
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
 | 
						|
; 26
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bcr 0, %r0
 | 
						|
 | 
						|
; 28
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      bc 0, 0
 | 
						|
 | 
						|
; 30
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
; CHECK:      brcl 0, [[LAB:.Ltmp[0-9]+]]
 | 
						|
; CHECK-NEXT: [[LAB]]:
 | 
						|
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  0, i32  0)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  2, i32  2)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  4, i32  4)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  6, i32  6)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  8, i32  8)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 10, i32 10)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 12, i32 12)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 14, i32 14)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 16)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 18, i32 18)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 20, i32 20)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 22, i32 22)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 24, i32 24)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 26, i32 26)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 28, i32 28)
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 30, i32 30)
 | 
						|
; Add an extra stackmap with a zero-length shadow to thwart the shadow
 | 
						|
; optimization. This will force all bytes of the previous shadow to be
 | 
						|
; padded with nops.
 | 
						|
  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 31, i32 0)
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
declare void @llvm.experimental.stackmap(i64, i32, ...)
 |