[PATCH, rs6000] Remove splat calls with out-of-range arguments from gcc.dg/vmx/ops.c

Bill Schmidt wschmidt@linux.vnet.ibm.com
Mon Oct 6 02:06:00 GMT 2014


By the way, just to follow up on a conversation we had offline:  I did a
little poking, and found that the assembler objects if any of these
out-of-range arguments to vspltb, etc., survive the compiler:

/tmp/cctyppYZ.s: Assembler messages:
/tmp/cctyppYZ.s:25: Error: operand out of range (-1 is not between 0 and
3)

So if the test had been written with dg-do assemble instead of dg-do
compile, we would have found the issue long ago.  Anyway, I was looking
into adding error checking for this in the compiler, but now that seems
redundant.

Thanks,
Bill

On Mon, 2014-09-29 at 13:44 -0400, David Edelsohn wrote:
> On Mon, Sep 29, 2014 at 1:27 PM, Bill Schmidt
> <wschmidt@linux.vnet.ibm.com> wrote:
> > Hi,
> >
> > While working on another patch, I observed that the test case
> > gcc.dg/vmx/ops.c contains numerous calls to vec_splat and friends for
> > which the second argument (the element selector) is out of range.  At
> > best these calls are invalid; as it is, we generate insns that can cause
> > trouble during optimization.  (In the case I saw, simplify-rtx tried to
> > reduce the splat of its input at compile time, but the out-of-range
> > element selector caused it to report a bad insn and abort.)  This patch
> > removes all of the calls with out-of-range element selectors from the
> > test case.
> >
> > Tested on powerpc64le-unknown-linux-gnu.  Ok to commit?
> >
> > Thanks,
> > Bill
> >
> >
> > 2014-09-29  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
> >
> >         * gcc.dg/vmx/ops.c: Remove calls to vec_splat, vec_vsplth,
> >         vec_vspltw, and vec_vspltb for which the second argument is out of
> >         range.
> 
> Okay.
> 
> Thanks, David
> 




More information about the Gcc-patches mailing list