brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · d5b3ee7 Raw
52 lines · plain
1; RUN: llc -mtriple=amdgcn -amdgpu-atomic-optimizer-strategy=None < %s | FileCheck -check-prefixes=GCN,SICIVI,FUNC %s2; RUN: llc -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global -amdgpu-atomic-optimizer-strategy=None < %s | FileCheck -check-prefixes=GCN,SICIVI,FUNC %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-atomic-optimizer-strategy=None < %s | FileCheck -check-prefixes=GCN,GFX9,FUNC %s4; RUN: llc -mtriple=r600 -mcpu=redwood -amdgpu-atomic-optimizer-strategy=None < %s | FileCheck -check-prefixes=R600,FUNC %s5 6; FUNC-LABEL: {{^}}atomic_add_local:7; SICIVI: s_mov_b32 m08; GFX9-NOT: m09; R600: LDS_ADD *10; GCN: ds_add_u3211define amdgpu_kernel void @atomic_add_local(ptr addrspace(3) %local) {12   %unused = atomicrmw volatile add ptr addrspace(3) %local, i32 5 seq_cst13   ret void14}15 16; FUNC-LABEL: {{^}}atomic_add_local_const_offset:17; SICIVI: s_mov_b32 m018; GFX9-NOT: m019 20; R600: LDS_ADD *21; GCN: ds_add_u32 v{{[0-9]+}}, v{{[0-9]+}} offset:1622define amdgpu_kernel void @atomic_add_local_const_offset(ptr addrspace(3) %local) {23  %gep = getelementptr i32, ptr addrspace(3) %local, i32 424  %val = atomicrmw volatile add ptr addrspace(3) %gep, i32 5 seq_cst25  ret void26}27 28; FUNC-LABEL: {{^}}atomic_add_ret_local:29; SICIVI: s_mov_b32 m030; GFX9-NOT: m031 32; R600: LDS_ADD_RET *33; GCN: ds_add_rtn_u3234define amdgpu_kernel void @atomic_add_ret_local(ptr addrspace(1) %out, ptr addrspace(3) %local) {35  %val = atomicrmw volatile add ptr addrspace(3) %local, i32 5 seq_cst36  store i32 %val, ptr addrspace(1) %out37  ret void38}39 40; FUNC-LABEL: {{^}}atomic_add_ret_local_const_offset:41; SICIVI: s_mov_b32 m042; GFX9-NOT: m043 44; R600: LDS_ADD_RET *45; GCN: ds_add_rtn_u32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset:2046define amdgpu_kernel void @atomic_add_ret_local_const_offset(ptr addrspace(1) %out, ptr addrspace(3) %local) {47  %gep = getelementptr i32, ptr addrspace(3) %local, i32 548  %val = atomicrmw volatile add ptr addrspace(3) %gep, i32 5 seq_cst49  store i32 %val, ptr addrspace(1) %out50  ret void51}52