48 lines · plain
1; RUN: not opt -mtriple=amdgcn -mcpu=gfx1250 -passes=verify -disable-output <%s 2>&1 | FileCheck %s2; RUN: not opt -mtriple=amdgcn -mcpu=gfx1251 -passes=verify -disable-output <%s 2>&1 | FileCheck %s3 4; CHECK: cooperative atomic intrinsics require a generic or global pointer5define i32 @load_local_as(ptr addrspace(3) noundef %addr) {6entry:7 %res = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p3(ptr addrspace(3) %addr, i32 0, metadata !0)8 ret i32 %res9}10 11; CHECK: cooperative atomic intrinsics require a generic or global pointer12define i32 @load_private_as(ptr addrspace(5) noundef %addr) {13entry:14 %res = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p5(ptr addrspace(5) %addr, i32 0, metadata !0)15 ret i32 %res16}17 18; CHECK: cooperative atomic intrinsics require a generic or global pointer19define void @store_local_as(ptr addrspace(3) noundef %addr, i32 noundef %val) {20entry:21 tail call void @llvm.amdgcn.cooperative.atomic.store.32x4B.p3(ptr addrspace(3) %addr, i32 %val, i32 0, metadata !0)22 ret void23}24 25; CHECK: cooperative atomic intrinsics require a generic or global pointer26define void @store_private_as(ptr addrspace(5) noundef %addr, i32 noundef %val) {27entry:28 tail call void @llvm.amdgcn.cooperative.atomic.store.32x4B.p5(ptr addrspace(5) %addr, i32 %val, i32 0, metadata !0)29 ret void30}31 32 33; CHECK: cooperative atomic intrinsics require that the last argument is a metadata string34define i32 @test_empty_md(ptr noundef readonly %addr) {35entry:36 %0 = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p0(ptr %addr, i32 1, metadata !{})37 ret i32 %038}39 40; CHECK: cooperative atomic intrinsics require that the last argument is a metadata string41define i32 @test_no_md_str(ptr noundef readonly %addr) {42entry:43 %0 = tail call i32 @llvm.amdgcn.cooperative.atomic.load.32x4B.p0(ptr %addr, i32 1, metadata !{!{}})44 ret i32 %045}46 47!0 = !{ !"" }48