[PATCH/RFC 15 / 14+2][RS6000] Remove vec_shl and (hopefully) fix vec_shr

David Edelsohn dje.gcc@gmail.com
Tue Sep 23 12:50:00 GMT 2014


On Thu, Sep 18, 2014 at 8:57 AM, Alan Lawrence <alan.lawrence@arm.com> wrote:
> Patch 12 of 14 (https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01475.html)
> will break bigendian targets implementing vec_shr. This is a PowerPC
> parallel of patch 13 of 14
> (https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01477.html) for AArch64. I've
> checked I can build a stage 1 compiler for powerpc-none-eabi and that the
> assembly output looks plausible but no further than that.
>
> In fact I find BYTES_BIG_ENDIAN is defined to true on powerpcle-none-eabi as
> well as powerpc-none-eabi (and also on ppc64-none-elf, but to false on
> ppc64le-none-elf), so I'm not quite sure how your backend works in this
> regard - nonetheless I hope this is a helpful starting point even if not
> definitive.
>
> gcc/ChangeLog:
>
>         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
>         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.

This patch is okay if no regressions on a PowerLinux system (either
you or Segher can test on the GCC Compile Farm).

Thanks, David



More information about the Gcc-patches mailing list