Skip to content

Commit 41facca

Browse files
committed
Address review comments
1 parent e857e3e commit 41facca

File tree

5 files changed

+140
-200
lines changed

5 files changed

+140
-200
lines changed

llvm/test/CodeGen/AArch64/ptrauth-bti-call.ll

Lines changed: 53 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -11,118 +11,108 @@
1111
; RUN: llc -mtriple aarch64-linux-gnu -mattr=+bti -mattr=+pauth -fast-isel -asm-verbose=false \
1212
; RUN: -o - %s | FileCheck %s --check-prefixes=ELF,CHECK
1313

14-
;; ptrauth tail-calls can only use x16/x17 with BTI.
14+
; ptrauth tail-calls can only use x16/x17 with BTI.
1515

16-
; DARWIN-LABEL: _test_tailcall_ia_0:
17-
; ELF-LABEL: test_tailcall_ia_0:
18-
; CHECK-NEXT: bti c
19-
; CHECK-NEXT: mov x16, x0
20-
; CHECK-NEXT: braaz x16
16+
; CHECK-LABEL: test_tailcall_ia_0:
17+
; CHECK-NEXT: bti c
18+
; CHECK-NEXT: mov x16, x0
19+
; CHECK-NEXT: braaz x16
2120
define i32 @test_tailcall_ia_0(i32 ()* %arg0) #0 {
2221
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 0, i64 0) ]
2322
ret i32 %tmp0
2423
}
2524

26-
; DARWIN-LABEL: _test_tailcall_ib_0:
27-
; ELF-LABEL: test_tailcall_ib_0:
28-
; CHECK-NEXT: bti c
29-
; CHECK-NEXT: mov x16, x0
30-
; CHECK-NEXT: brabz x16
25+
; CHECK-LABEL: test_tailcall_ib_0:
26+
; CHECK-NEXT: bti c
27+
; CHECK-NEXT: mov x16, x0
28+
; CHECK-NEXT: brabz x16
3129
define i32 @test_tailcall_ib_0(i32 ()* %arg0) #0 {
3230
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 1, i64 0) ]
3331
ret i32 %tmp0
3432
}
3533

36-
; DARWIN-LABEL: _test_tailcall_ia_imm:
37-
; ELF-LABEL: test_tailcall_ia_imm:
38-
; CHECK-NEXT: bti c
39-
; CHECK-NEXT: mov x16, x0
40-
; CHECK-NEXT: mov x17, #42
41-
; CHECK-NEXT: braa x16, x17
34+
; CHECK-LABEL: test_tailcall_ia_imm:
35+
; CHECK-NEXT: bti c
36+
; CHECK-NEXT: mov x16, x0
37+
; CHECK-NEXT: mov x17, #42
38+
; CHECK-NEXT: braa x16, x17
4239
define i32 @test_tailcall_ia_imm(i32 ()* %arg0) #0 {
4340
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 0, i64 42) ]
4441
ret i32 %tmp0
4542
}
4643

47-
; DARWIN-LABEL: _test_tailcall_ib_imm:
48-
; ELF-LABEL: test_tailcall_ib_imm:
49-
; CHECK-NEXT: bti c
50-
; CHECK-NEXT: mov x16, x0
51-
; CHECK-NEXT: mov x17, #42
52-
; CHECK-NEXT: brab x16, x17
44+
; CHECK-LABEL: test_tailcall_ib_imm:
45+
; CHECK-NEXT: bti c
46+
; CHECK-NEXT: mov x16, x0
47+
; CHECK-NEXT: mov x17, #42
48+
; CHECK-NEXT: brab x16, x17
5349
define i32 @test_tailcall_ib_imm(i32 ()* %arg0) #0 {
5450
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 1, i64 42) ]
5551
ret i32 %tmp0
5652
}
5753

58-
; DARWIN-LABEL: _test_tailcall_ia_var:
59-
; DARWIN-NEXT: bti c
60-
; DARWIN-NEXT: mov x16, x0
61-
; DARWIN-NEXT: ldr x0, [x1]
62-
; DARWIN-NEXT: braa x16, x0
63-
; ELF-LABEL: test_tailcall_ia_var:
64-
; ELF-NEXT: bti c
65-
; ELF-NEXT: ldr x1, [x1]
66-
; ELF-NEXT: mov x16, x0
67-
; ELF-NEXT: braa x16, x1
54+
; CHECK-LABEL: test_tailcall_ia_var:
55+
; DARWIN-NEXT: bti c
56+
; DARWIN-NEXT: mov x16, x0
57+
; DARWIN-NEXT: ldr x0, [x1]
58+
; DARWIN-NEXT: braa x16, x0
59+
; ELF-NEXT: bti c
60+
; ELF-NEXT: ldr x1, [x1]
61+
; ELF-NEXT: mov x16, x0
62+
; ELF-NEXT: braa x16, x1
6863
define i32 @test_tailcall_ia_var(i32 ()* %arg0, i64* %arg1) #0 {
6964
%tmp0 = load i64, i64* %arg1
7065
%tmp1 = tail call i32 %arg0() [ "ptrauth"(i32 0, i64 %tmp0) ]
7166
ret i32 %tmp1
7267
}
7368

74-
; DARWIN-LABEL: _test_tailcall_ib_var:
75-
; DARWIN-NEXT: bti c
76-
; DARWIN-NEXT: mov x16, x0
77-
; DARWIN-NEXT: ldr x0, [x1]
78-
; DARWIN-NEXT: brab x16, x0
79-
; ELF-LABEL: test_tailcall_ib_var:
80-
; ELF-NEXT: bti c
81-
; ELF-NEXT: ldr x1, [x1]
82-
; ELF-NEXT: mov x16, x0
83-
; ELF-NEXT: brab x16, x1
69+
; CHECK-LABEL: test_tailcall_ib_var:
70+
; DARWIN-NEXT: bti c
71+
; DARWIN-NEXT: mov x16, x0
72+
; DARWIN-NEXT: ldr x0, [x1]
73+
; DARWIN-NEXT: brab x16, x0
74+
; ELF-NEXT: bti c
75+
; ELF-NEXT: ldr x1, [x1]
76+
; ELF-NEXT: mov x16, x0
77+
; ELF-NEXT: brab x16, x1
8478
define i32 @test_tailcall_ib_var(i32 ()* %arg0, i64* %arg1) #0 {
8579
%tmp0 = load i64, i64* %arg1
8680
%tmp1 = tail call i32 %arg0() [ "ptrauth"(i32 1, i64 %tmp0) ]
8781
ret i32 %tmp1
8882
}
8983

90-
; DARWIN-LABEL: _test_tailcall_ia_arg:
91-
; ELF-LABEL: test_tailcall_ia_arg:
92-
; CHECK-NEXT: bti c
93-
; CHECK-NEXT: mov x16, x0
94-
; CHECK-NEXT: braa x16, x1
84+
; CHECK-LABEL: test_tailcall_ia_arg:
85+
; CHECK-NEXT: bti c
86+
; CHECK-NEXT: mov x16, x0
87+
; CHECK-NEXT: braa x16, x1
9588
define i32 @test_tailcall_ia_arg(i32 ()* %arg0, i64 %arg1) #0 {
9689
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 0, i64 %arg1) ]
9790
ret i32 %tmp0
9891
}
9992

100-
; DARWIN-LABEL: _test_tailcall_ib_arg:
101-
; ELF-LABEL: test_tailcall_ib_arg:
102-
; CHECK-NEXT: bti c
103-
; CHECK-NEXT: mov x16, x0
104-
; CHECK-NEXT: brab x16, x1
93+
; CHECK-LABEL: test_tailcall_ib_arg:
94+
; CHECK-NEXT: bti c
95+
; CHECK-NEXT: mov x16, x0
96+
; CHECK-NEXT: brab x16, x1
10597
define i32 @test_tailcall_ib_arg(i32 ()* %arg0, i64 %arg1) #0 {
10698
%tmp0 = tail call i32 %arg0() [ "ptrauth"(i32 1, i64 %arg1) ]
10799
ret i32 %tmp0
108100
}
109101

110-
; DARWIN-LABEL: _test_tailcall_ia_arg_ind:
111-
; ELF-LABEL: test_tailcall_ia_arg_ind:
112-
; CHECK-NEXT: bti c
113-
; CHECK-NEXT: ldr x16, [x0]
114-
; CHECK-NEXT: braa x16, x1
102+
; CHECK-LABEL: test_tailcall_ia_arg_ind:
103+
; CHECK-NEXT: bti c
104+
; CHECK-NEXT: ldr x16, [x0]
105+
; CHECK-NEXT: braa x16, x1
115106
define i32 @test_tailcall_ia_arg_ind(i32 ()** %arg0, i64 %arg1) #0 {
116107
%tmp0 = load i32 ()*, i32 ()** %arg0
117108
%tmp1 = tail call i32 %tmp0() [ "ptrauth"(i32 0, i64 %arg1) ]
118109
ret i32 %tmp1
119110
}
120111

121-
; DARWIN-LABEL: _test_tailcall_ib_arg_ind:
122-
; ELF-LABEL: test_tailcall_ib_arg_ind:
123-
; CHECK-NEXT: bti c
124-
; CHECK-NEXT: ldr x16, [x0]
125-
; CHECK-NEXT: brab x16, x1
112+
; CHECK-LABEL: test_tailcall_ib_arg_ind:
113+
; CHECK-NEXT: bti c
114+
; CHECK-NEXT: ldr x16, [x0]
115+
; CHECK-NEXT: brab x16, x1
126116
define i32 @test_tailcall_ib_arg_ind(i32 ()** %arg0, i64 %arg1) #0 {
127117
%tmp0 = load i32 ()*, i32 ()** %arg0
128118
%tmp1 = tail call i32 %tmp0() [ "ptrauth"(i32 1, i64 %arg1) ]

llvm/test/CodeGen/AArch64/ptrauth-intrinsic-blend.ll

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,46 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs \
3-
; RUN: -global-isel=0 | FileCheck %s --check-prefixes=DARWIN,CHECK
4-
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs \
5-
; RUN: -global-isel=1 -global-isel-abort=1 | FileCheck %s --check-prefixes=DARWIN,CHECK
6-
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs \
7-
; RUN: -global-isel=0 | FileCheck %s --check-prefixes=ELF,CHECK
8-
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs \
9-
; RUN: -global-isel=1 -global-isel-abort=1 | FileCheck %s --check-prefixes=ELF,CHECK
2+
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs -global-isel=0 | FileCheck %s
3+
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs -global-isel=1 -global-isel-abort=1 | FileCheck %s
4+
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs -global-isel=0 | FileCheck %s
5+
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs -global-isel=1 -global-isel-abort=1 | FileCheck %s
106

117
define i64 @test_blend(i64 %arg, i64 %arg1) {
12-
; DARWIN-LABEL: _test_blend:
13-
; ELF-LABEL: test_blend:
14-
; DARWIN: ; %bb.0:
15-
; ELF: // %bb.0:
16-
; CHECK-NEXT: bfi x0, x1, #48, #16
17-
; CHECK-NEXT: ret
8+
; CHECK-LABEL: test_blend:
9+
; CHECK: %bb.0:
10+
; CHECK-NEXT: bfi x0, x1, #48, #16
11+
; CHECK-NEXT: ret
1812
%tmp = call i64 @llvm.ptrauth.blend(i64 %arg, i64 %arg1)
1913
ret i64 %tmp
2014
}
2115

2216
define i64 @test_blend_constant(i64 %arg) {
23-
; DARWIN-LABEL: _test_blend_constant:
24-
; ELF-LABEL: test_blend_constant:
25-
; DARWIN: ; %bb.0:
26-
; ELF: // %bb.0:
27-
; CHECK-NEXT: movk x0, #12345, lsl #48
28-
; CHECK-NEXT: ret
17+
; CHECK-LABEL: test_blend_constant:
18+
; CHECK: %bb.0:
19+
; CHECK-NEXT: movk x0, #12345, lsl #48
20+
; CHECK-NEXT: ret
2921
%tmp = call i64 @llvm.ptrauth.blend(i64 %arg, i64 12345)
3022
ret i64 %tmp
3123
}
3224

3325
; Blend isn't commutative.
3426
define i64 @test_blend_constant_swapped(i64 %arg) {
35-
; DARWIN-LABEL: _test_blend_constant_swapped:
36-
; ELF-LABEL: test_blend_constant_swapped:
37-
; DARWIN: ; %bb.0:
38-
; ELF: // %bb.0:
39-
; CHECK-NEXT: mov w8, #12345
40-
; CHECK-NEXT: bfi x8, x0, #48, #16
41-
; CHECK-NEXT: mov x0, x8
42-
; CHECK-NEXT: ret
27+
; CHECK-LABEL: test_blend_constant_swapped:
28+
; CHECK: %bb.0:
29+
; CHECK-NEXT: mov w8, #12345
30+
; CHECK-NEXT: bfi x8, x0, #48, #16
31+
; CHECK-NEXT: mov x0, x8
32+
; CHECK-NEXT: ret
4333
%tmp = call i64 @llvm.ptrauth.blend(i64 12345, i64 %arg)
4434
ret i64 %tmp
4535
}
4636

4737
; Blends of constants wider than 16 bits truncate the constant.
4838
define i64 @test_blend_constant_wide(i64 %arg) {
49-
; DARWIN-LABEL: _test_blend_constant_wide:
50-
; ELF-LABEL: test_blend_constant_wide:
51-
; DARWIN: ; %bb.0:
52-
; ELF: // %bb.0:
53-
; CHECK-NEXT: mov w8, #65536
54-
; CHECK-NEXT: bfi x0, x8, #48, #16
55-
; CHECK-NEXT: ret
39+
; CHECK-LABEL: test_blend_constant_wide:
40+
; CHECK: %bb.0:
41+
; CHECK-NEXT: mov w8, #65536
42+
; CHECK-NEXT: bfi x0, x8, #48, #16
43+
; CHECK-NEXT: ret
5644
%tmp = call i64 @llvm.ptrauth.blend(i64 %arg, i64 65536)
5745
ret i64 %tmp
5846
}

llvm/test/CodeGen/AArch64/ptrauth-intrinsic-sign-generic.ll

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs \
3-
; RUN: -global-isel=0 | FileCheck %s --check-prefixes=DARWIN,CHECK
4-
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs \
5-
; RUN: -global-isel=1 -global-isel-abort=1 | FileCheck %s --check-prefixes=DARWIN,CHECK
6-
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs \
7-
; RUN: -global-isel=0 | FileCheck %s --check-prefixes=ELF,CHECK
8-
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs \
9-
; RUN: -global-isel=1 -global-isel-abort=1 | FileCheck %s --check-prefixes=ELF,CHECK
2+
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs -global-isel=0 | FileCheck %s
3+
; RUN: llc < %s -mtriple arm64e-apple-darwin -verify-machineinstrs -global-isel=1 -global-isel-abort=1 | FileCheck %s
4+
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs -global-isel=0 | FileCheck %s
5+
; RUN: llc < %s -mtriple aarch64-linux-gnu -mattr=+pauth -verify-machineinstrs -global-isel=1 -global-isel-abort=1 | FileCheck %s
106

117
define i64 @test_sign_generic(i64 %arg, i64 %arg1) {
12-
; DARWIN-LABEL: _test_sign_generic:
13-
; ELF-LABEL: test_sign_generic:
14-
; DARWIN: ; %bb.0:
15-
; ELF: // %bb.0:
16-
; CHECK-NEXT: pacga x0, x0, x1
17-
; CHECK-NEXT: ret
8+
; CHECK-LABEL: test_sign_generic:
9+
; CHECK: %bb.0:
10+
; CHECK-NEXT: pacga x0, x0, x1
11+
; CHECK-NEXT: ret
1812
%tmp = call i64 @llvm.ptrauth.sign.generic(i64 %arg, i64 %arg1)
1913
ret i64 %tmp
2014
}

0 commit comments

Comments
 (0)