@@ -44,13 +44,13 @@ define void @with_global_to_flat_addrspacecast(ptr addrspace(1) %ptr) {
44
44
; GFX9-LABEL: define void @with_global_to_flat_addrspacecast(
45
45
; GFX9-SAME: ptr addrspace(1) [[PTR:%.*]]) #[[ATTR0]] {
46
46
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(1) [[PTR]] to ptr
47
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
47
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META0:![0-9]+]]
48
48
; GFX9-NEXT: ret void
49
49
;
50
50
; GFX10-LABEL: define void @with_global_to_flat_addrspacecast(
51
51
; GFX10-SAME: ptr addrspace(1) [[PTR:%.*]]) #[[ATTR0]] {
52
52
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(1) [[PTR]] to ptr
53
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
53
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META0:![0-9]+]]
54
54
; GFX10-NEXT: ret void
55
55
;
56
56
%stof = addrspacecast ptr addrspace (1 ) %ptr to ptr
@@ -62,13 +62,13 @@ define amdgpu_kernel void @with_global_to_flat_addrspacecast_cc_kernel(ptr addrs
62
62
; GFX9-LABEL: define amdgpu_kernel void @with_global_to_flat_addrspacecast_cc_kernel(
63
63
; GFX9-SAME: ptr addrspace(1) [[PTR:%.*]]) #[[ATTR0]] {
64
64
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(1) [[PTR]] to ptr
65
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
65
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META0]]
66
66
; GFX9-NEXT: ret void
67
67
;
68
68
; GFX10-LABEL: define amdgpu_kernel void @with_global_to_flat_addrspacecast_cc_kernel(
69
69
; GFX10-SAME: ptr addrspace(1) [[PTR:%.*]]) #[[ATTR0]] {
70
70
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(1) [[PTR]] to ptr
71
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
71
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META0]]
72
72
; GFX10-NEXT: ret void
73
73
;
74
74
%stof = addrspacecast ptr addrspace (1 ) %ptr to ptr
@@ -110,13 +110,13 @@ define void @with_region_to_flat_addrspacecast(ptr addrspace(2) %ptr) {
110
110
; GFX9-LABEL: define void @with_region_to_flat_addrspacecast(
111
111
; GFX9-SAME: ptr addrspace(2) [[PTR:%.*]]) #[[ATTR0]] {
112
112
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(2) [[PTR]] to ptr
113
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
113
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META1:![0-9]+]]
114
114
; GFX9-NEXT: ret void
115
115
;
116
116
; GFX10-LABEL: define void @with_region_to_flat_addrspacecast(
117
117
; GFX10-SAME: ptr addrspace(2) [[PTR:%.*]]) #[[ATTR0]] {
118
118
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(2) [[PTR]] to ptr
119
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
119
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META1:![0-9]+]]
120
120
; GFX10-NEXT: ret void
121
121
;
122
122
%stof = addrspacecast ptr addrspace (2 ) %ptr to ptr
@@ -128,13 +128,13 @@ define amdgpu_kernel void @with_region_to_flat_addrspacecast_cc_kernel(ptr addrs
128
128
; GFX9-LABEL: define amdgpu_kernel void @with_region_to_flat_addrspacecast_cc_kernel(
129
129
; GFX9-SAME: ptr addrspace(2) [[PTR:%.*]]) #[[ATTR0]] {
130
130
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(2) [[PTR]] to ptr
131
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
131
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META1]]
132
132
; GFX9-NEXT: ret void
133
133
;
134
134
; GFX10-LABEL: define amdgpu_kernel void @with_region_to_flat_addrspacecast_cc_kernel(
135
135
; GFX10-SAME: ptr addrspace(2) [[PTR:%.*]]) #[[ATTR0]] {
136
136
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(2) [[PTR]] to ptr
137
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
137
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META1]]
138
138
; GFX10-NEXT: ret void
139
139
;
140
140
%stof = addrspacecast ptr addrspace (2 ) %ptr to ptr
@@ -176,13 +176,13 @@ define void @with_group_to_flat_addrspacecast(ptr addrspace(3) %ptr) {
176
176
; GFX9-LABEL: define void @with_group_to_flat_addrspacecast(
177
177
; GFX9-SAME: ptr addrspace(3) [[PTR:%.*]]) #[[ATTR0]] {
178
178
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(3) [[PTR]] to ptr
179
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
179
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META2:![0-9]+]]
180
180
; GFX9-NEXT: ret void
181
181
;
182
182
; GFX10-LABEL: define void @with_group_to_flat_addrspacecast(
183
183
; GFX10-SAME: ptr addrspace(3) [[PTR:%.*]]) #[[ATTR0]] {
184
184
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(3) [[PTR]] to ptr
185
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
185
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META2:![0-9]+]]
186
186
; GFX10-NEXT: ret void
187
187
;
188
188
%stof = addrspacecast ptr addrspace (3 ) %ptr to ptr
@@ -194,13 +194,13 @@ define amdgpu_kernel void @with_group_to_flat_addrspacecast_cc_kernel(ptr addrsp
194
194
; GFX9-LABEL: define amdgpu_kernel void @with_group_to_flat_addrspacecast_cc_kernel(
195
195
; GFX9-SAME: ptr addrspace(3) [[PTR:%.*]]) #[[ATTR0]] {
196
196
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(3) [[PTR]] to ptr
197
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
197
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META2]]
198
198
; GFX9-NEXT: ret void
199
199
;
200
200
; GFX10-LABEL: define amdgpu_kernel void @with_group_to_flat_addrspacecast_cc_kernel(
201
201
; GFX10-SAME: ptr addrspace(3) [[PTR:%.*]]) #[[ATTR0]] {
202
202
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(3) [[PTR]] to ptr
203
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
203
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META2]]
204
204
; GFX10-NEXT: ret void
205
205
;
206
206
%stof = addrspacecast ptr addrspace (3 ) %ptr to ptr
@@ -242,13 +242,13 @@ define void @with_constant_to_flat_addrspacecast(ptr addrspace(4) %ptr) {
242
242
; GFX9-LABEL: define void @with_constant_to_flat_addrspacecast(
243
243
; GFX9-SAME: ptr addrspace(4) [[PTR:%.*]]) #[[ATTR0]] {
244
244
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(4) [[PTR]] to ptr
245
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
245
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META3:![0-9]+]]
246
246
; GFX9-NEXT: ret void
247
247
;
248
248
; GFX10-LABEL: define void @with_constant_to_flat_addrspacecast(
249
249
; GFX10-SAME: ptr addrspace(4) [[PTR:%.*]]) #[[ATTR0]] {
250
250
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(4) [[PTR]] to ptr
251
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
251
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META3:![0-9]+]]
252
252
; GFX10-NEXT: ret void
253
253
;
254
254
%stof = addrspacecast ptr addrspace (4 ) %ptr to ptr
@@ -260,13 +260,13 @@ define amdgpu_kernel void @with_constant_to_flat_addrspacecast_cc_kernel(ptr add
260
260
; GFX9-LABEL: define amdgpu_kernel void @with_constant_to_flat_addrspacecast_cc_kernel(
261
261
; GFX9-SAME: ptr addrspace(4) [[PTR:%.*]]) #[[ATTR0]] {
262
262
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(4) [[PTR]] to ptr
263
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
263
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META3]]
264
264
; GFX9-NEXT: ret void
265
265
;
266
266
; GFX10-LABEL: define amdgpu_kernel void @with_constant_to_flat_addrspacecast_cc_kernel(
267
267
; GFX10-SAME: ptr addrspace(4) [[PTR:%.*]]) #[[ATTR0]] {
268
268
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(4) [[PTR]] to ptr
269
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
269
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META3]]
270
270
; GFX10-NEXT: ret void
271
271
;
272
272
%stof = addrspacecast ptr addrspace (4 ) %ptr to ptr
@@ -308,13 +308,13 @@ define void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
308
308
; GFX9-LABEL: define void @with_private_to_flat_addrspacecast(
309
309
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1:[0-9]+]] {
310
310
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
311
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
311
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4:![0-9]+]]
312
312
; GFX9-NEXT: ret void
313
313
;
314
314
; GFX10-LABEL: define void @with_private_to_flat_addrspacecast(
315
315
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1:[0-9]+]] {
316
316
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
317
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
317
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4:![0-9]+]]
318
318
; GFX10-NEXT: ret void
319
319
;
320
320
%stof = addrspacecast ptr addrspace (5 ) %ptr to ptr
@@ -326,13 +326,13 @@ define amdgpu_kernel void @with_private_to_flat_addrspacecast_cc_kernel(ptr addr
326
326
; GFX9-LABEL: define amdgpu_kernel void @with_private_to_flat_addrspacecast_cc_kernel(
327
327
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
328
328
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
329
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
329
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
330
330
; GFX9-NEXT: ret void
331
331
;
332
332
; GFX10-LABEL: define amdgpu_kernel void @with_private_to_flat_addrspacecast_cc_kernel(
333
333
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
334
334
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
335
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
335
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
336
336
; GFX10-NEXT: ret void
337
337
;
338
338
%stof = addrspacecast ptr addrspace (5 ) %ptr to ptr
@@ -530,14 +530,14 @@ define void @with_cast_call_without_private_to_flat_addrspacecast(ptr addrspace(
530
530
; GFX9-LABEL: define void @with_cast_call_without_private_to_flat_addrspacecast(
531
531
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
532
532
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
533
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
533
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
534
534
; GFX9-NEXT: call void @without_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
535
535
; GFX9-NEXT: ret void
536
536
;
537
537
; GFX10-LABEL: define void @with_cast_call_without_private_to_flat_addrspacecast(
538
538
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
539
539
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
540
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
540
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
541
541
; GFX10-NEXT: call void @without_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
542
542
; GFX10-NEXT: ret void
543
543
;
@@ -551,14 +551,14 @@ define amdgpu_kernel void @with_cast_call_without_private_to_flat_addrspacecast_
551
551
; GFX9-LABEL: define amdgpu_kernel void @with_cast_call_without_private_to_flat_addrspacecast_cc_kernel(
552
552
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
553
553
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
554
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
554
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
555
555
; GFX9-NEXT: call void @without_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
556
556
; GFX9-NEXT: ret void
557
557
;
558
558
; GFX10-LABEL: define amdgpu_kernel void @with_cast_call_without_private_to_flat_addrspacecast_cc_kernel(
559
559
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
560
560
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
561
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
561
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
562
562
; GFX10-NEXT: call void @without_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
563
563
; GFX10-NEXT: ret void
564
564
;
@@ -572,14 +572,14 @@ define void @with_cast_call_with_private_to_flat_addrspacecast(ptr addrspace(5)
572
572
; GFX9-LABEL: define void @with_cast_call_with_private_to_flat_addrspacecast(
573
573
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
574
574
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
575
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
575
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
576
576
; GFX9-NEXT: call void @with_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
577
577
; GFX9-NEXT: ret void
578
578
;
579
579
; GFX10-LABEL: define void @with_cast_call_with_private_to_flat_addrspacecast(
580
580
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
581
581
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
582
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
582
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
583
583
; GFX10-NEXT: call void @with_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
584
584
; GFX10-NEXT: ret void
585
585
;
@@ -593,14 +593,14 @@ define amdgpu_kernel void @with_cast_call_with_private_to_flat_addrspacecast_cc_
593
593
; GFX9-LABEL: define amdgpu_kernel void @with_cast_call_with_private_to_flat_addrspacecast_cc_kernel(
594
594
; GFX9-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
595
595
; GFX9-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
596
- ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4
596
+ ; GFX9-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
597
597
; GFX9-NEXT: call void @with_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
598
598
; GFX9-NEXT: ret void
599
599
;
600
600
; GFX10-LABEL: define amdgpu_kernel void @with_cast_call_with_private_to_flat_addrspacecast_cc_kernel(
601
601
; GFX10-SAME: ptr addrspace(5) [[PTR:%.*]]) #[[ATTR1]] {
602
602
; GFX10-NEXT: [[STOF:%.*]] = addrspacecast ptr addrspace(5) [[PTR]] to ptr
603
- ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4
603
+ ; GFX10-NEXT: store volatile i32 0, ptr [[STOF]], align 4, !noalias.addrspace [[META4]]
604
604
; GFX10-NEXT: call void @with_private_to_flat_addrspacecast(ptr addrspace(5) [[PTR]])
605
605
; GFX10-NEXT: ret void
606
606
;
@@ -879,3 +879,15 @@ define amdgpu_kernel void @with_inline_asm() {
879
879
; GFX10: attributes #[[ATTR4:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) "target-cpu"="gfx1010" }
880
880
; GFX10: attributes #[[ATTR5]] = { "amdgpu-agpr-alloc"="0" "amdgpu-no-completion-action" "amdgpu-no-default-queue" "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-flat-scratch-init" "amdgpu-no-heap-ptr" "amdgpu-no-hostcall-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-multigrid-sync-arg" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "amdgpu-waves-per-eu"="8,20" "target-cpu"="gfx1010" "uniform-work-group-size"="false" }
881
881
;.
882
+ ; GFX9: [[META0]] = !{i32 2, i32 10}
883
+ ; GFX9: [[META1]] = !{i32 1, i32 2, i32 3, i32 10}
884
+ ; GFX9: [[META2]] = !{i32 1, i32 3, i32 4, i32 10}
885
+ ; GFX9: [[META3]] = !{i32 1, i32 4, i32 5, i32 10}
886
+ ; GFX9: [[META4]] = !{i32 1, i32 5, i32 6, i32 10}
887
+ ;.
888
+ ; GFX10: [[META0]] = !{i32 2, i32 10}
889
+ ; GFX10: [[META1]] = !{i32 1, i32 2, i32 3, i32 10}
890
+ ; GFX10: [[META2]] = !{i32 1, i32 3, i32 4, i32 10}
891
+ ; GFX10: [[META3]] = !{i32 1, i32 4, i32 5, i32 10}
892
+ ; GFX10: [[META4]] = !{i32 1, i32 5, i32 6, i32 10}
893
+ ;.
0 commit comments