1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs | FileCheck %s --check-prefixes=ALL,NOFPAC
3
- ; RUN: llc < %s -mtriple arm64e-apple-darwin -mattr=+fpac -verify-machineinstrs | FileCheck %s --check-prefixes=ALL,FPAC
2
+ ; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs | FileCheck %s -DL="L" --check-prefixes=ALL,NOFPAC
3
+ ; RUN: llc < %s -mtriple arm64e-apple-darwin -mattr=+fpac -verify-machineinstrs | FileCheck %s -DL="L" --check-prefixes=ALL,FPAC
4
+ ; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs | FileCheck %s -DL=".L" --check-prefixes=ALL,NOFPAC
5
+ ; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -mattr=+fpac -verify-machineinstrs | FileCheck %s -DL=".L" --check-prefixes=ALL,FPAC
4
6
5
7
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
6
8
7
9
define i64 @test_auth_ia (i64 %arg , i64 %arg1 ) {
8
10
; ALL-LABEL: test_auth_ia:
9
- ; ALL: ; %bb.0:
11
+ ; ALL: %bb.0:
10
12
; ALL-NEXT: mov x16, x0
11
13
; ALL-NEXT: autia x16, x1
12
14
; ALL-NEXT: mov x0, x16
@@ -17,7 +19,7 @@ define i64 @test_auth_ia(i64 %arg, i64 %arg1) {
17
19
18
20
define i64 @test_auth_ia_zero (i64 %arg ) {
19
21
; ALL-LABEL: test_auth_ia_zero:
20
- ; ALL: ; %bb.0:
22
+ ; ALL: %bb.0:
21
23
; ALL-NEXT: mov x16, x0
22
24
; ALL-NEXT: autiza x16
23
25
; ALL-NEXT: mov x0, x16
@@ -28,7 +30,7 @@ define i64 @test_auth_ia_zero(i64 %arg) {
28
30
29
31
define i64 @test_auth_ib (i64 %arg , i64 %arg1 ) {
30
32
; ALL-LABEL: test_auth_ib:
31
- ; ALL: ; %bb.0:
33
+ ; ALL: %bb.0:
32
34
; ALL-NEXT: mov x16, x0
33
35
; ALL-NEXT: autib x16, x1
34
36
; ALL-NEXT: mov x0, x16
@@ -39,7 +41,7 @@ define i64 @test_auth_ib(i64 %arg, i64 %arg1) {
39
41
40
42
define i64 @test_auth_ib_zero (i64 %arg ) {
41
43
; ALL-LABEL: test_auth_ib_zero:
42
- ; ALL: ; %bb.0:
44
+ ; ALL: %bb.0:
43
45
; ALL-NEXT: mov x16, x0
44
46
; ALL-NEXT: autizb x16
45
47
; ALL-NEXT: mov x0, x16
@@ -50,7 +52,7 @@ define i64 @test_auth_ib_zero(i64 %arg) {
50
52
51
53
define i64 @test_auth_da (i64 %arg , i64 %arg1 ) {
52
54
; ALL-LABEL: test_auth_da:
53
- ; ALL: ; %bb.0:
55
+ ; ALL: %bb.0:
54
56
; ALL-NEXT: mov x16, x0
55
57
; ALL-NEXT: autda x16, x1
56
58
; ALL-NEXT: mov x0, x16
@@ -61,7 +63,7 @@ define i64 @test_auth_da(i64 %arg, i64 %arg1) {
61
63
62
64
define i64 @test_auth_da_zero (i64 %arg ) {
63
65
; ALL-LABEL: test_auth_da_zero:
64
- ; ALL: ; %bb.0:
66
+ ; ALL: %bb.0:
65
67
; ALL-NEXT: mov x16, x0
66
68
; ALL-NEXT: autdza x16
67
69
; ALL-NEXT: mov x0, x16
@@ -72,7 +74,7 @@ define i64 @test_auth_da_zero(i64 %arg) {
72
74
73
75
define i64 @test_auth_db (i64 %arg , i64 %arg1 ) {
74
76
; ALL-LABEL: test_auth_db:
75
- ; ALL: ; %bb.0:
77
+ ; ALL: %bb.0:
76
78
; ALL-NEXT: mov x16, x0
77
79
; ALL-NEXT: autdb x16, x1
78
80
; ALL-NEXT: mov x0, x16
@@ -83,7 +85,7 @@ define i64 @test_auth_db(i64 %arg, i64 %arg1) {
83
85
84
86
define i64 @test_auth_db_zero (i64 %arg ) {
85
87
; ALL-LABEL: test_auth_db_zero:
86
- ; ALL: ; %bb.0:
88
+ ; ALL: %bb.0:
87
89
; ALL-NEXT: mov x16, x0
88
90
; ALL-NEXT: autdzb x16
89
91
; ALL-NEXT: mov x0, x16
@@ -96,23 +98,23 @@ define i64 @test_auth_db_zero(i64 %arg) {
96
98
; the validity of a signature.
97
99
define i64 @test_resign_ia_ia (i64 %arg , i64 %arg1 , i64 %arg2 ) {
98
100
; NOFPAC-LABEL: test_resign_ia_ia:
99
- ; NOFPAC: ; %bb.0:
101
+ ; NOFPAC: %bb.0:
100
102
; NOFPAC-NEXT: mov x16, x0
101
103
; NOFPAC-NEXT: autia x16, x1
102
104
; NOFPAC-NEXT: mov x17, x16
103
105
; NOFPAC-NEXT: xpaci x17
104
106
; NOFPAC-NEXT: cmp x16, x17
105
- ; NOFPAC-NEXT: b.eq Lauth_success_0
107
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_0
106
108
; NOFPAC-NEXT: mov x16, x17
107
- ; NOFPAC-NEXT: b Lresign_end_0
109
+ ; NOFPAC-NEXT: b [[L]]resign_end_0
108
110
; NOFPAC-NEXT: Lauth_success_0:
109
111
; NOFPAC-NEXT: pacia x16, x2
110
112
; NOFPAC-NEXT: Lresign_end_0:
111
113
; NOFPAC-NEXT: mov x0, x16
112
114
; NOFPAC-NEXT: ret
113
115
;
114
116
; FPAC-LABEL: test_resign_ia_ia:
115
- ; FPAC: ; %bb.0:
117
+ ; FPAC: %bb.0:
116
118
; FPAC-NEXT: mov x16, x0
117
119
; FPAC-NEXT: autia x16, x1
118
120
; FPAC-NEXT: pacia x16, x2
@@ -124,23 +126,23 @@ define i64 @test_resign_ia_ia(i64 %arg, i64 %arg1, i64 %arg2) {
124
126
125
127
define i64 @test_resign_ib_ia (i64 %arg , i64 %arg1 , i64 %arg2 ) {
126
128
; NOFPAC-LABEL: test_resign_ib_ia:
127
- ; NOFPAC: ; %bb.0:
129
+ ; NOFPAC: %bb.0:
128
130
; NOFPAC-NEXT: mov x16, x0
129
131
; NOFPAC-NEXT: autib x16, x1
130
132
; NOFPAC-NEXT: mov x17, x16
131
133
; NOFPAC-NEXT: xpaci x17
132
134
; NOFPAC-NEXT: cmp x16, x17
133
- ; NOFPAC-NEXT: b.eq Lauth_success_1
135
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_1
134
136
; NOFPAC-NEXT: mov x16, x17
135
- ; NOFPAC-NEXT: b Lresign_end_1
137
+ ; NOFPAC-NEXT: b [[L]]resign_end_1
136
138
; NOFPAC-NEXT: Lauth_success_1:
137
139
; NOFPAC-NEXT: pacia x16, x2
138
140
; NOFPAC-NEXT: Lresign_end_1:
139
141
; NOFPAC-NEXT: mov x0, x16
140
142
; NOFPAC-NEXT: ret
141
143
;
142
144
; FPAC-LABEL: test_resign_ib_ia:
143
- ; FPAC: ; %bb.0:
145
+ ; FPAC: %bb.0:
144
146
; FPAC-NEXT: mov x16, x0
145
147
; FPAC-NEXT: autib x16, x1
146
148
; FPAC-NEXT: pacia x16, x2
@@ -152,23 +154,23 @@ define i64 @test_resign_ib_ia(i64 %arg, i64 %arg1, i64 %arg2) {
152
154
153
155
define i64 @test_resign_da_ia (i64 %arg , i64 %arg1 , i64 %arg2 ) {
154
156
; NOFPAC-LABEL: test_resign_da_ia:
155
- ; NOFPAC: ; %bb.0:
157
+ ; NOFPAC: %bb.0:
156
158
; NOFPAC-NEXT: mov x16, x0
157
159
; NOFPAC-NEXT: autda x16, x1
158
160
; NOFPAC-NEXT: mov x17, x16
159
161
; NOFPAC-NEXT: xpacd x17
160
162
; NOFPAC-NEXT: cmp x16, x17
161
- ; NOFPAC-NEXT: b.eq Lauth_success_2
163
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_2
162
164
; NOFPAC-NEXT: mov x16, x17
163
- ; NOFPAC-NEXT: b Lresign_end_2
165
+ ; NOFPAC-NEXT: b [[L]]resign_end_2
164
166
; NOFPAC-NEXT: Lauth_success_2:
165
167
; NOFPAC-NEXT: pacia x16, x2
166
168
; NOFPAC-NEXT: Lresign_end_2:
167
169
; NOFPAC-NEXT: mov x0, x16
168
170
; NOFPAC-NEXT: ret
169
171
;
170
172
; FPAC-LABEL: test_resign_da_ia:
171
- ; FPAC: ; %bb.0:
173
+ ; FPAC: %bb.0:
172
174
; FPAC-NEXT: mov x16, x0
173
175
; FPAC-NEXT: autda x16, x1
174
176
; FPAC-NEXT: pacia x16, x2
@@ -180,23 +182,23 @@ define i64 @test_resign_da_ia(i64 %arg, i64 %arg1, i64 %arg2) {
180
182
181
183
define i64 @test_resign_db_ia (i64 %arg , i64 %arg1 , i64 %arg2 ) {
182
184
; NOFPAC-LABEL: test_resign_db_ia:
183
- ; NOFPAC: ; %bb.0:
185
+ ; NOFPAC: %bb.0:
184
186
; NOFPAC-NEXT: mov x16, x0
185
187
; NOFPAC-NEXT: autdb x16, x1
186
188
; NOFPAC-NEXT: mov x17, x16
187
189
; NOFPAC-NEXT: xpacd x17
188
190
; NOFPAC-NEXT: cmp x16, x17
189
- ; NOFPAC-NEXT: b.eq Lauth_success_3
191
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_3
190
192
; NOFPAC-NEXT: mov x16, x17
191
- ; NOFPAC-NEXT: b Lresign_end_3
193
+ ; NOFPAC-NEXT: b [[L]]resign_end_3
192
194
; NOFPAC-NEXT: Lauth_success_3:
193
195
; NOFPAC-NEXT: pacia x16, x2
194
196
; NOFPAC-NEXT: Lresign_end_3:
195
197
; NOFPAC-NEXT: mov x0, x16
196
198
; NOFPAC-NEXT: ret
197
199
;
198
200
; FPAC-LABEL: test_resign_db_ia:
199
- ; FPAC: ; %bb.0:
201
+ ; FPAC: %bb.0:
200
202
; FPAC-NEXT: mov x16, x0
201
203
; FPAC-NEXT: autdb x16, x1
202
204
; FPAC-NEXT: pacia x16, x2
@@ -208,23 +210,23 @@ define i64 @test_resign_db_ia(i64 %arg, i64 %arg1, i64 %arg2) {
208
210
209
211
define i64 @test_resign_db_ib (i64 %arg , i64 %arg1 , i64 %arg2 ) {
210
212
; NOFPAC-LABEL: test_resign_db_ib:
211
- ; NOFPAC: ; %bb.0:
213
+ ; NOFPAC: %bb.0:
212
214
; NOFPAC-NEXT: mov x16, x0
213
215
; NOFPAC-NEXT: autdb x16, x1
214
216
; NOFPAC-NEXT: mov x17, x16
215
217
; NOFPAC-NEXT: xpacd x17
216
218
; NOFPAC-NEXT: cmp x16, x17
217
- ; NOFPAC-NEXT: b.eq Lauth_success_4
219
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_4
218
220
; NOFPAC-NEXT: mov x16, x17
219
- ; NOFPAC-NEXT: b Lresign_end_4
221
+ ; NOFPAC-NEXT: b [[L]]resign_end_4
220
222
; NOFPAC-NEXT: Lauth_success_4:
221
223
; NOFPAC-NEXT: pacib x16, x2
222
224
; NOFPAC-NEXT: Lresign_end_4:
223
225
; NOFPAC-NEXT: mov x0, x16
224
226
; NOFPAC-NEXT: ret
225
227
;
226
228
; FPAC-LABEL: test_resign_db_ib:
227
- ; FPAC: ; %bb.0:
229
+ ; FPAC: %bb.0:
228
230
; FPAC-NEXT: mov x16, x0
229
231
; FPAC-NEXT: autdb x16, x1
230
232
; FPAC-NEXT: pacib x16, x2
@@ -236,23 +238,23 @@ define i64 @test_resign_db_ib(i64 %arg, i64 %arg1, i64 %arg2) {
236
238
237
239
define i64 @test_resign_db_da (i64 %arg , i64 %arg1 , i64 %arg2 ) {
238
240
; NOFPAC-LABEL: test_resign_db_da:
239
- ; NOFPAC: ; %bb.0:
241
+ ; NOFPAC: %bb.0:
240
242
; NOFPAC-NEXT: mov x16, x0
241
243
; NOFPAC-NEXT: autdb x16, x1
242
244
; NOFPAC-NEXT: mov x17, x16
243
245
; NOFPAC-NEXT: xpacd x17
244
246
; NOFPAC-NEXT: cmp x16, x17
245
- ; NOFPAC-NEXT: b.eq Lauth_success_5
247
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_5
246
248
; NOFPAC-NEXT: mov x16, x17
247
- ; NOFPAC-NEXT: b Lresign_end_5
249
+ ; NOFPAC-NEXT: b [[L]]resign_end_5
248
250
; NOFPAC-NEXT: Lauth_success_5:
249
251
; NOFPAC-NEXT: pacda x16, x2
250
252
; NOFPAC-NEXT: Lresign_end_5:
251
253
; NOFPAC-NEXT: mov x0, x16
252
254
; NOFPAC-NEXT: ret
253
255
;
254
256
; FPAC-LABEL: test_resign_db_da:
255
- ; FPAC: ; %bb.0:
257
+ ; FPAC: %bb.0:
256
258
; FPAC-NEXT: mov x16, x0
257
259
; FPAC-NEXT: autdb x16, x1
258
260
; FPAC-NEXT: pacda x16, x2
@@ -264,23 +266,23 @@ define i64 @test_resign_db_da(i64 %arg, i64 %arg1, i64 %arg2) {
264
266
265
267
define i64 @test_resign_db_db (i64 %arg , i64 %arg1 , i64 %arg2 ) {
266
268
; NOFPAC-LABEL: test_resign_db_db:
267
- ; NOFPAC: ; %bb.0:
269
+ ; NOFPAC: %bb.0:
268
270
; NOFPAC-NEXT: mov x16, x0
269
271
; NOFPAC-NEXT: autdb x16, x1
270
272
; NOFPAC-NEXT: mov x17, x16
271
273
; NOFPAC-NEXT: xpacd x17
272
274
; NOFPAC-NEXT: cmp x16, x17
273
- ; NOFPAC-NEXT: b.eq Lauth_success_6
275
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_6
274
276
; NOFPAC-NEXT: mov x16, x17
275
- ; NOFPAC-NEXT: b Lresign_end_6
277
+ ; NOFPAC-NEXT: b [[L]]resign_end_6
276
278
; NOFPAC-NEXT: Lauth_success_6:
277
279
; NOFPAC-NEXT: pacdb x16, x2
278
280
; NOFPAC-NEXT: Lresign_end_6:
279
281
; NOFPAC-NEXT: mov x0, x16
280
282
; NOFPAC-NEXT: ret
281
283
;
282
284
; FPAC-LABEL: test_resign_db_db:
283
- ; FPAC: ; %bb.0:
285
+ ; FPAC: %bb.0:
284
286
; FPAC-NEXT: mov x16, x0
285
287
; FPAC-NEXT: autdb x16, x1
286
288
; FPAC-NEXT: pacdb x16, x2
@@ -292,23 +294,23 @@ define i64 @test_resign_db_db(i64 %arg, i64 %arg1, i64 %arg2) {
292
294
293
295
define i64 @test_resign_iza_db (i64 %arg , i64 %arg1 , i64 %arg2 ) {
294
296
; NOFPAC-LABEL: test_resign_iza_db:
295
- ; NOFPAC: ; %bb.0:
297
+ ; NOFPAC: %bb.0:
296
298
; NOFPAC-NEXT: mov x16, x0
297
299
; NOFPAC-NEXT: autiza x16
298
300
; NOFPAC-NEXT: mov x17, x16
299
301
; NOFPAC-NEXT: xpaci x17
300
302
; NOFPAC-NEXT: cmp x16, x17
301
- ; NOFPAC-NEXT: b.eq Lauth_success_7
303
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_7
302
304
; NOFPAC-NEXT: mov x16, x17
303
- ; NOFPAC-NEXT: b Lresign_end_7
305
+ ; NOFPAC-NEXT: b [[L]]resign_end_7
304
306
; NOFPAC-NEXT: Lauth_success_7:
305
307
; NOFPAC-NEXT: pacdb x16, x2
306
308
; NOFPAC-NEXT: Lresign_end_7:
307
309
; NOFPAC-NEXT: mov x0, x16
308
310
; NOFPAC-NEXT: ret
309
311
;
310
312
; FPAC-LABEL: test_resign_iza_db:
311
- ; FPAC: ; %bb.0:
313
+ ; FPAC: %bb.0:
312
314
; FPAC-NEXT: mov x16, x0
313
315
; FPAC-NEXT: autiza x16
314
316
; FPAC-NEXT: pacdb x16, x2
@@ -320,23 +322,23 @@ define i64 @test_resign_iza_db(i64 %arg, i64 %arg1, i64 %arg2) {
320
322
321
323
define i64 @test_resign_da_dzb (i64 %arg , i64 %arg1 , i64 %arg2 ) {
322
324
; NOFPAC-LABEL: test_resign_da_dzb:
323
- ; NOFPAC: ; %bb.0:
325
+ ; NOFPAC: %bb.0:
324
326
; NOFPAC-NEXT: mov x16, x0
325
327
; NOFPAC-NEXT: autda x16, x1
326
328
; NOFPAC-NEXT: mov x17, x16
327
329
; NOFPAC-NEXT: xpacd x17
328
330
; NOFPAC-NEXT: cmp x16, x17
329
- ; NOFPAC-NEXT: b.eq Lauth_success_8
331
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_8
330
332
; NOFPAC-NEXT: mov x16, x17
331
- ; NOFPAC-NEXT: b Lresign_end_8
333
+ ; NOFPAC-NEXT: b [[L]]resign_end_8
332
334
; NOFPAC-NEXT: Lauth_success_8:
333
335
; NOFPAC-NEXT: pacdzb x16
334
336
; NOFPAC-NEXT: Lresign_end_8:
335
337
; NOFPAC-NEXT: mov x0, x16
336
338
; NOFPAC-NEXT: ret
337
339
;
338
340
; FPAC-LABEL: test_resign_da_dzb:
339
- ; FPAC: ; %bb.0:
341
+ ; FPAC: %bb.0:
340
342
; FPAC-NEXT: mov x16, x0
341
343
; FPAC-NEXT: autda x16, x1
342
344
; FPAC-NEXT: pacdzb x16
@@ -348,20 +350,20 @@ define i64 @test_resign_da_dzb(i64 %arg, i64 %arg1, i64 %arg2) {
348
350
349
351
define i64 @test_auth_trap_attribute (i64 %arg , i64 %arg1 ) "ptrauth-auth-traps" {
350
352
; NOFPAC-LABEL: test_auth_trap_attribute:
351
- ; NOFPAC: ; %bb.0:
353
+ ; NOFPAC: %bb.0:
352
354
; NOFPAC-NEXT: mov x16, x0
353
355
; NOFPAC-NEXT: autia x16, x1
354
356
; NOFPAC-NEXT: mov x17, x16
355
357
; NOFPAC-NEXT: xpaci x17
356
358
; NOFPAC-NEXT: cmp x16, x17
357
- ; NOFPAC-NEXT: b.eq Lauth_success_9
359
+ ; NOFPAC-NEXT: b.eq [[L]]auth_success_9
358
360
; NOFPAC-NEXT: brk #0xc470
359
361
; NOFPAC-NEXT: Lauth_success_9:
360
362
; NOFPAC-NEXT: mov x0, x16
361
363
; NOFPAC-NEXT: ret
362
364
;
363
365
; FPAC-LABEL: test_auth_trap_attribute:
364
- ; FPAC: ; %bb.0:
366
+ ; FPAC: %bb.0:
365
367
; FPAC-NEXT: mov x16, x0
366
368
; FPAC-NEXT: autia x16, x1
367
369
; FPAC-NEXT: mov x0, x16
0 commit comments