[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