public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/54219] New: __builtin_shuffle mask reversed
@ 2012-08-10 10:40 glisse at gcc dot gnu.org
  2012-08-10 10:59 ` [Bug middle-end/54219] [4.8 Regression] " rguenth at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: glisse at gcc dot gnu.org @ 2012-08-10 10:40 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 54219
           Summary: __builtin_shuffle mask reversed
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: glisse@gcc.gnu.org


Hello,

#include <x86intrin.h>

__m128d f(__m128d x){
  __m128i m={5,0};
  return __builtin_shuffle(x,x,m);
}

$ gcc u.c -O2 -S -Wall

produces a simple rep; ret. However, if I replace 5 with 1, it does produce the
expected shufpd.

fold-const.c contains this loop:
              for (i = 0; i < nelts; i++)
                tsel[i] = build_int_cst (eltype, sel[nelts - i - 1]);

which reverses the order of the elements in the mask. I don't know if there is
any reason to do that...


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/54219] [4.8 Regression] __builtin_shuffle mask reversed
  2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
@ 2012-08-10 10:59 ` rguenth at gcc dot gnu.org
  2012-08-10 11:00 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-10 10:59 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2012-08-10
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1
            Summary|__builtin_shuffle mask      |[4.8 Regression]
                   |reversed                    |__builtin_shuffle mask
                   |                            |reversed

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-10 10:59:20 UTC ---
Probably an error of mine when I converted VECTOR_CSTs to a more sane
representation.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/54219] [4.8 Regression] __builtin_shuffle mask reversed
  2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
  2012-08-10 10:59 ` [Bug middle-end/54219] [4.8 Regression] " rguenth at gcc dot gnu.org
@ 2012-08-10 11:00 ` rguenth at gcc dot gnu.org
  2012-08-10 13:35 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-10 11:00 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/54219] [4.8 Regression] __builtin_shuffle mask reversed
  2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
  2012-08-10 10:59 ` [Bug middle-end/54219] [4.8 Regression] " rguenth at gcc dot gnu.org
  2012-08-10 11:00 ` rguenth at gcc dot gnu.org
@ 2012-08-10 13:35 ` rguenth at gcc dot gnu.org
  2012-08-10 13:36 ` rguenth at gcc dot gnu.org
  2012-08-10 13:36 ` rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-10 13:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-10 13:35:40 UTC ---
Author: rguenth
Date: Fri Aug 10 13:35:34 2012
New Revision: 190297

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190297
Log:
2012-08-10  Richard Guenther  <rguenther@suse.de>

    PR middle-end/54219
    * fold-const.c (fold_ternary_loc): Do not reverse the mask
    when canonicalizing it when folding VEC_PERM_EXPR.

    * gcc.dg/torture/vector-shuffle1.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/vector-shuffle1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/54219] [4.8 Regression] __builtin_shuffle mask reversed
  2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-08-10 13:36 ` rguenth at gcc dot gnu.org
@ 2012-08-10 13:36 ` rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-10 13:36 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-10 13:35:40 UTC ---
Author: rguenth
Date: Fri Aug 10 13:35:34 2012
New Revision: 190297

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190297
Log:
2012-08-10  Richard Guenther  <rguenther@suse.de>

    PR middle-end/54219
    * fold-const.c (fold_ternary_loc): Do not reverse the mask
    when canonicalizing it when folding VEC_PERM_EXPR.

    * gcc.dg/torture/vector-shuffle1.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/vector-shuffle1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-10 13:36:10 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/54219] [4.8 Regression] __builtin_shuffle mask reversed
  2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-08-10 13:35 ` rguenth at gcc dot gnu.org
@ 2012-08-10 13:36 ` rguenth at gcc dot gnu.org
  2012-08-10 13:36 ` rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-10 13:36 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-10 13:36:10 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-08-10 13:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-10 10:40 [Bug middle-end/54219] New: __builtin_shuffle mask reversed glisse at gcc dot gnu.org
2012-08-10 10:59 ` [Bug middle-end/54219] [4.8 Regression] " rguenth at gcc dot gnu.org
2012-08-10 11:00 ` rguenth at gcc dot gnu.org
2012-08-10 13:35 ` rguenth at gcc dot gnu.org
2012-08-10 13:36 ` rguenth at gcc dot gnu.org
2012-08-10 13:36 ` rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).