[llvm-bugs] [Bug 32967] New: AVX512: 'shuffle <32 x i16> v0, v1, <8 x i32> Mask' is scalarized
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon May 8 07:52:29 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=32967
Bug ID: 32967
Summary: AVX512: 'shuffle <32 x i16> v0, v1, <8 x i32> Mask' is
scalarized
Product: libraries
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
Assignee: unassignedbugs at nondot.org
Reporter: zvi.rackover at intel.com
CC: llvm-bugs at lists.llvm.org
For the following function
define <8 x i16> @shuffle_odd_stride4(<32 x i16> %v) {
%shuffle = shufflevector <32 x i16> %v, <32 x i16> undef, <8 x i32> <i32
1,i32 5,i32 9,i32 13,i32 17,i32 21,i32 25,i32 29>
ret <8 x i16> %shuffle
}
llc -mcpu=skx gives:
vpextrw $5, %xmm0, %eax
vpextrw $1, %xmm0, %ecx
vmovd %ecx, %xmm1
vpinsrw $1, %eax, %xmm1, %xmm1
vextracti32x4 $1, %zmm0, %xmm2
vpextrw $1, %xmm2, %eax
vpinsrw $2, %eax, %xmm1, %xmm1
vpextrw $5, %xmm2, %eax
vpinsrw $3, %eax, %xmm1, %xmm1
vextracti32x4 $2, %zmm0, %xmm2
vpextrw $1, %xmm2, %eax
vpinsrw $4, %eax, %xmm1, %xmm1
vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5],xmm1[6,7]
vextracti32x4 $3, %zmm0, %xmm0
vpextrw $1, %xmm0, %eax
vpinsrw $6, %eax, %xmm1, %xmm1
vpextrw $5, %xmm0, %eax
vpinsrw $7, %eax, %xmm1, %xmm0
The problem here seems to be more related to the ratio of
in_vec_len/out_vec_len=4 than the shuffle mask indices.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170508/19266137/attachment.html>
More information about the llvm-bugs
mailing list