1; RUN: llc -march=amdgcn -mcpu=gfx906 -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s 2 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(< 4 x i8> 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, <4 x i8> addrspace(1)* %out 9 ret void 10} 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(< 8 x i8> 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, <8 x i8> addrspace(1)* %out 18 ret void 19} 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(< 8 x i16> 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, <8 x i16> addrspace(1)* %out 27 ret void 28} 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:16 32; 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(< 8 x i32> 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, <8 x i32> addrspace(1)* %out 37 ret void 38} 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:48 42; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:32 43; GCN: global_store_dwordx4 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} offset:16 44; 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(< 16 x i32> 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, <16 x i32> addrspace(1)* %out 49 ret void 50} 51