brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · 5f88e60 Raw
61 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefix=GCN %s2 3; GCN-LABEL: {{^}}short_char:4; GCN: global_store_byte v5define protected amdgpu_kernel void @short_char(ptr addrspace(1) %out) {6entry:7  %tmp = load i16, ptr addrspace(1) poison8  %tmp1 = trunc i16 %tmp to i89  store i8 %tmp1, ptr addrspace(1) %out10  ret void11}12 13; GCN-LABEL: {{^}}short2_char4:14; GCN: global_store_dword v15define protected amdgpu_kernel void @short2_char4(ptr addrspace(1) %out) {16entry:17  %tmp = load <2 x i16>, ptr addrspace(1) poison, align 418  %vecinit = shufflevector <2 x i16> %tmp, <2 x i16> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>19  %vecinit2 = shufflevector <4 x i16> %vecinit, <4 x i16> <i16 poison, i16 poison, i16 0, i16 0>, <4 x i32> <i32 0, i32 1, i32 6, i32 7>20  %tmp1 = trunc <4 x i16> %vecinit2 to <4 x i8>21  store <4 x i8> %tmp1, ptr addrspace(1) %out, align 422  ret void23}24 25; GCN-LABEL: {{^}}short4_char8:26; GCN: global_store_dwordx2 v27define protected amdgpu_kernel void @short4_char8(ptr addrspace(1) %out) {28entry:29  %tmp = load <4 x i16>, ptr addrspace(1) poison, align 830  %vecinit = shufflevector <4 x i16> %tmp, <4 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison>31  %vecinit2 = shufflevector <8 x i16> %vecinit, <8 x i16> <i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0>, <8 x i32> <i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7>32  %tmp1 = trunc <8 x i16> %vecinit2 to <8 x i8>33  store <8 x i8> %tmp1, ptr addrspace(1) %out, align 834  ret void35}36 37; GCN-LABEL: {{^}}short8_char16:38; GCN: global_store_dwordx4 v39define protected amdgpu_kernel void @short8_char16(ptr addrspace(1) %out) {40entry:41  %tmp = load <8 x i16>, ptr addrspace(1) poison, align 1642  %vecinit = shufflevector <8 x i16> %tmp, <8 x i16> poison, <16 x i32> <i32 0, i32 1, i32 3, i32 4, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>43  %vecinit2 = shufflevector <16 x i16> %vecinit, <16 x i16> <i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, <16 x i32> <i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7>44  %tmp1 = trunc <16 x i16> %vecinit2 to <16 x i8>45  store <16 x i8> %tmp1, ptr addrspace(1) %out, align 1646  ret void47}48 49; GCN-LABEL: {{^}}short16_char32:50; GCN: global_store_dwordx4 v51; GCN: global_store_dwordx4 v52define protected amdgpu_kernel void @short16_char32(ptr addrspace(1) %out) {53entry:54  %tmp = load <16 x i16>, ptr addrspace(1) poison, align 3255  %vecinit = shufflevector <16 x i16> %tmp, <16 x i16> poison, <32 x i32> <i32 0, i32 1, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 0, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 0, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>56  %vecinit2 = shufflevector <32 x i16> %vecinit, <32 x i16> <i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 1, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, <32 x i32> <i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7, i32 0, i32 1, i32 6, i32 7>57  %tmp1 = trunc <32 x i16> %vecinit2 to <32 x i8>58  store <32 x i8> %tmp1, ptr addrspace(1) %out, align 3259  ret void60}61