| ; RUN: not opt -mtriple=amdgcn -mcpu=gfx1250 -passes=verify -disable-output <%s 2>&1 | FileCheck %s |
| ; RUN: not opt -mtriple=amdgcn -mcpu=gfx1251 -passes=verify -disable-output <%s 2>&1 | FileCheck %s |
| |
| ; CHECK: cooperative atomic intrinsics require a generic or global pointer |
| define i32 @load_local_as(ptr addrspace(3) noundef %addr) { |
| entry: |
| %res = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p3(ptr addrspace(3) %addr, i32 0, metadata !0) |
| ret i32 %res |
| } |
| |
| ; CHECK: cooperative atomic intrinsics require a generic or global pointer |
| define i32 @load_private_as(ptr addrspace(5) noundef %addr) { |
| entry: |
| %res = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p5(ptr addrspace(5) %addr, i32 0, metadata !0) |
| ret i32 %res |
| } |
| |
| ; CHECK: cooperative atomic intrinsics require a generic or global pointer |
| define void @store_local_as(ptr addrspace(3) noundef %addr, i32 noundef %val) { |
| entry: |
| tail call void @llvm.amdgcn.cooperative.atomic.store.32x4B.p3(ptr addrspace(3) %addr, i32 %val, i32 0, metadata !0) |
| ret void |
| } |
| |
| ; CHECK: cooperative atomic intrinsics require a generic or global pointer |
| define void @store_private_as(ptr addrspace(5) noundef %addr, i32 noundef %val) { |
| entry: |
| tail call void @llvm.amdgcn.cooperative.atomic.store.32x4B.p5(ptr addrspace(5) %addr, i32 %val, i32 0, metadata !0) |
| ret void |
| } |
| |
| |
| ; CHECK: cooperative atomic intrinsics require that the last argument is a metadata string |
| define i32 @test_empty_md(ptr noundef readonly %addr) { |
| entry: |
| %0 = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p0(ptr %addr, i32 1, metadata !{}) |
| ret i32 %0 |
| } |
| |
| ; CHECK: cooperative atomic intrinsics require that the last argument is a metadata string |
| define i32 @test_no_md_str(ptr noundef readonly %addr) { |
| entry: |
| %0 = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p0(ptr %addr, i32 1, metadata !{!{}}) |
| ret i32 %0 |
| } |
| |
| !0 = !{ !"" } |