Sorry to be pedantic again, but 'wierd' should be spelt 'weird'. Otherwise,
looks good to me and much neater than before. (Seems you'd rather keep the
re-enabling, here and in the testsuite, for another patch?)

--Alan

Tejas Belagod wrote:
Richard Henderson wrote:
On 02/21/2014 08:30 AM, Tejas Belagod wrote:
+      /* If two vectors, we end up with a wierd mixed-endian mode on NEON.  */
+      if (BYTES_BIG_ENDIAN)
+       {
+         if (!d->one_vector_p && d->perm[i] & nunits)
+           {
+             /* Extract the offset.  */
+             elt = d->perm[i] & (nunits - 1);
+             /* Reverse the top half.  */
+             elt = nunits - 1 - elt;
+             /* Offset it by the bottom half.  */
+             elt += nunits;
+           }
+         else
+           elt = nunits - 1 - d->perm[i];
+       }
Isn't this just

  elt = d->perm[i] ^ (nunits - 1);

all the time?  I.e. invert the index within the word,
but leave the word index (nunits) unchanged.


Here is a revised patch. OK for stage-1?

Thanks
Tejas.

2014-04-02  Tejas Belagod  <tejas.bela...@yahoo.com>

gcc/

         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of 
elements
        for big-endian.



Reply via email to