xref: /llvm-project/llvm/test/CodeGen/AMDGPU/annotate-noclobber.ll (revision 77e68fbdd3fdc205bafa042fcb87014011dc7799)
1; RUN: opt -S -mtriple=amdgcn-amd-amdhsa --amdgpu-annotate-uniform < %s | FileCheck -check-prefix=OPT %s
2; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-annotate-uniform < %s | FileCheck -check-prefix=OPT %s
3target datalayout = "A5"
4
5
6; OPT-LABEL: @amdgpu_noclobber_global(
7; OPT-NEXT: %load = load i32, ptr addrspace(1) %in, align 4, !amdgpu.noclobber !0
8define amdgpu_kernel void @amdgpu_noclobber_global( ptr addrspace(1) %in,  ptr addrspace(1) %out) {
9  %load = load i32, ptr addrspace(1) %in, align 4
10  store i32 %load, ptr addrspace(1) %out, align 4
11  ret void
12}
13
14; OPT-LABEL: @amdgpu_noclobber_local(
15; OPT-NEXT: %load = load i32, ptr addrspace(3) %in, align 4
16define amdgpu_kernel void @amdgpu_noclobber_local( ptr addrspace(3) %in,  ptr addrspace(1) %out) {
17  %load = load i32, ptr addrspace(3) %in, align 4
18  store i32 %load, ptr addrspace(1) %out, align 4
19  ret void
20}
21
22; OPT-LABEL: @amdgpu_noclobber_private(
23; OPT-NEXT: %load = load i32, ptr addrspace(5) %in, align 4
24define amdgpu_kernel void @amdgpu_noclobber_private( ptr addrspace(5) %in,  ptr addrspace(1) %out) {
25  %load = load i32, ptr addrspace(5) %in, align 4
26  store i32 %load, ptr addrspace(1) %out, align 4
27  ret void
28}
29
30; OPT-LABEL: @amdgpu_noclobber_flat(
31; OPT-NEXT: %load = load i32, ptr addrspace(4) %in, align 4
32define amdgpu_kernel void @amdgpu_noclobber_flat( ptr addrspace(4) %in,  ptr addrspace(1) %out) {
33  %load = load i32, ptr addrspace(4) %in, align 4
34  store i32 %load, ptr addrspace(1) %out, align 4
35  ret void
36}
37