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

--- Comment #10 from Agner Fog <agner at agner dot org> 2012-04-13 16:50:33 UTC 
---
_mm256_permutevar8x32_epi32 has the operands in wrong order. They need 
to be swapped. Did you fix this too?


On 12-04-2012 20:37, uros at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52932
>
> --- Comment #9 from uros at gcc dot gnu.org 2012-04-12 18:37:47 UTC ---
> Author: uros
> Date: Thu Apr 12 18:37:42 2012
> New Revision: 186388
>
> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186388
> Log:
>      PR target/52932
>      * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
>      argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
>      * config/i386/sse.md (UNSPEC_VPERMVAR): New.
>      (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
>      (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
>      (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
>      avx2_permvarv8si using VI4F_256 mode iterator.
>      * config/i386/i386.c (bdesc_args)<__builtin_ia32_permvarsf256>:
>      Update builtin type to V8SF_FTYPE_V8SF_V8SI.
>      (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
>      gen_avx2_permvarv8sf.
>      (expand_vec_perm_pshufb): Ditto.
>
> testsuite/ChangeLog:
>
>      PR target/52932
>      * gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for
>      second function argument.
>      * gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration.
>      (calc_permps): Update declaration.  Calculate result correctly.
>      (avx2_test): Change src2 type to union256i_d.
>      * gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result
>      correctly.
>
>
> Modified:
>      trunk/gcc/ChangeLog
>      trunk/gcc/config/i386/avx2intrin.h
>      trunk/gcc/config/i386/i386.c
>      trunk/gcc/config/i386/sse.md
>      trunk/gcc/testsuite/ChangeLog
>      trunk/gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c
>      trunk/gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c
>      trunk/gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c
>

Reply via email to