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 thing. I guess an extra check for big-endian before the loop could fix that. I.e. shift = d->perm[0]; + if (BYTES_BIG_ENDIAN && shift > nelt) + return false; r~