Hi Mike, On Wed, Dec 07, 2016 at 12:43:12AM -0500, Michael Meissner wrote: > I did a build on a little endian Power8 system and ran make check. There were > no regressions. Can I check it in the trunk? > > The bug also shows up in GCC 6, and I would like to install it into GCC 6 as > well.
> Index: gcc/config/rs6000/rs6000.c > =================================================================== > --- gcc/config/rs6000/rs6000.c (revision 243318) > +++ gcc/config/rs6000/rs6000.c (working copy) > @@ -6891,25 +6891,43 @@ rs6000_expand_vector_init (rtx target, r > /* Double word values on VSX can use xxpermdi or lxvdsx. */ > if (VECTOR_MEM_VSX_P (mode) && (mode == V2DFmode || mode == V2DImode)) > { > - rtx op0 = XVECEXP (vals, 0, 0); > - rtx op1 = XVECEXP (vals, 0, 1); > + rtx op[2]; > + size_t i; > + size_t num_elements = (all_same) ? 1 : 2; No parens here please. Rest looks fine, please check in. Okay for 6 too, after some delay (making sure it works on BE and 32-bit and AIX, etc.) Thanks, Segher