https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98849

--- Comment #6 from Christophe Lyon <clyon at gcc dot gnu.org> ---
I'm not familiar with iwmmxt, but the testcase in comment #2 is vectorized
with:
* -mcpu=cortex-a9 -mfpu=auto -mfloat-abi=hard (uses Neon FPU)
* -mcpu=cortex-m55 -mfpu=auto -mfloat-abi=hard (uses MVE/Helium FPU)
in both cases -mfloat-abi=hard is required.

Using -mcpu=iwmmxt -mfpu=auto -mfloat-abi=hard fails because:
cc1: error: '-mfloat-abi=hard': selected processor lacks an FPU

so to answer your question arm does have vector shift by scalar.

But the Neon/MVE patterns use a const_vector constraint (see
mve_vshlq_<supf><mode> and vashl<mode>3 in vec-common.md and ashl<mode>3_iwmmxt
in iwmmxt.md)

Reply via email to