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