[patch] Improve detection of widening multiplication in the vectorizer
Richard Sandiford
richard.sandiford@linaro.org
Mon Jun 6 13:05:00 GMT 2011
Richard Guenther <richard.guenther@gmail.com> writes:
> Thanks. I would hope that we eventually can get rid of the
> pattern recognizer ... at least for SSE there is also always
> a scalar variant instruction for each vectorized one.
AFAIK, that isn't true for ARM and NEON. E.g. I don't know of a single
instruction that does the scalar equivalent of things like VADDHN
(add values and narrow to high half), VSUBL.U32 (subtract two values
and extend the result), etc.
FWIW, I think MIPS only has minimum and maximum operations for paired
floats, not for single floats or doubles. I don't have the manuals to
hand to check though.
It's probably OK for the particular case of widening multiplications.
It sounded like you were making a more general statement though.
If so, I think we should try to avoid assuming that every vectorisable
operation has an equivalent scalar machine instruction.
Richard
More information about the Gcc-patches
mailing list