Hi,

On Mon, May 23, 2016 at 06:17:36PM -0400, Michael Meissner wrote:
> > > Unfortunately, in running the testsuite on the power9 simulator, we 
> > > discovered
> > > that the test gcc.c-torture/execute/pr56866.c would fail because the 
> > > fusion
> > > alternatives confused the register allocator and/or the passes after the
> > > register allocator.  This patch removes the explicit fusion support from
> > > XXPERM.
> > 
> > Okay.  Please keep the PR open until that problem is fixed.  It also
> > shouldn't be "target" category, if the problem is RA.

> This patch just fixes the xxperm fusion problem, and I will submit the
> vpermr/xxpermr support in another patch.

Thanks.

> Note, if you believe the register allocator and the post reload RTL passes 
> need
> to be fixed to allow the fusion of the move to the xxperm, that is fine.
> However, take it on yourself.

I'm just saying that if the RA (and later) are "confused", that is their
problem, not a target problem.  Or I'm not understanding what the problem
is.  Maybe it is just target abusing the RA?  Either way...

> As the person who wrote the code to add fusion
> support for xxperm, I now think it was a bad idea, and I want to remove that
> support.  It would probably be better done by modifying the scheduler to keep
> the move and xxperm together, rather than including it in the insn.

That should give most of the win without most of the complexity.  I like
that plan ;-)

> I have bootstrapped the compiler on a little endian power9 system and there
> were no regressions in the test suite.  Is it ok to check into the trunk and 
> on
> the 6.1 branch?
> 
> [gcc]
> 2016-05-23  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       PR target/71201
>       * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
>       ISA 3.0 xxperm fusion alternative.
>       (altivec_vperm_v8hiv16qi): Likewise.
>       (altivec_vperm_<mode>_uns_internal): Likewise.
>       (vperm_v8hiv4si): Likewise.
>       (vperm_v16qiv8hi): Likewise.
> 
> [gcc/testsuite]
> 2016-05-23  Michael Meissner  <meiss...@linux.vnet.ibm.com>
>           Kelvin Nilsen  <kel...@gcc.gnu.org>
> 
>       * gcc.target/powerpc/p9-permute.c: Run test on big endian as well
>       as little endian.

Okay for trunk.  Okay for 6 after a week or so.


Segher

Reply via email to