[PATCH] rs6000: Support doubleword swaps removal in rot64 load store [PR100085]

Segher Boessenkool segher@kernel.crashing.org
Wed Jun 2 22:20:03 GMT 2021


On Wed, Jun 02, 2021 at 03:19:32AM -0500, Xionghu Luo wrote:
> On P8LE, extra rot64+rot64 load or store instructions are generated
> in float128 to vector __int128 conversion.
> 
> This patch teaches pass swaps to also handle such pattens to remove
> extra swap instructions.

Did you check if this is already handled by simplify-rtx if the mode had
been TImode (not V1TImode)?  If not, why do you not handle it there?

> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c
> @@ -0,0 +1,28 @@
> +/* { dg-do compile { target { powerpc*-*-linux* } } } */

Just
  /* { dg-do compile } */
please (or is there any reason to do this on linux only?)

> +/* { dg-require-effective-target powerpc_float128_sw_ok } */
> +/* { dg-options "-O2 -mdejagnu-cpu=power8 -mfloat128 -mno-regnames" } */

-mfloat128 is implied by -mcpu=power8.  Why do you use -mno-regnames?

> +#ifndef __FLOAT128__
> +#error "-mfloat128 is not supported."
> +#endif

So this can be deleted as well.


Segher


More information about the Gcc-patches mailing list