11; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=0 -verify-machineinstrs \
2- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
2+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
33; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=0 -verify-machineinstrs \
44; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
55
66; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=1 -verify-machineinstrs \
7- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
7+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
88; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=1 -verify-machineinstrs \
99; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
1010
1111; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 -global-isel-abort=1 -verify-machineinstrs \
12- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
12+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
1313; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 -global-isel-abort=1 -verify-machineinstrs \
1414; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
1515
1919
2020define i32 @get_globalvar () {
2121; CHECK-LABEL: get_globalvar:
22- ; CHECK: adrp x16, :got_auth:var
23- ; CHECK-NEXT: add x16, x16, :got_auth_lo12:var
24- ; CHECK-NEXT: ldr x8, [x16]
25- ; CHECK-NEXT: autda x8, x16
22+ ; CHECK: adrp x17, :got_auth:var
23+ ; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
24+ ; NOTRAP-NEXT: ldr x8, [x17]
25+ ; NOTRAP-NEXT: autda x8, x17
26+ ; TRAP-NEXT: ldr x16, [x17]
27+ ; TRAP-NEXT: autda x16, x17
28+ ; TRAP-NEXT: mov x17, x16
29+ ; TRAP-NEXT: xpacd x17
30+ ; TRAP-NEXT: cmp x16, x17
31+ ; TRAP-NEXT: b.eq .Lauth_success_0
32+ ; TRAP-NEXT: brk #0xc472
33+ ; TRAP-NEXT: .Lauth_success_0:
34+ ; TRAP-NEXT: mov x8, x16
2635; CHECK-NEXT: ldr w0, [x8]
2736; CHECK-NEXT: ret
2837
@@ -32,10 +41,19 @@ define i32 @get_globalvar() {
3241
3342define ptr @get_globalvaraddr () {
3443; CHECK-LABEL: get_globalvaraddr:
35- ; CHECK: adrp x16, :got_auth:var
36- ; CHECK-NEXT: add x16, x16, :got_auth_lo12:var
37- ; CHECK-NEXT: ldr x0, [x16]
38- ; CHECK-NEXT: autda x0, x16
44+ ; CHECK: adrp x17, :got_auth:var
45+ ; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
46+ ; NOTRAP-NEXT: ldr x0, [x17]
47+ ; NOTRAP-NEXT: autda x0, x17
48+ ; TRAP-NEXT: ldr x16, [x17]
49+ ; TRAP-NEXT: autda x16, x17
50+ ; TRAP-NEXT: mov x17, x16
51+ ; TRAP-NEXT: xpacd x17
52+ ; TRAP-NEXT: cmp x16, x17
53+ ; TRAP-NEXT: b.eq .Lauth_success_1
54+ ; TRAP-NEXT: brk #0xc472
55+ ; TRAP-NEXT: .Lauth_success_1:
56+ ; TRAP-NEXT: mov x0, x16
3957; CHECK-NEXT: ret
4058
4159 %val = load i32 , ptr @var
@@ -53,9 +71,9 @@ define ptr @resign_globalfunc() {
5371; TRAP-NEXT: mov x17, x16
5472; TRAP-NEXT: xpaci x17
5573; TRAP-NEXT: cmp x16, x17
56- ; TRAP-NEXT: b.eq .Lauth_success_0
74+ ; TRAP-NEXT: b.eq .Lauth_success_2
5775; TRAP-NEXT: brk #0xc470
58- ; TRAP-NEXT: .Lauth_success_0 :
76+ ; TRAP-NEXT: .Lauth_success_2 :
5977; CHECK-NEXT: mov x17, #42
6078; CHECK-NEXT: pacia x16, x17
6179; CHECK-NEXT: mov x0, x16
@@ -73,9 +91,9 @@ define ptr @resign_globalvar() {
7391; TRAP-NEXT: mov x17, x16
7492; TRAP-NEXT: xpacd x17
7593; TRAP-NEXT: cmp x16, x17
76- ; TRAP-NEXT: b.eq .Lauth_success_1
94+ ; TRAP-NEXT: b.eq .Lauth_success_3
7795; TRAP-NEXT: brk #0xc472
78- ; TRAP-NEXT: .Lauth_success_1 :
96+ ; TRAP-NEXT: .Lauth_success_3 :
7997; CHECK-NEXT: mov x17, #43
8098; CHECK-NEXT: pacdb x16, x17
8199; CHECK-NEXT: mov x0, x16
@@ -93,9 +111,9 @@ define ptr @resign_globalvar_offset() {
93111; TRAP-NEXT: mov x17, x16
94112; TRAP-NEXT: xpacd x17
95113; TRAP-NEXT: cmp x16, x17
96- ; TRAP-NEXT: b.eq .Lauth_success_2
114+ ; TRAP-NEXT: b.eq .Lauth_success_4
97115; TRAP-NEXT: brk #0xc472
98- ; TRAP-NEXT: .Lauth_success_2 :
116+ ; TRAP-NEXT: .Lauth_success_4 :
99117; CHECK-NEXT: add x16, x16, #16
100118; CHECK-NEXT: mov x17, #44
101119; CHECK-NEXT: pacda x16, x17
0 commit comments