[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #8 from Janis Johnson 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
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-03-20 Ever Confirmed|0 |1 --- Comment #9 from Andrew Pinski 2013-03-20 00:45:42 UTC --- Confirmed.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 Andrew Pinski changed: What|Removed |Added CC||pinskia at gcc dot gnu.org --- Comment #1 from Andrew Pinski 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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #2 from Janis Johnson 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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #3 from Andrew Pinski 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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #4 from Richard Earnshaw 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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #6 from Janis Johnson 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.
[Bug testsuite/54622] gcc.dg/vect test failures for arm big-endian
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54622 --- Comment #7 from Janis Johnson 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.