51 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx906 < %s | FileCheck -check-prefix=GCN %s2 3; GCN-LABEL: {{^}}trunc_store_v4i64_v4i8:4; GCN: global_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}5define amdgpu_kernel void @trunc_store_v4i64_v4i8(ptr addrspace(1) %out, <4 x i64> %in) {6entry:7 %trunc = trunc <4 x i64> %in to < 4 x i8>8 store <4 x i8> %trunc, ptr addrspace(1) %out9 ret void10}11 12; GCN-LABEL: {{^}}trunc_store_v8i64_v8i8:13; GCN: global_store_dwordx2 v{{[0-9]+}}, v{{\[[0-9]:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}14define amdgpu_kernel void @trunc_store_v8i64_v8i8(ptr addrspace(1) %out, <8 x i64> %in) {15entry:16 %trunc = trunc <8 x i64> %in to < 8 x i8>17 store <8 x i8> %trunc, ptr addrspace(1) %out18 ret void19}20 21; GCN-LABEL: {{^}}trunc_store_v8i64_v8i16:22; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}23define amdgpu_kernel void @trunc_store_v8i64_v8i16(ptr addrspace(1) %out, <8 x i64> %in) {24entry:25 %trunc = trunc <8 x i64> %in to < 8 x i16>26 store <8 x i16> %trunc, ptr addrspace(1) %out27 ret void28}29 30; GCN-LABEL: {{^}}trunc_store_v8i64_v8i32:31; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:1632; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]$}}33define amdgpu_kernel void @trunc_store_v8i64_v8i32(ptr addrspace(1) %out, <8 x i64> %in) {34entry:35 %trunc = trunc <8 x i64> %in to <8 x i32>36 store <8 x i32> %trunc, ptr addrspace(1) %out37 ret void38}39 40; GCN-LABEL: {{^}}trunc_store_v16i64_v16i32:41; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:4842; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:3243; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:1644; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]$}}45define amdgpu_kernel void @trunc_store_v16i64_v16i32(ptr addrspace(1) %out, <16 x i64> %in) {46entry:47 %trunc = trunc <16 x i64> %in to <16 x i32>48 store <16 x i32> %trunc, ptr addrspace(1) %out49 ret void50}51