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