3
3
; RUN: llc -mtriple=aarch64 -asm-verbose=0 -aarch64-authenticated-lr-check-method=high-bits-notbi < %s | FileCheck -DAUTIASP="hint #29" --check-prefixes=COMMON,BITS-NOTBI,BRK %s
4
4
; RUN: llc -mtriple=aarch64 -asm-verbose=0 -aarch64-authenticated-lr-check-method=xpac-hint < %s | FileCheck -DAUTIASP="hint #29" -DXPACLRI="hint #7" --check-prefixes=COMMON,XPAC,BRK %s
5
5
; RUN: llc -mtriple=aarch64 -asm-verbose=0 -aarch64-authenticated-lr-check-method=xpac-hint -mattr=v8.3a < %s | FileCheck -DAUTIASP="autiasp" -DXPACLRI="xpaclri" --check-prefixes=COMMON,XPAC,BRK %s
6
+ ; RUN: llc -mtriple=aarch64 -asm-verbose=0 -aarch64-authenticated-lr-check-method=xpac -mattr=v8.3a < %s | FileCheck -DAUTIASP="autiasp" --check-prefixes=COMMON,XPAC83,BRK %s
6
7
7
8
define i32 @tailcall_direct () "sign-return-address" ="non-leaf" {
8
9
; COMMON-LABEL: tailcall_direct:
@@ -21,6 +22,11 @@ define i32 @tailcall_direct() "sign-return-address"="non-leaf" {
21
22
; XPAC-NEXT: cmp x30, x16
22
23
; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
23
24
;
25
+ ; XPAC83-NEXT: mov x16, x30
26
+ ; XPAC83-NEXT: xpaci x16
27
+ ; XPAC83-NEXT: cmp x30, x16
28
+ ; XPAC83-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
29
+ ;
24
30
; BRK-NEXT: brk #0xc470
25
31
; BRK-NEXT: .[[GOOD]]:
26
32
; COMMON-NEXT: b callee
@@ -46,6 +52,11 @@ define i32 @tailcall_indirect(ptr %fptr) "sign-return-address"="non-leaf" {
46
52
; XPAC-NEXT: cmp x30, x16
47
53
; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
48
54
;
55
+ ; XPAC83-NEXT: mov x16, x30
56
+ ; XPAC83-NEXT: xpaci x16
57
+ ; XPAC83-NEXT: cmp x30, x16
58
+ ; XPAC83-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
59
+ ;
49
60
; BRK-NEXT: brk #0xc470
50
61
; BRK-NEXT: .[[GOOD]]:
51
62
; COMMON-NEXT: br x0
@@ -87,6 +98,11 @@ define i32 @tailcall_direct_noframe_sign_all() "sign-return-address"="all" {
87
98
; XPAC-NEXT: cmp x30, x16
88
99
; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
89
100
;
101
+ ; XPAC83-NEXT: mov x16, x30
102
+ ; XPAC83-NEXT: xpaci x16
103
+ ; XPAC83-NEXT: cmp x30, x16
104
+ ; XPAC83-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
105
+ ;
90
106
; BRK-NEXT: brk #0xc470
91
107
; BRK-NEXT: .[[GOOD]]:
92
108
; COMMON-NEXT: b callee
@@ -111,6 +127,11 @@ define i32 @tailcall_indirect_noframe_sign_all(ptr %fptr) "sign-return-address"=
111
127
; XPAC-NEXT: cmp x30, x16
112
128
; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
113
129
;
130
+ ; XPAC83-NEXT: mov x16, x30
131
+ ; XPAC83-NEXT: xpaci x16
132
+ ; XPAC83-NEXT: cmp x30, x16
133
+ ; XPAC83-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
134
+ ;
114
135
; BRK-NEXT: brk #0xc470
115
136
; BRK-NEXT: .[[GOOD]]:
116
137
; COMMON-NEXT: br x0
@@ -148,6 +169,11 @@ define i32 @tailcall_two_branches(i1 %0) "sign-return-address"="all" {
148
169
; XPAC-NEXT: cmp x30, x16
149
170
; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
150
171
;
172
+ ; XPAC83-NEXT: mov x16, x30
173
+ ; XPAC83-NEXT: xpaci x16
174
+ ; XPAC83-NEXT: cmp x30, x16
175
+ ; XPAC83-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
176
+ ;
151
177
; BRK-NEXT: brk #0xc470
152
178
; BRK-NEXT: .[[GOOD]]:
153
179
; COMMON-NEXT: b callee
0 commit comments