Bug 111609 - Zero shift in ARM NEON vshll_n_s8 intrinsic produces an error
Summary: Zero shift in ARM NEON vshll_n_s8 intrinsic produces an error
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: assemble-failure
Depends on:
Blocks:
 
Reported: 2023-09-27 08:27 UTC by RP
Modified: 2023-09-28 10:45 UTC (History)
1 user (show)

See Also:
Host:
Target: arm
Build:
Known to work:
Known to fail: 12.1.0, 4.5.4
Last reconfirmed: 2023-09-27 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description RP 2023-09-27 08:27:09 UTC
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.
Comment 1 Andrew Pinski 2023-09-27 17:46:47 UTC
Confirmed.