95 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; FUNC-LABEL: {{^}}global_load_f64:6; GCN-NOHSA: buffer_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]7; GCN-NOHSA: buffer_store_dwordx2 [[VAL]]8 9; GCN-HSA: flat_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]10; GCN-HSA: flat_store_dwordx2 {{v\[[0-9]+:[0-9]+\]}}, [[VAL]]11define amdgpu_kernel void @global_load_f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {12 %ld = load double, ptr addrspace(1) %in13 store double %ld, ptr addrspace(1) %out14 ret void15}16 17; FUNC-LABEL: {{^}}global_load_v2f64:18; GCN-NOHSA: buffer_load_dwordx419; GCN-HSA: flat_load_dwordx420define amdgpu_kernel void @global_load_v2f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {21entry:22 %ld = load <2 x double>, ptr addrspace(1) %in23 store <2 x double> %ld, ptr addrspace(1) %out24 ret void25}26 27; FUNC-LABEL: {{^}}global_load_v3f64:28; GCN-NOHSA-DAG: buffer_load_dwordx429; GCN-NOHSA-DAG: buffer_load_dwordx230; GCN-HSA-DAG: flat_load_dwordx431; GCN-HSA-DAG: flat_load_dwordx232define amdgpu_kernel void @global_load_v3f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {33entry:34 %ld = load <3 x double>, ptr addrspace(1) %in35 store <3 x double> %ld, ptr addrspace(1) %out36 ret void37}38 39; FUNC-LABEL: {{^}}global_load_v4f64:40; GCN-NOHSA: buffer_load_dwordx441; GCN-NOHSA: buffer_load_dwordx442 43; GCN-HSA: flat_load_dwordx444; GCN-HSA: flat_load_dwordx445define amdgpu_kernel void @global_load_v4f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {46entry:47 %ld = load <4 x double>, ptr addrspace(1) %in48 store <4 x double> %ld, ptr addrspace(1) %out49 ret void50}51 52; FUNC-LABEL: {{^}}global_load_v8f64:53; GCN-NOHSA: buffer_load_dwordx454; GCN-NOHSA: buffer_load_dwordx455; GCN-NOHSA: buffer_load_dwordx456; GCN-NOHSA: buffer_load_dwordx457 58; GCN-HSA: flat_load_dwordx459; GCN-HSA: flat_load_dwordx460; GCN-HSA: flat_load_dwordx461; GCN-HSA: flat_load_dwordx462define amdgpu_kernel void @global_load_v8f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {63entry:64 %ld = load <8 x double>, ptr addrspace(1) %in65 store <8 x double> %ld, ptr addrspace(1) %out66 ret void67}68 69; FUNC-LABEL: {{^}}global_load_v16f64:70; GCN-NOHSA: buffer_load_dwordx471; GCN-NOHSA: buffer_load_dwordx472; GCN-NOHSA: buffer_load_dwordx473; GCN-NOHSA: buffer_load_dwordx474; GCN-NOHSA: buffer_load_dwordx475; GCN-NOHSA: buffer_load_dwordx476; GCN-NOHSA: buffer_load_dwordx477; GCN-NOHSA: buffer_load_dwordx478 79; GCN-HSA: flat_load_dwordx480; GCN-HSA: flat_load_dwordx481; GCN-HSA: flat_load_dwordx482; GCN-HSA: flat_load_dwordx483; GCN-HSA: flat_load_dwordx484; GCN-HSA: flat_load_dwordx485; GCN-HSA: flat_load_dwordx486; GCN-HSA: flat_load_dwordx487define amdgpu_kernel void @global_load_v16f64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {88entry:89 %ld = load <16 x double>, ptr addrspace(1) %in90 store <16 x double> %ld, ptr addrspace(1) %out91 ret void92}93 94attributes #0 = { nounwind }95