11; 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 
46
57target  datalayout  = "e-m:o-i64:64-i128:128-n32:64-S128" 
68
79define  i64  @test_auth_ia (i64  %arg , i64  %arg1 ) {
810; ALL-LABEL: test_auth_ia: 
9- ; ALL:       ;  %bb.0: 
11+ ; ALL:       %bb.0: 
1012; ALL-NEXT:    mov x16, x0 
1113; ALL-NEXT:    autia x16, x1 
1214; ALL-NEXT:    mov x0, x16 
@@ -17,7 +19,7 @@ define i64 @test_auth_ia(i64 %arg, i64 %arg1) {
1719
1820define  i64  @test_auth_ia_zero (i64  %arg ) {
1921; ALL-LABEL: test_auth_ia_zero: 
20- ; ALL:       ;  %bb.0: 
22+ ; ALL:       %bb.0: 
2123; ALL-NEXT:    mov x16, x0 
2224; ALL-NEXT:    autiza x16 
2325; ALL-NEXT:    mov x0, x16 
@@ -28,7 +30,7 @@ define i64 @test_auth_ia_zero(i64 %arg) {
2830
2931define  i64  @test_auth_ib (i64  %arg , i64  %arg1 ) {
3032; ALL-LABEL: test_auth_ib: 
31- ; ALL:       ;  %bb.0: 
33+ ; ALL:       %bb.0: 
3234; ALL-NEXT:    mov x16, x0 
3335; ALL-NEXT:    autib x16, x1 
3436; ALL-NEXT:    mov x0, x16 
@@ -39,7 +41,7 @@ define i64 @test_auth_ib(i64 %arg, i64 %arg1) {
3941
4042define  i64  @test_auth_ib_zero (i64  %arg ) {
4143; ALL-LABEL: test_auth_ib_zero: 
42- ; ALL:       ;  %bb.0: 
44+ ; ALL:       %bb.0: 
4345; ALL-NEXT:    mov x16, x0 
4446; ALL-NEXT:    autizb x16 
4547; ALL-NEXT:    mov x0, x16 
@@ -50,7 +52,7 @@ define i64 @test_auth_ib_zero(i64 %arg) {
5052
5153define  i64  @test_auth_da (i64  %arg , i64  %arg1 ) {
5254; ALL-LABEL: test_auth_da: 
53- ; ALL:       ;  %bb.0: 
55+ ; ALL:       %bb.0: 
5456; ALL-NEXT:    mov x16, x0 
5557; ALL-NEXT:    autda x16, x1 
5658; ALL-NEXT:    mov x0, x16 
@@ -61,7 +63,7 @@ define i64 @test_auth_da(i64 %arg, i64 %arg1) {
6163
6264define  i64  @test_auth_da_zero (i64  %arg ) {
6365; ALL-LABEL: test_auth_da_zero: 
64- ; ALL:       ;  %bb.0: 
66+ ; ALL:       %bb.0: 
6567; ALL-NEXT:    mov x16, x0 
6668; ALL-NEXT:    autdza x16 
6769; ALL-NEXT:    mov x0, x16 
@@ -72,7 +74,7 @@ define i64 @test_auth_da_zero(i64 %arg) {
7274
7375define  i64  @test_auth_db (i64  %arg , i64  %arg1 ) {
7476; ALL-LABEL: test_auth_db: 
75- ; ALL:       ;  %bb.0: 
77+ ; ALL:       %bb.0: 
7678; ALL-NEXT:    mov x16, x0 
7779; ALL-NEXT:    autdb x16, x1 
7880; ALL-NEXT:    mov x0, x16 
@@ -83,7 +85,7 @@ define i64 @test_auth_db(i64 %arg, i64 %arg1) {
8385
8486define  i64  @test_auth_db_zero (i64  %arg ) {
8587; ALL-LABEL: test_auth_db_zero: 
86- ; ALL:       ;  %bb.0: 
88+ ; ALL:       %bb.0: 
8789; ALL-NEXT:    mov x16, x0 
8890; ALL-NEXT:    autdzb x16 
8991; ALL-NEXT:    mov x0, x16 
@@ -96,23 +98,23 @@ define i64 @test_auth_db_zero(i64 %arg) {
9698; the validity of a signature. 
9799define  i64  @test_resign_ia_ia (i64  %arg , i64  %arg1 , i64  %arg2 ) {
98100; NOFPAC-LABEL: test_resign_ia_ia: 
99- ; NOFPAC:       ;  %bb.0: 
101+ ; NOFPAC:       %bb.0: 
100102; NOFPAC-NEXT:    mov x16, x0 
101103; NOFPAC-NEXT:    autia x16, x1 
102104; NOFPAC-NEXT:    mov x17, x16 
103105; NOFPAC-NEXT:    xpaci x17 
104106; NOFPAC-NEXT:    cmp x16, x17 
105- ; NOFPAC-NEXT:    b.eq Lauth_success_0  
107+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_0  
106108; NOFPAC-NEXT:    mov x16, x17 
107- ; NOFPAC-NEXT:    b Lresign_end_0  
109+ ; NOFPAC-NEXT:    b [[L]]resign_end_0  
108110; NOFPAC-NEXT:  Lauth_success_0: 
109111; NOFPAC-NEXT:    pacia x16, x2 
110112; NOFPAC-NEXT:  Lresign_end_0: 
111113; NOFPAC-NEXT:    mov x0, x16 
112114; NOFPAC-NEXT:    ret 
113115; 
114116; FPAC-LABEL: test_resign_ia_ia: 
115- ; FPAC:       ;  %bb.0: 
117+ ; FPAC:       %bb.0: 
116118; FPAC-NEXT:    mov x16, x0 
117119; FPAC-NEXT:    autia x16, x1 
118120; FPAC-NEXT:    pacia x16, x2 
@@ -124,23 +126,23 @@ define i64 @test_resign_ia_ia(i64 %arg, i64 %arg1, i64 %arg2) {
124126
125127define  i64  @test_resign_ib_ia (i64  %arg , i64  %arg1 , i64  %arg2 ) {
126128; NOFPAC-LABEL: test_resign_ib_ia: 
127- ; NOFPAC:       ;  %bb.0: 
129+ ; NOFPAC:       %bb.0: 
128130; NOFPAC-NEXT:    mov x16, x0 
129131; NOFPAC-NEXT:    autib x16, x1 
130132; NOFPAC-NEXT:    mov x17, x16 
131133; NOFPAC-NEXT:    xpaci x17 
132134; NOFPAC-NEXT:    cmp x16, x17 
133- ; NOFPAC-NEXT:    b.eq Lauth_success_1  
135+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_1  
134136; NOFPAC-NEXT:    mov x16, x17 
135- ; NOFPAC-NEXT:    b Lresign_end_1  
137+ ; NOFPAC-NEXT:    b [[L]]resign_end_1  
136138; NOFPAC-NEXT:  Lauth_success_1: 
137139; NOFPAC-NEXT:    pacia x16, x2 
138140; NOFPAC-NEXT:  Lresign_end_1: 
139141; NOFPAC-NEXT:    mov x0, x16 
140142; NOFPAC-NEXT:    ret 
141143; 
142144; FPAC-LABEL: test_resign_ib_ia: 
143- ; FPAC:       ;  %bb.0: 
145+ ; FPAC:       %bb.0: 
144146; FPAC-NEXT:    mov x16, x0 
145147; FPAC-NEXT:    autib x16, x1 
146148; FPAC-NEXT:    pacia x16, x2 
@@ -152,23 +154,23 @@ define i64 @test_resign_ib_ia(i64 %arg, i64 %arg1, i64 %arg2) {
152154
153155define  i64  @test_resign_da_ia (i64  %arg , i64  %arg1 , i64  %arg2 ) {
154156; NOFPAC-LABEL: test_resign_da_ia: 
155- ; NOFPAC:       ;  %bb.0: 
157+ ; NOFPAC:       %bb.0: 
156158; NOFPAC-NEXT:    mov x16, x0 
157159; NOFPAC-NEXT:    autda x16, x1 
158160; NOFPAC-NEXT:    mov x17, x16 
159161; NOFPAC-NEXT:    xpacd x17 
160162; NOFPAC-NEXT:    cmp x16, x17 
161- ; NOFPAC-NEXT:    b.eq Lauth_success_2  
163+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_2  
162164; NOFPAC-NEXT:    mov x16, x17 
163- ; NOFPAC-NEXT:    b Lresign_end_2  
165+ ; NOFPAC-NEXT:    b [[L]]resign_end_2  
164166; NOFPAC-NEXT:  Lauth_success_2: 
165167; NOFPAC-NEXT:    pacia x16, x2 
166168; NOFPAC-NEXT:  Lresign_end_2: 
167169; NOFPAC-NEXT:    mov x0, x16 
168170; NOFPAC-NEXT:    ret 
169171; 
170172; FPAC-LABEL: test_resign_da_ia: 
171- ; FPAC:       ;  %bb.0: 
173+ ; FPAC:       %bb.0: 
172174; FPAC-NEXT:    mov x16, x0 
173175; FPAC-NEXT:    autda x16, x1 
174176; FPAC-NEXT:    pacia x16, x2 
@@ -180,23 +182,23 @@ define i64 @test_resign_da_ia(i64 %arg, i64 %arg1, i64 %arg2) {
180182
181183define  i64  @test_resign_db_ia (i64  %arg , i64  %arg1 , i64  %arg2 ) {
182184; NOFPAC-LABEL: test_resign_db_ia: 
183- ; NOFPAC:       ;  %bb.0: 
185+ ; NOFPAC:       %bb.0: 
184186; NOFPAC-NEXT:    mov x16, x0 
185187; NOFPAC-NEXT:    autdb x16, x1 
186188; NOFPAC-NEXT:    mov x17, x16 
187189; NOFPAC-NEXT:    xpacd x17 
188190; NOFPAC-NEXT:    cmp x16, x17 
189- ; NOFPAC-NEXT:    b.eq Lauth_success_3  
191+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_3  
190192; NOFPAC-NEXT:    mov x16, x17 
191- ; NOFPAC-NEXT:    b Lresign_end_3  
193+ ; NOFPAC-NEXT:    b [[L]]resign_end_3  
192194; NOFPAC-NEXT:  Lauth_success_3: 
193195; NOFPAC-NEXT:    pacia x16, x2 
194196; NOFPAC-NEXT:  Lresign_end_3: 
195197; NOFPAC-NEXT:    mov x0, x16 
196198; NOFPAC-NEXT:    ret 
197199; 
198200; FPAC-LABEL: test_resign_db_ia: 
199- ; FPAC:       ;  %bb.0: 
201+ ; FPAC:       %bb.0: 
200202; FPAC-NEXT:    mov x16, x0 
201203; FPAC-NEXT:    autdb x16, x1 
202204; FPAC-NEXT:    pacia x16, x2 
@@ -208,23 +210,23 @@ define i64 @test_resign_db_ia(i64 %arg, i64 %arg1, i64 %arg2) {
208210
209211define  i64  @test_resign_db_ib (i64  %arg , i64  %arg1 , i64  %arg2 ) {
210212; NOFPAC-LABEL: test_resign_db_ib: 
211- ; NOFPAC:       ;  %bb.0: 
213+ ; NOFPAC:       %bb.0: 
212214; NOFPAC-NEXT:    mov x16, x0 
213215; NOFPAC-NEXT:    autdb x16, x1 
214216; NOFPAC-NEXT:    mov x17, x16 
215217; NOFPAC-NEXT:    xpacd x17 
216218; NOFPAC-NEXT:    cmp x16, x17 
217- ; NOFPAC-NEXT:    b.eq Lauth_success_4  
219+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_4  
218220; NOFPAC-NEXT:    mov x16, x17 
219- ; NOFPAC-NEXT:    b Lresign_end_4  
221+ ; NOFPAC-NEXT:    b [[L]]resign_end_4  
220222; NOFPAC-NEXT:  Lauth_success_4: 
221223; NOFPAC-NEXT:    pacib x16, x2 
222224; NOFPAC-NEXT:  Lresign_end_4: 
223225; NOFPAC-NEXT:    mov x0, x16 
224226; NOFPAC-NEXT:    ret 
225227; 
226228; FPAC-LABEL: test_resign_db_ib: 
227- ; FPAC:       ;  %bb.0: 
229+ ; FPAC:       %bb.0: 
228230; FPAC-NEXT:    mov x16, x0 
229231; FPAC-NEXT:    autdb x16, x1 
230232; FPAC-NEXT:    pacib x16, x2 
@@ -236,23 +238,23 @@ define i64 @test_resign_db_ib(i64 %arg, i64 %arg1, i64 %arg2) {
236238
237239define  i64  @test_resign_db_da (i64  %arg , i64  %arg1 , i64  %arg2 ) {
238240; NOFPAC-LABEL: test_resign_db_da: 
239- ; NOFPAC:       ;  %bb.0: 
241+ ; NOFPAC:       %bb.0: 
240242; NOFPAC-NEXT:    mov x16, x0 
241243; NOFPAC-NEXT:    autdb x16, x1 
242244; NOFPAC-NEXT:    mov x17, x16 
243245; NOFPAC-NEXT:    xpacd x17 
244246; NOFPAC-NEXT:    cmp x16, x17 
245- ; NOFPAC-NEXT:    b.eq Lauth_success_5  
247+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_5  
246248; NOFPAC-NEXT:    mov x16, x17 
247- ; NOFPAC-NEXT:    b Lresign_end_5  
249+ ; NOFPAC-NEXT:    b [[L]]resign_end_5  
248250; NOFPAC-NEXT:  Lauth_success_5: 
249251; NOFPAC-NEXT:    pacda x16, x2 
250252; NOFPAC-NEXT:  Lresign_end_5: 
251253; NOFPAC-NEXT:    mov x0, x16 
252254; NOFPAC-NEXT:    ret 
253255; 
254256; FPAC-LABEL: test_resign_db_da: 
255- ; FPAC:       ;  %bb.0: 
257+ ; FPAC:       %bb.0: 
256258; FPAC-NEXT:    mov x16, x0 
257259; FPAC-NEXT:    autdb x16, x1 
258260; FPAC-NEXT:    pacda x16, x2 
@@ -264,23 +266,23 @@ define i64 @test_resign_db_da(i64 %arg, i64 %arg1, i64 %arg2) {
264266
265267define  i64  @test_resign_db_db (i64  %arg , i64  %arg1 , i64  %arg2 ) {
266268; NOFPAC-LABEL: test_resign_db_db: 
267- ; NOFPAC:       ;  %bb.0: 
269+ ; NOFPAC:       %bb.0: 
268270; NOFPAC-NEXT:    mov x16, x0 
269271; NOFPAC-NEXT:    autdb x16, x1 
270272; NOFPAC-NEXT:    mov x17, x16 
271273; NOFPAC-NEXT:    xpacd x17 
272274; NOFPAC-NEXT:    cmp x16, x17 
273- ; NOFPAC-NEXT:    b.eq Lauth_success_6  
275+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_6  
274276; NOFPAC-NEXT:    mov x16, x17 
275- ; NOFPAC-NEXT:    b Lresign_end_6  
277+ ; NOFPAC-NEXT:    b [[L]]resign_end_6  
276278; NOFPAC-NEXT:  Lauth_success_6: 
277279; NOFPAC-NEXT:    pacdb x16, x2 
278280; NOFPAC-NEXT:  Lresign_end_6: 
279281; NOFPAC-NEXT:    mov x0, x16 
280282; NOFPAC-NEXT:    ret 
281283; 
282284; FPAC-LABEL: test_resign_db_db: 
283- ; FPAC:       ;  %bb.0: 
285+ ; FPAC:       %bb.0: 
284286; FPAC-NEXT:    mov x16, x0 
285287; FPAC-NEXT:    autdb x16, x1 
286288; FPAC-NEXT:    pacdb x16, x2 
@@ -292,23 +294,23 @@ define i64 @test_resign_db_db(i64 %arg, i64 %arg1, i64 %arg2) {
292294
293295define  i64  @test_resign_iza_db (i64  %arg , i64  %arg1 , i64  %arg2 ) {
294296; NOFPAC-LABEL: test_resign_iza_db: 
295- ; NOFPAC:       ;  %bb.0: 
297+ ; NOFPAC:       %bb.0: 
296298; NOFPAC-NEXT:    mov x16, x0 
297299; NOFPAC-NEXT:    autiza x16 
298300; NOFPAC-NEXT:    mov x17, x16 
299301; NOFPAC-NEXT:    xpaci x17 
300302; NOFPAC-NEXT:    cmp x16, x17 
301- ; NOFPAC-NEXT:    b.eq Lauth_success_7  
303+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_7  
302304; NOFPAC-NEXT:    mov x16, x17 
303- ; NOFPAC-NEXT:    b Lresign_end_7  
305+ ; NOFPAC-NEXT:    b [[L]]resign_end_7  
304306; NOFPAC-NEXT:  Lauth_success_7: 
305307; NOFPAC-NEXT:    pacdb x16, x2 
306308; NOFPAC-NEXT:  Lresign_end_7: 
307309; NOFPAC-NEXT:    mov x0, x16 
308310; NOFPAC-NEXT:    ret 
309311; 
310312; FPAC-LABEL: test_resign_iza_db: 
311- ; FPAC:       ;  %bb.0: 
313+ ; FPAC:       %bb.0: 
312314; FPAC-NEXT:    mov x16, x0 
313315; FPAC-NEXT:    autiza x16 
314316; FPAC-NEXT:    pacdb x16, x2 
@@ -320,23 +322,23 @@ define i64 @test_resign_iza_db(i64 %arg, i64 %arg1, i64 %arg2) {
320322
321323define  i64  @test_resign_da_dzb (i64  %arg , i64  %arg1 , i64  %arg2 ) {
322324; NOFPAC-LABEL: test_resign_da_dzb: 
323- ; NOFPAC:       ;  %bb.0: 
325+ ; NOFPAC:       %bb.0: 
324326; NOFPAC-NEXT:    mov x16, x0 
325327; NOFPAC-NEXT:    autda x16, x1 
326328; NOFPAC-NEXT:    mov x17, x16 
327329; NOFPAC-NEXT:    xpacd x17 
328330; NOFPAC-NEXT:    cmp x16, x17 
329- ; NOFPAC-NEXT:    b.eq Lauth_success_8  
331+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_8  
330332; NOFPAC-NEXT:    mov x16, x17 
331- ; NOFPAC-NEXT:    b Lresign_end_8  
333+ ; NOFPAC-NEXT:    b [[L]]resign_end_8  
332334; NOFPAC-NEXT:  Lauth_success_8: 
333335; NOFPAC-NEXT:    pacdzb x16 
334336; NOFPAC-NEXT:  Lresign_end_8: 
335337; NOFPAC-NEXT:    mov x0, x16 
336338; NOFPAC-NEXT:    ret 
337339; 
338340; FPAC-LABEL: test_resign_da_dzb: 
339- ; FPAC:       ;  %bb.0: 
341+ ; FPAC:       %bb.0: 
340342; FPAC-NEXT:    mov x16, x0 
341343; FPAC-NEXT:    autda x16, x1 
342344; FPAC-NEXT:    pacdzb x16 
@@ -348,20 +350,20 @@ define i64 @test_resign_da_dzb(i64 %arg, i64 %arg1, i64 %arg2) {
348350
349351define  i64  @test_auth_trap_attribute (i64  %arg , i64  %arg1 ) "ptrauth-auth-traps"  {
350352; NOFPAC-LABEL: test_auth_trap_attribute: 
351- ; NOFPAC:       ;  %bb.0: 
353+ ; NOFPAC:       %bb.0: 
352354; NOFPAC-NEXT:    mov x16, x0 
353355; NOFPAC-NEXT:    autia x16, x1 
354356; NOFPAC-NEXT:    mov x17, x16 
355357; NOFPAC-NEXT:    xpaci x17 
356358; NOFPAC-NEXT:    cmp x16, x17 
357- ; NOFPAC-NEXT:    b.eq Lauth_success_9  
359+ ; NOFPAC-NEXT:    b.eq [[L]]auth_success_9  
358360; NOFPAC-NEXT:    brk #0xc470 
359361; NOFPAC-NEXT:  Lauth_success_9: 
360362; NOFPAC-NEXT:    mov x0, x16 
361363; NOFPAC-NEXT:    ret 
362364; 
363365; FPAC-LABEL: test_auth_trap_attribute: 
364- ; FPAC:       ;  %bb.0: 
366+ ; FPAC:       %bb.0: 
365367; FPAC-NEXT:    mov x16, x0 
366368; FPAC-NEXT:    autia x16, x1 
367369; FPAC-NEXT:    mov x0, x16 
0 commit comments