[Bug target/52932] AVX2 intrinsic _mm256_permutevar8x32_ps has wrong parameter type
agner at agner dot org
gcc-bugzilla@gcc.gnu.org
Fri Apr 13 16:51:00 GMT 2012
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
>
More information about the Gcc-bugs
mailing list