54 lines · plain
1; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GCN %s2 3; GCN-LABEL: {{^}}store_v2i32_as_v4i16_align_4:4; GCN: s_load_dwordx25; GCN: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1{{$}}6define amdgpu_kernel void @store_v2i32_as_v4i16_align_4(ptr addrspace(3) align 4 %out, <2 x i32> %x) #0 {7 %x.bc = bitcast <2 x i32> %x to <4 x i16>8 store <4 x i16> %x.bc, ptr addrspace(3) %out, align 49 ret void10}11 12; GCN-LABEL: {{^}}store_v4i32_as_v8i16_align_4:13; GCN: s_load_dwordx414; GCN-DAG: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset0:2 offset1:315; GCN-DAG: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1{{$}}16define amdgpu_kernel void @store_v4i32_as_v8i16_align_4(ptr addrspace(3) align 4 %out, <4 x i32> %x) #0 {17 %x.bc = bitcast <4 x i32> %x to <8 x i16>18 store <8 x i16> %x.bc, ptr addrspace(3) %out, align 419 ret void20}21 22; GCN-LABEL: {{^}}store_v2i32_as_i64_align_4:23; GCN: s_load_dwordx224; GCN: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1{{$}}25define amdgpu_kernel void @store_v2i32_as_i64_align_4(ptr addrspace(3) align 4 %out, <2 x i32> %x) #0 {26 %x.bc = bitcast <2 x i32> %x to <4 x i16>27 store <4 x i16> %x.bc, ptr addrspace(3) %out, align 428 ret void29}30 31; GCN-LABEL: {{^}}store_v4i32_as_v2i64_align_4:32; GCN: s_load_dwordx433; GCN-DAG: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset0:2 offset1:334; GCN-DAG: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1{{$}}35define amdgpu_kernel void @store_v4i32_as_v2i64_align_4(ptr addrspace(3) align 4 %out, <4 x i32> %x) #0 {36 %x.bc = bitcast <4 x i32> %x to <2 x i64>37 store <2 x i64> %x.bc, ptr addrspace(3) %out, align 438 ret void39}40 41; GCN-LABEL: {{^}}store_v4i16_as_v2i32_align_4:42; GCN: s_load_dword s43; GCN-NEXT: s_load_dwordx2 s44; GCN-NOT: {{buffer|flat|global}}45 46; GCN: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1{{$}}47define amdgpu_kernel void @store_v4i16_as_v2i32_align_4(ptr addrspace(3) align 4 %out, <4 x i16> %x) #0 {48 %x.bc = bitcast <4 x i16> %x to <2 x i32>49 store <2 x i32> %x.bc, ptr addrspace(3) %out, align 450 ret void51}52 53attributes #0 = { nounwind }54