Richard Kenner wrote:
>Michael Collison wrote:
> > On Aarc64 SHIFT_COUNT_TRUNCATED is only true if SIMD code generation
> > is disabled. This is because the simd instructions can be used for
> > shifting but they do not truncate the shift count.
> In that case, the change isn't safe! Consider if the value was
> negative, for example. Yes, it's technically undefined, but I'm not
> sure I'd want to rely on that.
No it's perfectly safe - it becomes an integer-only shift after the split since
keeps the masking as part of the pattern.
But generally the SHIFT_COUNT_TRUNCATED is a mess, and so are other ways
of doing this - note the extremely complex subregs in the patch, none of that
be required as there are no QI registers on AArch64! So it would be great if
was a better way to describe the number of bits used by a particular shift