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