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.

Reply via email to