https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111609
Bug ID: 111609 Summary: Zero shift in ARM NEON vshll_n_s8 intrinsic produces an error Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: power at pobox dot sk Target Milestone: --- Using this test program: #include <stdint.h> #include <arm_neon.h> void test(int8_t *src, int16_t *dst) { int8x8_t nvalue1; int16x8_t nvalue2; nvalue1 = vld1_s8(src); nvalue2 = vshll_n_s8(nvalue1, 0); vst1q_s16(dst, nvalue2); } The compiler produces this error: test.s:26: Error: immediate value out of range -- `vshll.s8 q8,d16,#0' Tested on multiple gcc versions. According to official ARM documentation, zero shift is valid in vshll_n_s8 intrinsic. The same goes for other vshll_n_XXX intrinsics.