2
2
; RUN: llc < %s -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -global-isel=0 | FileCheck %s -check-prefix=CHECK
3
3
; RUN: llc < %s -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -global-isel=1 | FileCheck %s -check-prefix=CHECK
4
4
5
- define amdgpu_kernel void @raw_atomic_ptr_buffer_ptr_load_i32 (ptr addrspace (8 ) %ptr ) {
6
- ; CHECK-LABEL: raw_atomic_ptr_buffer_ptr_load_i32 :
5
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_ptr_load_i32 (ptr addrspace (8 ) %ptr ) {
6
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_ptr_load_i32 :
7
7
; CHECK: ; %bb.0: ; %bb
8
8
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
9
9
; CHECK-NEXT: s_mov_b32 s4, 0
23
23
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
24
24
br label %bb1
25
25
bb1:
26
- %load = call i32 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
26
+ %load = call i32 @llvm.amdgcn.raw.ptr.atomic .buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
27
27
%cmp = icmp eq i32 %load , %id
28
28
br i1 %cmp , label %bb1 , label %bb2
29
29
bb2:
30
30
ret void
31
31
}
32
32
33
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_i32_off (ptr addrspace (8 ) %ptr ) {
34
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_i32_off :
33
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_i32_off (ptr addrspace (8 ) %ptr ) {
34
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_i32_off :
35
35
; CHECK: ; %bb.0: ; %bb
36
36
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
37
37
; CHECK-NEXT: s_mov_b32 s4, 0
51
51
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
52
52
br label %bb1
53
53
bb1:
54
- %load = call i32 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
54
+ %load = call i32 @llvm.amdgcn.raw.ptr.atomic .buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
55
55
%cmp = icmp eq i32 %load , %id
56
56
br i1 %cmp , label %bb1 , label %bb2
57
57
bb2:
58
58
ret void
59
59
}
60
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_i32_soff (ptr addrspace (8 ) %ptr ) {
61
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_i32_soff :
60
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_i32_soff (ptr addrspace (8 ) %ptr ) {
61
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_i32_soff :
62
62
; CHECK: ; %bb.0: ; %bb
63
63
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
64
64
; CHECK-NEXT: s_mov_b32 s4, 0
78
78
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
79
79
br label %bb1
80
80
bb1:
81
- %load = call i32 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 4 , i32 1 )
81
+ %load = call i32 @llvm.amdgcn.raw.ptr.atomic .buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 4 , i32 1 )
82
82
%cmp = icmp eq i32 %load , %id
83
83
br i1 %cmp , label %bb1 , label %bb2
84
84
bb2:
85
85
ret void
86
86
}
87
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_i32_dlc (ptr addrspace (8 ) %ptr ) {
88
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_i32_dlc :
87
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_i32_dlc (ptr addrspace (8 ) %ptr ) {
88
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_i32_dlc :
89
89
; CHECK: ; %bb.0: ; %bb
90
90
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
91
91
; CHECK-NEXT: s_mov_b32 s4, 0
@@ -105,15 +105,15 @@ bb:
105
105
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
106
106
br label %bb1
107
107
bb1:
108
- %load = call i32 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 4 )
108
+ %load = call i32 @llvm.amdgcn.raw.ptr.atomic .buffer.load.i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 4 )
109
109
%cmp = icmp eq i32 %load , %id
110
110
br i1 %cmp , label %bb1 , label %bb2
111
111
bb2:
112
112
ret void
113
113
}
114
114
115
- define amdgpu_kernel void @raw_nonatomic_ptr_buffer_load_i32 (ptr addrspace (8 ) %ptr ) {
116
- ; CHECK-LABEL: raw_nonatomic_ptr_buffer_load_i32 :
115
+ define amdgpu_kernel void @raw_nonptr_atomic_buffer_load_i32 (ptr addrspace (8 ) %ptr ) {
116
+ ; CHECK-LABEL: raw_nonptr_atomic_buffer_load_i32 :
117
117
; CHECK: ; %bb.0: ; %bb
118
118
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
119
119
; CHECK-NEXT: s_waitcnt lgkmcnt(0)
141
141
ret void
142
142
}
143
143
144
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_i64 (ptr addrspace (8 ) %ptr ) {
145
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_i64 :
144
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_i64 (ptr addrspace (8 ) %ptr ) {
145
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_i64 :
146
146
; CHECK: ; %bb.0: ; %bb
147
147
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
148
148
; CHECK-NEXT: v_mov_b32_e32 v1, 0
@@ -164,15 +164,15 @@ bb:
164
164
%id.zext = zext i32 %id to i64
165
165
br label %bb1
166
166
bb1:
167
- %load = call i64 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i64 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
167
+ %load = call i64 @llvm.amdgcn.raw.ptr.atomic .buffer.load.i64 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
168
168
%cmp = icmp eq i64 %load , %id.zext
169
169
br i1 %cmp , label %bb1 , label %bb2
170
170
bb2:
171
171
ret void
172
172
}
173
173
174
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_v2i16 (ptr addrspace (8 ) %ptr ) {
175
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_v2i16 :
174
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_v2i16 (ptr addrspace (8 ) %ptr ) {
175
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_v2i16 :
176
176
; CHECK: ; %bb.0: ; %bb
177
177
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
178
178
; CHECK-NEXT: s_mov_b32 s4, 0
@@ -192,16 +192,16 @@ bb:
192
192
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
193
193
br label %bb1
194
194
bb1:
195
- %load = call <2 x i16 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v2i16 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
195
+ %load = call <2 x i16 > @llvm.amdgcn.raw.ptr.atomic .buffer.load.v2i16 (ptr addrspace (8 ) %ptr , i32 0 , i32 0 , i32 1 )
196
196
%bitcast = bitcast <2 x i16 > %load to i32
197
197
%cmp = icmp eq i32 %bitcast , %id
198
198
br i1 %cmp , label %bb1 , label %bb2
199
199
bb2:
200
200
ret void
201
201
}
202
202
203
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_v4i16 (ptr addrspace (8 ) %ptr ) {
204
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_v4i16 :
203
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_v4i16 (ptr addrspace (8 ) %ptr ) {
204
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_v4i16 :
205
205
; CHECK: ; %bb.0: ; %bb
206
206
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
207
207
; CHECK-NEXT: s_mov_b32 s4, 0
224
224
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
225
225
br label %bb1
226
226
bb1:
227
- %load = call <4 x i16 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v4i16 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
227
+ %load = call <4 x i16 > @llvm.amdgcn.raw.ptr.atomic .buffer.load.v4i16 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
228
228
%shortened = shufflevector <4 x i16 > %load , <4 x i16 > poison, <2 x i32 > <i32 0 , i32 2 >
229
229
%bitcast = bitcast <2 x i16 > %shortened to i32
230
230
%cmp = icmp eq i32 %bitcast , %id
233
233
ret void
234
234
}
235
235
236
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_v4i32 (ptr addrspace (8 ) %ptr ) {
237
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_v4i32 :
236
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_v4i32 (ptr addrspace (8 ) %ptr ) {
237
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_v4i32 :
238
238
; CHECK: ; %bb.0: ; %bb
239
239
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
240
240
; CHECK-NEXT: s_mov_b32 s4, 0
@@ -254,16 +254,16 @@ bb:
254
254
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
255
255
br label %bb1
256
256
bb1:
257
- %load = call <4 x i32 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v4i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
257
+ %load = call <4 x i32 > @llvm.amdgcn.raw.ptr.atomic .buffer.load.v4i32 (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
258
258
%extracted = extractelement <4 x i32 > %load , i32 3
259
259
%cmp = icmp eq i32 %extracted , %id
260
260
br i1 %cmp , label %bb1 , label %bb2
261
261
bb2:
262
262
ret void
263
263
}
264
264
265
- define amdgpu_kernel void @raw_atomic_ptr_buffer_load_ptr (ptr addrspace (8 ) %ptr ) {
266
- ; CHECK-LABEL: raw_atomic_ptr_buffer_load_ptr :
265
+ define amdgpu_kernel void @raw_ptr_atomic_buffer_load_ptr (ptr addrspace (8 ) %ptr ) {
266
+ ; CHECK-LABEL: raw_ptr_atomic_buffer_load_ptr :
267
267
; CHECK: ; %bb.0: ; %bb
268
268
; CHECK-NEXT: s_load_b128 s[0:3], s[0:1], 0x24
269
269
; CHECK-NEXT: s_mov_b32 s4, 0
285
285
%id = tail call i32 @llvm.amdgcn.workitem.id.x ()
286
286
br label %bb1
287
287
bb1:
288
- %load = call ptr @llvm.amdgcn.raw.atomic. ptr.buffer.load.ptr (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
288
+ %load = call ptr @llvm.amdgcn.raw.ptr.atomic .buffer.load.ptr (ptr addrspace (8 ) %ptr , i32 4 , i32 0 , i32 1 )
289
289
%elem = load i32 , ptr %load
290
290
%cmp = icmp eq i32 %elem , %id
291
291
br i1 %cmp , label %bb1 , label %bb2
@@ -294,11 +294,11 @@ bb2:
294
294
}
295
295
296
296
; Function Attrs: nounwind readonly
297
- declare i32 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i32 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
298
- declare i64 @llvm.amdgcn.raw.atomic. ptr.buffer.load.i64 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
299
- declare <2 x i16 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v2i16 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
300
- declare <4 x i16 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v4i16 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
301
- declare <4 x i32 > @llvm.amdgcn.raw.atomic. ptr.buffer.load.v4i32 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
302
- declare ptr @llvm.amdgcn.raw.atomic. ptr.buffer.load.ptr (ptr addrspace (8 ), i32 , i32 , i32 immarg)
297
+ declare i32 @llvm.amdgcn.raw.ptr.atom .buffer.load.i32 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
298
+ declare i64 @llvm.amdgcn.raw.ptr.atom .buffer.load.i64 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
299
+ declare <2 x i16 > @llvm.amdgcn.raw.ptr.atom .buffer.load.v2i16 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
300
+ declare <4 x i16 > @llvm.amdgcn.raw.ptr.atom .buffer.load.v4i16 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
301
+ declare <4 x i32 > @llvm.amdgcn.raw.ptr.atom .buffer.load.v4i32 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
302
+ declare ptr @llvm.amdgcn.raw.ptr.atom .buffer.load.ptr (ptr addrspace (8 ), i32 , i32 , i32 immarg)
303
303
declare i32 @llvm.amdgcn.raw.ptr.buffer.load.i32 (ptr addrspace (8 ), i32 , i32 , i32 immarg)
304
304
declare i32 @llvm.amdgcn.workitem.id.x ()
0 commit comments