33; 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
44; 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
55; 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
67
78define i32 @tailcall_direct () "sign-return-address" ="non-leaf" {
89; COMMON-LABEL: tailcall_direct:
@@ -21,6 +22,11 @@ define i32 @tailcall_direct() "sign-return-address"="non-leaf" {
2122; XPAC-NEXT: cmp x30, x16
2223; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
2324;
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+ ;
2430; BRK-NEXT: brk #0xc470
2531; BRK-NEXT: .[[GOOD]]:
2632; COMMON-NEXT: b callee
@@ -46,6 +52,11 @@ define i32 @tailcall_indirect(ptr %fptr) "sign-return-address"="non-leaf" {
4652; XPAC-NEXT: cmp x30, x16
4753; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
4854;
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+ ;
4960; BRK-NEXT: brk #0xc470
5061; BRK-NEXT: .[[GOOD]]:
5162; COMMON-NEXT: br x0
@@ -87,6 +98,11 @@ define i32 @tailcall_direct_noframe_sign_all() "sign-return-address"="all" {
8798; XPAC-NEXT: cmp x30, x16
8899; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
89100;
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+ ;
90106; BRK-NEXT: brk #0xc470
91107; BRK-NEXT: .[[GOOD]]:
92108; COMMON-NEXT: b callee
@@ -111,6 +127,11 @@ define i32 @tailcall_indirect_noframe_sign_all(ptr %fptr) "sign-return-address"=
111127; XPAC-NEXT: cmp x30, x16
112128; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
113129;
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+ ;
114135; BRK-NEXT: brk #0xc470
115136; BRK-NEXT: .[[GOOD]]:
116137; COMMON-NEXT: br x0
@@ -148,6 +169,11 @@ define i32 @tailcall_two_branches(i1 %0) "sign-return-address"="all" {
148169; XPAC-NEXT: cmp x30, x16
149170; XPAC-NEXT: b.eq .[[GOOD:Lauth_success[_0-9]+]]
150171;
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+ ;
151177; BRK-NEXT: brk #0xc470
152178; BRK-NEXT: .[[GOOD]]:
153179; COMMON-NEXT: b callee
0 commit comments