This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH], PR target/81593, Optimize PowerPC vector sets coming from a vector extracts
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>, Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- Date: Mon, 7 Aug 2017 16:53:54 -0500
- Subject: Re: [PATCH], PR target/81593, Optimize PowerPC vector sets coming from a vector extracts
- Authentication-results: sourceware.org; auth=none
- References: <20170727232113.GA8723@ibm-tiger.the-meissners.org> <20170728210848.GC13471@gate.crashing.org> <20170802142855.GA11603@ibm-tiger.the-meissners.org> <20170803150141.GV13471@gate.crashing.org> <20170807131830.GA753@ibm-tiger.the-meissners.org>
On Mon, Aug 07, 2017 at 09:18:30AM -0400, Michael Meissner wrote:
> > I don't like using NULL as a magic value at all; it does not simplify
> > this interface, it complicates it instead.
> >
> > Can you move the "which half is high" decision to the callers?
>
> I rewrote the patch to eliminate the rs6000_output_xxpermdi function, and do
> the calculation of the XXPERMDI mask in each of the vsx_concat_<mask>_{1,2,3}
> insns. Just to be sure I got things correct, I wrote a new executable test
> that tests various methods of creating/inserting 2 element vectors with double
> word elements, and tested in BE, LE -maltivec=be, and LE, and the results match
> previous compilers.
>
> I have done bootstrap/build checks on a big endian power7, a little endian
> power8 system, and I have done a non-bootstrap/check on a power9 prototype (I
> have script issues that prevents a bootstrap build on power9 that I need to
> look into). There are no regressions in the tests and the new tests were run
> on each of the systems. Can I check this into the trunk?
>
> I would also like to backport it to all open branches (particularly GCC 7, but
> GCC 6 if possible). Note, the patch will need a slight tweak on the older
> systems due to GCC 7 still supporting -mupper-regs-{df,di} and I have to adjust
> the constraints to accomidate this, and under GCC 6 DImode not being allowed in
> traditional Altivec registers.
Thanks! Okay for trunk. The 7 branch is frozen; okay for 7 after the
release, and for 6 too.
Segher