Re: [PATCH, ia64]: Fix PR 51681, ICE in gcc.dg/torture/vshuf-v2si.c (+ more)

2012-01-03 Thread Richard Henderson
On 01/03/2012 09:50 PM, Uros Bizjak wrote: > I tried to investigate -mbig-endian a bit, but unfortunately almost > all gcc.dg/torture/vshuf-*.c tests FAIL with -O2 on unpatched gcc. > Tests pass with -O0, though. Tests without -O don't actually test this code. And -mbig-endian doesn't get big-end

Re: [PATCH, ia64]: Fix PR 51681, ICE in gcc.dg/torture/vshuf-v2si.c (+ more)

2012-01-03 Thread Uros Bizjak
On Tue, Jan 3, 2012 at 11:50 AM, Uros Bizjak wrote: > On Mon, Jan 2, 2012 at 9:31 PM, Richard Henderson wrote: >> On 01/03/2012 06:47 AM, Uros Bizjak wrote: >>>    if (d->testing_p) >>>      return true; >>> >>> +  hi = shift < nelt ? d->op1 : d->op0; >>> +  lo = shift < nelt ? d->op0 : d->op1; >

Re: [PATCH, ia64]: Fix PR 51681, ICE in gcc.dg/torture/vshuf-v2si.c (+ more)

2012-01-03 Thread Uros Bizjak
On Mon, Jan 2, 2012 at 9:31 PM, Richard Henderson wrote: > On 01/03/2012 06:47 AM, Uros Bizjak wrote: >>    if (d->testing_p) >>      return true; >> >> +  hi = shift < nelt ? d->op1 : d->op0; >> +  lo = shift < nelt ? d->op0 : d->op1; >> + >> +  shift %= nelt; > > This bit only works for little-e

Re: [PATCH, ia64]: Fix PR 51681, ICE in gcc.dg/torture/vshuf-v2si.c (+ more)

2012-01-02 Thread Richard Henderson
On 01/03/2012 06:47 AM, Uros Bizjak wrote: >if (d->testing_p) > return true; > > + hi = shift < nelt ? d->op1 : d->op0; > + lo = shift < nelt ? d->op0 : d->op1; > + > + shift %= nelt; This bit only works for little-endian. It's why I had that assert for shift range 1-63, for one thi

[PATCH, ia64]: Fix PR 51681, ICE in gcc.dg/torture/vshuf-v2si.c (+ more)

2012-01-02 Thread Uros Bizjak
Hello! Attached patch fixes a couple of thinkos in new ia64 vector permutation code. 2012-01-02 Uros Bizjak PR target/51681 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands for shrp pattern. Correctly handle and fixup shift variable. 2012-01-02 Uros