123 lines · plain
1; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn < %s | FileCheck --check-prefixes=GCN-NOHSA,FUNC %s2; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck --check-prefixes=GCN-HSA,FUNC %s3; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global < %s | FileCheck --check-prefixes=GCN-NOHSA,FUNC %s4 5; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=redwood < %s | FileCheck --check-prefixes=EG,FUNC %s6; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=cayman < %s | FileCheck --check-prefixes=EG,FUNC %s7 8; FUNC-LABEL: {{^}}global_load_i64:9; GCN-NOHSA: buffer_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]10; GCN-NOHSA: buffer_store_dwordx2 [[VAL]]11 12; GCN-HSA: flat_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]13; GCN-HSA: flat_store_dwordx2 {{v\[[0-9]+:[0-9]+\]}}, [[VAL]]14 15; EG: VTX_READ_6416define amdgpu_kernel void @global_load_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {17 %ld = load i64, ptr addrspace(1) %in18 store i64 %ld, ptr addrspace(1) %out19 ret void20}21 22; FUNC-LABEL: {{^}}global_load_v2i64:23; GCN-NOHSA: buffer_load_dwordx424; GCN-HSA: flat_load_dwordx425 26; EG: VTX_READ_12827define amdgpu_kernel void @global_load_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {28entry:29 %ld = load <2 x i64>, ptr addrspace(1) %in30 store <2 x i64> %ld, ptr addrspace(1) %out31 ret void32}33 34; FUNC-LABEL: {{^}}global_load_v3i64:35; GCN-NOHSA-DAG: buffer_load_dwordx436; GCN-NOHSA-DAG: buffer_load_dwordx237 38; GCN-HSA-DAG: flat_load_dwordx439; GCN-HSA-DAG: flat_load_dwordx240 41; EG: VTX_READ_12842; EG: VTX_READ_12843define amdgpu_kernel void @global_load_v3i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {44entry:45 %ld = load <3 x i64>, ptr addrspace(1) %in46 store <3 x i64> %ld, ptr addrspace(1) %out47 ret void48}49 50; FUNC-LABEL: {{^}}global_load_v4i64:51; GCN-NOHSA: buffer_load_dwordx452; GCN-NOHSA: buffer_load_dwordx453 54; GCN-HSA: flat_load_dwordx455; GCN-HSA: flat_load_dwordx456 57; EG: VTX_READ_12858; EG: VTX_READ_12859define amdgpu_kernel void @global_load_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {60entry:61 %ld = load <4 x i64>, ptr addrspace(1) %in62 store <4 x i64> %ld, ptr addrspace(1) %out63 ret void64}65 66; FUNC-LABEL: {{^}}global_load_v8i64:67; GCN-NOHSA: buffer_load_dwordx468; GCN-NOHSA: buffer_load_dwordx469; GCN-NOHSA: buffer_load_dwordx470; GCN-NOHSA: buffer_load_dwordx471 72; GCN-HSA: flat_load_dwordx473; GCN-HSA: flat_load_dwordx474; GCN-HSA: flat_load_dwordx475; GCN-HSA: flat_load_dwordx476 77; EG: VTX_READ_12878; EG: VTX_READ_12879; EG: VTX_READ_12880; EG: VTX_READ_12881define amdgpu_kernel void @global_load_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {82entry:83 %ld = load <8 x i64>, ptr addrspace(1) %in84 store <8 x i64> %ld, ptr addrspace(1) %out85 ret void86}87 88; FUNC-LABEL: {{^}}global_load_v16i64:89; GCN-NOHSA: buffer_load_dwordx490; GCN-NOHSA: buffer_load_dwordx491; GCN-NOHSA: buffer_load_dwordx492; GCN-NOHSA: buffer_load_dwordx493; GCN-NOHSA: buffer_load_dwordx494; GCN-NOHSA: buffer_load_dwordx495; GCN-NOHSA: buffer_load_dwordx496; GCN-NOHSA: buffer_load_dwordx497 98; GCN-HSA: flat_load_dwordx499; GCN-HSA: flat_load_dwordx4100; GCN-HSA: flat_load_dwordx4101; GCN-HSA: flat_load_dwordx4102; GCN-HSA: flat_load_dwordx4103; GCN-HSA: flat_load_dwordx4104; GCN-HSA: flat_load_dwordx4105; GCN-HSA: flat_load_dwordx4106 107; EG: VTX_READ_128108; EG: VTX_READ_128109; EG: VTX_READ_128110; EG: VTX_READ_128111; EG: VTX_READ_128112; EG: VTX_READ_128113; EG: VTX_READ_128114; EG: VTX_READ_128115define amdgpu_kernel void @global_load_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {116entry:117 %ld = load <16 x i64>, ptr addrspace(1) %in118 store <16 x i64> %ld, ptr addrspace(1) %out119 ret void120}121 122attributes #0 = { nounwind }123