http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53435

             Bug #: 53435
           Summary: (ix86_expand_vec_perm) and (ix86_expand_vec_perm) do
                    not pass arguments to avx2_permvar8s[f,i] correctly
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: aivch...@gmail.com
                CC: areg.melikadam...@gmail.com, hjl.to...@gmail.com,
                    kirill.yuk...@intel.com, ubiz...@gmail.com
            Target: i?86-*-* x86_64-*-*


Seems that after:

commit 8da8a06b586ddd9511b5c5c83e2c28ca8d7613a8
Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Apr 12 18:37:42 2012 +0000

        PR target/52932
        * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
        argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
...
        (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
...
        (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
        gen_avx2_permvarv8sf.
        (expand_vec_perm_pshufb): Ditto.


gcc.c-torture/execute/vshuf-v* and gcc.dg/torture/pr45720.c fail.

The problem is that not everything that had to be changed was changed to use
the second argument as __m256i.

Please take a look at the attached patch that should fix those problems

Reply via email to