public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian
@ 2012-09-19  0:54 janis at gcc dot gnu.org
  2012-09-19  1:09 ` [Bug testsuite/54622] " pinskia at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: janis at gcc dot gnu.org @ 2012-09-19  0:54 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 54622
           Summary: gcc.dg/vect test failures for arm big-endian
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: janis@gcc.gnu.org
                CC: irar@gcc.gnu.org
            Target: arm


Created attachment 28219
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28219
list of vect test failures for arm big-endian

71 vectorization tests (plus corresponding checks with -flto) pass for ARM
little endian but fail for ARM big endian with current mainline. I'll attach
the list.

Some of them are scans that are gated on effective targets that always fail for
ARM big endian; perhaps that's a coincidence, or perhaps some of these
effective-target checks should require arm_little_endian:

    vect64 (2)
    vect-widen_shift (8)
    vect_perm_byte (1)
    vect_perm_short (1)
    vect_strided3 (1)

Testing for ARM big-endian is straightforward for any ARM build. Avoid
execution tests with a local patch to gcc/testsuite/gcc.dg/vect/vect.exp to add
'set dg-do-what-default "compile"' after calling
check_vect_support_and_set_flags, and then pass the appropriate flags in
RUNTESTFLAGS.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
@ 2012-09-19  1:09 ` pinskia at gcc dot gnu.org
  2012-09-19  1:18 ` janis at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-09-19  1:09 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu.org

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-09-19 01:08:58 UTC ---
I think all the tests that pass for little-endian should also pass for
big-endian.  The only difference comes down to how the memory is located from
memory as IIRC neon stays the same in memory.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
  2012-09-19  1:09 ` [Bug testsuite/54622] " pinskia at gcc dot gnu.org
@ 2012-09-19  1:18 ` janis at gcc dot gnu.org
  2012-09-19  1:29 ` pinskia at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: janis at gcc dot gnu.org @ 2012-09-19  1:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Janis Johnson <janis at gcc dot gnu.org> 2012-09-19 01:16:58 UTC ---
Effective targets vect_unpack and vect_pack_trunc both require little endian
for ARM, which is why I thought that perhaps some of the others do as well.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
  2012-09-19  1:09 ` [Bug testsuite/54622] " pinskia at gcc dot gnu.org
  2012-09-19  1:18 ` janis at gcc dot gnu.org
@ 2012-09-19  1:29 ` pinskia at gcc dot gnu.org
  2012-09-19 22:27 ` rearnsha at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-09-19  1:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-09-19 01:29:09 UTC ---
(In reply to comment #2)
> Effective targets vect_unpack and vect_pack_trunc both require little endian
> for ARM, which is why I thought that perhaps some of the others do as well.

Yes but I think it is wrong to do that in the back-end.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-09-19  1:29 ` pinskia at gcc dot gnu.org
@ 2012-09-19 22:27 ` rearnsha at gcc dot gnu.org
  2012-09-26 16:25 ` jules at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2012-09-19 22:27 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #4 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-09-19 22:26:49 UTC ---
The reasons for the vector problems in big-endian largely fall into two areas:

1) Neon vector elements are numbered from the LSB of the vector register in
both big and little-endian modes.  GCC assumes that vector elements in
big-endian are numbered from the MSB.  This means compensation code is needed
when elements are addressed directly (for example shuffle operations).

2) Quad-words in 256-bit vectors are not pure big-endian, the DWords are
swapped in order on loads.  GCC can't currently cope with this in any sensible
manner.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-09-19 22:27 ` rearnsha at gcc dot gnu.org
@ 2012-09-26 16:25 ` jules at gcc dot gnu.org
  2012-09-26 16:46 ` janis at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jules at gcc dot gnu.org @ 2012-09-26 16:25 UTC (permalink / raw)
  To: gcc-bugs


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

jules at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jules at gcc dot gnu.org

--- Comment #5 from jules at gcc dot gnu.org 2012-09-26 16:25:08 UTC ---
Unfortunately (due to the reasons Richard outlined) lots of things don't work
wrt. vectorization for Neon in big-endian mode, so are deliberately disabled in
the backend. IMO, the right thing to do (at least until that is fixed) is to
make the effective-target checks for vectorization features depend on
little-endian ARM mode.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-09-26 16:25 ` jules at gcc dot gnu.org
@ 2012-09-26 16:46 ` janis at gcc dot gnu.org
  2012-09-26 21:52 ` janis at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: janis at gcc dot gnu.org @ 2012-09-26 16:46 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #6 from Janis Johnson <janis at gcc dot gnu.org> 2012-09-26 16:45:25 UTC ---
It's important to continue to run the vectorization tests with ARM big-endian
to detect regressions in the execution tests, so I don't want to exclude it
from all vect effective targets.  I'll propose a set of effective targets used
in the scans that should exclude ARM big-endian.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-09-26 16:46 ` janis at gcc dot gnu.org
@ 2012-09-26 21:52 ` janis at gcc dot gnu.org
  2013-01-16 18:50 ` janis at gcc dot gnu.org
  2013-03-20  0:45 ` pinskia at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: janis at gcc dot gnu.org @ 2012-09-26 21:52 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #7 from Janis Johnson <janis at gcc dot gnu.org> 2012-09-26 21:51:53 UTC ---
I've tried requiring arm_little_endian for various vect_ effective targets, but
the missing support isn't at all clear-cut.  Lots of vectorization takes place
so it's important to continue to pay attention to the execute tests, but for
now I think we'll just handle big-endian expected failures locally.


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-09-26 21:52 ` janis at gcc dot gnu.org
@ 2013-01-16 18:50 ` janis at gcc dot gnu.org
  2013-03-20  0:45 ` pinskia at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: janis at gcc dot gnu.org @ 2013-01-16 18:50 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #8 from Janis Johnson <janis at gcc dot gnu.org> 2013-01-16 18:50:06 UTC ---
Author: janis
Date: Wed Jan 16 18:49:57 2013
New Revision: 195249

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195249
Log:
    PR testsuite/54622
    * lib/target-supports.exp (check_effective_target_vect_perm_byte,
    check_effective_target_vect_perm_short,
    check_effective_target_vect_widen_mult_qi_to_hi_pattern,
    check_effective_target_vect64): Return 0 for big-endian ARM.
    (check_effective_target_vect_widen_sum_qi_to_hi): Return 1 for ARM.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/target-supports.exp


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

* [Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
  2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2013-01-16 18:50 ` janis at gcc dot gnu.org
@ 2013-03-20  0:45 ` pinskia at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-03-20  0:45 UTC (permalink / raw)
  To: gcc-bugs


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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-03-20
     Ever Confirmed|0                           |1

--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-03-20 00:45:42 UTC ---
Confirmed.


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

end of thread, other threads:[~2013-03-20  0:45 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-19  0:54 [Bug testsuite/54622] New: gcc.dg/vect test failures for arm big-endian janis at gcc dot gnu.org
2012-09-19  1:09 ` [Bug testsuite/54622] " pinskia at gcc dot gnu.org
2012-09-19  1:18 ` janis at gcc dot gnu.org
2012-09-19  1:29 ` pinskia at gcc dot gnu.org
2012-09-19 22:27 ` rearnsha at gcc dot gnu.org
2012-09-26 16:25 ` jules at gcc dot gnu.org
2012-09-26 16:46 ` janis at gcc dot gnu.org
2012-09-26 21:52 ` janis at gcc dot gnu.org
2013-01-16 18:50 ` janis at gcc dot gnu.org
2013-03-20  0:45 ` pinskia 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).