6
6
7
7
; RUN: llc -mtriple arm64e-apple-darwin -o - %s -asm-verbose=0 \
8
8
; RUN: -global-isel -global-isel-abort=1 -verify-machineinstrs \
9
- ; RUN: | FileCheck %s --check-prefixes=CHECK,DARWIN
9
+ ; RUN: | FileCheck %s --check-prefixes=CHECK,DARWIN
10
10
11
11
; RUN: llc -mtriple aarch64 -mattr=+pauth -o - %s -asm-verbose=0 \
12
12
; RUN: -global-isel -global-isel-abort=1 -verify-machineinstrs \
13
- ; RUN: | FileCheck %s --check-prefixes=CHECK,ELF
13
+ ; RUN: | FileCheck %s --check-prefixes=CHECK,ELF
14
14
15
15
16
- define i32 @test_call_ia_0 (i32 ()* %arg0 ) #0 {
16
+ define i32 @test_call_ia_0 (ptr %arg0 ) #0 {
17
17
; DARWIN-LABEL: test_call_ia_0:
18
18
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
19
19
; DARWIN-NEXT: blraaz x0
@@ -29,7 +29,7 @@ define i32 @test_call_ia_0(i32 ()* %arg0) #0 {
29
29
ret i32 %tmp0
30
30
}
31
31
32
- define i32 @test_call_ib_0 (i32 ()* %arg0 ) #0 {
32
+ define i32 @test_call_ib_0 (ptr %arg0 ) #0 {
33
33
; DARWIN-LABEL: test_call_ib_0:
34
34
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
35
35
; DARWIN-NEXT: blrabz x0
@@ -45,21 +45,21 @@ define i32 @test_call_ib_0(i32 ()* %arg0) #0 {
45
45
ret i32 %tmp0
46
46
}
47
47
48
- define i32 @test_tailcall_ia_0 (i32 ()* %arg0 ) #0 {
48
+ define i32 @test_tailcall_ia_0 (ptr %arg0 ) #0 {
49
49
; CHECK-LABEL: test_tailcall_ia_0:
50
- ; CHECK: braaz x0
50
+ ; CHECK-NEXT : braaz x0
51
51
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 0 , i64 0 ) ]
52
52
ret i32 %tmp0
53
53
}
54
54
55
- define i32 @test_tailcall_ib_0 (i32 ()* %arg0 ) #0 {
55
+ define i32 @test_tailcall_ib_0 (ptr %arg0 ) #0 {
56
56
; CHECK-LABEL: test_tailcall_ib_0:
57
- ; CHECK: brabz x0
57
+ ; CHECK-NEXT: brabz x0
58
58
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 1 , i64 0 ) ]
59
59
ret i32 %tmp0
60
60
}
61
61
62
- define i32 @test_call_ia_imm (i32 ()* %arg0 ) #0 {
62
+ define i32 @test_call_ia_imm (ptr %arg0 ) #0 {
63
63
; DARWIN-LABEL: test_call_ia_imm:
64
64
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
65
65
; DARWIN-NEXT: mov x17, #42
@@ -77,7 +77,7 @@ define i32 @test_call_ia_imm(i32 ()* %arg0) #0 {
77
77
ret i32 %tmp0
78
78
}
79
79
80
- define i32 @test_call_ib_imm (i32 ()* %arg0 ) #0 {
80
+ define i32 @test_call_ib_imm (ptr %arg0 ) #0 {
81
81
; DARWIN-LABEL: test_call_ib_imm:
82
82
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
83
83
; DARWIN-NEXT: mov x17, #42
@@ -95,23 +95,23 @@ define i32 @test_call_ib_imm(i32 ()* %arg0) #0 {
95
95
ret i32 %tmp0
96
96
}
97
97
98
- define i32 @test_tailcall_ia_imm (i32 ()* %arg0 ) #0 {
98
+ define i32 @test_tailcall_ia_imm (ptr %arg0 ) #0 {
99
99
; CHECK-LABEL: test_tailcall_ia_imm:
100
100
; CHECK-NEXT: mov x16, #42
101
101
; CHECK-NEXT: braa x0, x16
102
102
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 0 , i64 42 ) ]
103
103
ret i32 %tmp0
104
104
}
105
105
106
- define i32 @test_tailcall_ib_imm (i32 ()* %arg0 ) #0 {
106
+ define i32 @test_tailcall_ib_imm (ptr %arg0 ) #0 {
107
107
; CHECK-LABEL: test_tailcall_ib_imm:
108
108
; CHECK-NEXT: mov x16, #42
109
109
; CHECK-NEXT: brab x0, x16
110
110
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 1 , i64 42 ) ]
111
111
ret i32 %tmp0
112
112
}
113
113
114
- define i32 @test_call_ia_var (i32 ()* %arg0 , i64* %arg1 ) #0 {
114
+ define i32 @test_call_ia_var (ptr %arg0 , ptr %arg1 ) #0 {
115
115
; DARWIN-LABEL: test_call_ia_var:
116
116
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
117
117
; DARWIN-NEXT: ldr x8, [x1]
@@ -125,12 +125,12 @@ define i32 @test_call_ia_var(i32 ()* %arg0, i64* %arg1) #0 {
125
125
; ELF-NEXT: blraa x0, x8
126
126
; ELF-NEXT: ldr x30, [sp], #16
127
127
; ELF-NEXT: ret
128
- %tmp0 = load i64 , i64* %arg1
128
+ %tmp0 = load i64 , ptr %arg1
129
129
%tmp1 = call i32 %arg0 () [ "ptrauth" (i32 0 , i64 %tmp0 ) ]
130
130
ret i32 %tmp1
131
131
}
132
132
133
- define i32 @test_call_ib_var (i32 ()* %arg0 , i64* %arg1 ) #0 {
133
+ define i32 @test_call_ib_var (ptr %arg0 , ptr %arg1 ) #0 {
134
134
; DARWIN-LABEL: test_call_ib_var:
135
135
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
136
136
; DARWIN-NEXT: ldr x8, [x1]
@@ -144,30 +144,30 @@ define i32 @test_call_ib_var(i32 ()* %arg0, i64* %arg1) #0 {
144
144
; ELF-NEXT: blrab x0, x8
145
145
; ELF-NEXT: ldr x30, [sp], #16
146
146
; ELF-NEXT: ret
147
- %tmp0 = load i64 , i64* %arg1
147
+ %tmp0 = load i64 , ptr %arg1
148
148
%tmp1 = call i32 %arg0 () [ "ptrauth" (i32 1 , i64 %tmp0 ) ]
149
149
ret i32 %tmp1
150
150
}
151
151
152
- define i32 @test_tailcall_ia_var (i32 ()* %arg0 , i64* %arg1 ) #0 {
152
+ define i32 @test_tailcall_ia_var (ptr %arg0 , ptr %arg1 ) #0 {
153
153
; CHECK-LABEL: test_tailcall_ia_var:
154
154
; CHECK: ldr x1, [x1]
155
155
; CHECK: braa x0, x1
156
- %tmp0 = load i64 , i64* %arg1
156
+ %tmp0 = load i64 , ptr %arg1
157
157
%tmp1 = tail call i32 %arg0 () [ "ptrauth" (i32 0 , i64 %tmp0 ) ]
158
158
ret i32 %tmp1
159
159
}
160
160
161
- define i32 @test_tailcall_ib_var (i32 ()* %arg0 , i64* %arg1 ) #0 {
161
+ define i32 @test_tailcall_ib_var (ptr %arg0 , ptr %arg1 ) #0 {
162
162
; CHECK-LABEL: test_tailcall_ib_var:
163
163
; CHECK: ldr x1, [x1]
164
164
; CHECK: brab x0, x1
165
- %tmp0 = load i64 , i64* %arg1
165
+ %tmp0 = load i64 , ptr %arg1
166
166
%tmp1 = tail call i32 %arg0 () [ "ptrauth" (i32 1 , i64 %tmp0 ) ]
167
167
ret i32 %tmp1
168
168
}
169
169
170
- define i32 @test_call_ia_arg (i32 ()* %arg0 , i64 %arg1 ) #0 {
170
+ define i32 @test_call_ia_arg (ptr %arg0 , i64 %arg1 ) #0 {
171
171
; DARWIN-LABEL: test_call_ia_arg:
172
172
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
173
173
; DARWIN-NEXT: blraa x0, x1
@@ -183,7 +183,7 @@ define i32 @test_call_ia_arg(i32 ()* %arg0, i64 %arg1) #0 {
183
183
ret i32 %tmp0
184
184
}
185
185
186
- define i32 @test_call_ib_arg (i32 ()* %arg0 , i64 %arg1 ) #0 {
186
+ define i32 @test_call_ib_arg (ptr %arg0 , i64 %arg1 ) #0 {
187
187
; DARWIN-LABEL: test_call_ib_arg:
188
188
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
189
189
; DARWIN-NEXT: blrab x0, x1
@@ -199,21 +199,21 @@ define i32 @test_call_ib_arg(i32 ()* %arg0, i64 %arg1) #0 {
199
199
ret i32 %tmp0
200
200
}
201
201
202
- define i32 @test_tailcall_ia_arg (i32 ()* %arg0 , i64 %arg1 ) #0 {
202
+ define i32 @test_tailcall_ia_arg (ptr %arg0 , i64 %arg1 ) #0 {
203
203
; CHECK-LABEL: test_tailcall_ia_arg:
204
204
; CHECK: braa x0, x1
205
205
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 0 , i64 %arg1 ) ]
206
206
ret i32 %tmp0
207
207
}
208
208
209
- define i32 @test_tailcall_ib_arg (i32 ()* %arg0 , i64 %arg1 ) #0 {
209
+ define i32 @test_tailcall_ib_arg (ptr %arg0 , i64 %arg1 ) #0 {
210
210
; CHECK-LABEL: test_tailcall_ib_arg:
211
211
; CHECK: brab x0, x1
212
212
%tmp0 = tail call i32 %arg0 () [ "ptrauth" (i32 1 , i64 %arg1 ) ]
213
213
ret i32 %tmp0
214
214
}
215
215
216
- define i32 @test_call_ia_arg_ind (i32 ()** %arg0 , i64 %arg1 ) #0 {
216
+ define i32 @test_call_ia_arg_ind (ptr %arg0 , i64 %arg1 ) #0 {
217
217
; DARWIN-LABEL: test_call_ia_arg_ind:
218
218
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
219
219
; DARWIN-NEXT: ldr x8, [x0]
@@ -227,12 +227,12 @@ define i32 @test_call_ia_arg_ind(i32 ()** %arg0, i64 %arg1) #0 {
227
227
; ELF-NEXT: blraa x8, x1
228
228
; ELF-NEXT: ldr x30, [sp], #16
229
229
; ELF-NEXT: ret
230
- %tmp0 = load i32 ()*, i32 ()** %arg0
230
+ %tmp0 = load ptr , ptr %arg0
231
231
%tmp1 = call i32 %tmp0 () [ "ptrauth" (i32 0 , i64 %arg1 ) ]
232
232
ret i32 %tmp1
233
233
}
234
234
235
- define i32 @test_call_ib_arg_ind (i32 ()** %arg0 , i64 %arg1 ) #0 {
235
+ define i32 @test_call_ib_arg_ind (ptr %arg0 , i64 %arg1 ) #0 {
236
236
; DARWIN-LABEL: test_call_ib_arg_ind:
237
237
; DARWIN-NEXT: stp x29, x30, [sp, #-16]!
238
238
; DARWIN-NEXT: ldr x8, [x0]
@@ -246,25 +246,25 @@ define i32 @test_call_ib_arg_ind(i32 ()** %arg0, i64 %arg1) #0 {
246
246
; ELF-NEXT: blrab x8, x1
247
247
; ELF-NEXT: ldr x30, [sp], #16
248
248
; ELF-NEXT: ret
249
- %tmp0 = load i32 ()*, i32 ()** %arg0
249
+ %tmp0 = load ptr , ptr %arg0
250
250
%tmp1 = call i32 %tmp0 () [ "ptrauth" (i32 1 , i64 %arg1 ) ]
251
251
ret i32 %tmp1
252
252
}
253
253
254
- define i32 @test_tailcall_ia_arg_ind (i32 ()** %arg0 , i64 %arg1 ) #0 {
254
+ define i32 @test_tailcall_ia_arg_ind (ptr %arg0 , i64 %arg1 ) #0 {
255
255
; CHECK-LABEL: test_tailcall_ia_arg_ind:
256
256
; CHECK: ldr x0, [x0]
257
257
; CHECK: braa x0, x1
258
- %tmp0 = load i32 ()*, i32 ()** %arg0
258
+ %tmp0 = load ptr , ptr %arg0
259
259
%tmp1 = tail call i32 %tmp0 () [ "ptrauth" (i32 0 , i64 %arg1 ) ]
260
260
ret i32 %tmp1
261
261
}
262
262
263
- define i32 @test_tailcall_ib_arg_ind (i32 ()** %arg0 , i64 %arg1 ) #0 {
263
+ define i32 @test_tailcall_ib_arg_ind (ptr %arg0 , i64 %arg1 ) #0 {
264
264
; CHECK-LABEL: test_tailcall_ib_arg_ind:
265
265
; CHECK: ldr x0, [x0]
266
266
; CHECK: brab x0, x1
267
- %tmp0 = load i32 ()*, i32 ()** %arg0
267
+ %tmp0 = load ptr , ptr %arg0
268
268
%tmp1 = tail call i32 %tmp0 () [ "ptrauth" (i32 1 , i64 %arg1 ) ]
269
269
ret i32 %tmp1
270
270
}
0 commit comments