From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27476 invoked by alias); 13 Apr 2012 16:51:46 -0000 Received: (qmail 27465 invoked by uid 22791); 13 Apr 2012 16:51:44 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED,TW_VP X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 13 Apr 2012 16:51:31 +0000 From: "agner at agner dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/52932] AVX2 intrinsic _mm256_permutevar8x32_ps has wrong parameter type Date: Fri, 13 Apr 2012 16:51:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: agner at agner dot org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: ubizjak at gmail dot com X-Bugzilla-Target-Milestone: 4.7.1 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-04/txt/msg01063.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52932 --- Comment #10 from Agner Fog 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): 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 >