This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

q = vshll_n_s16(d, 16) is giving error in RVDS

Hi all,

when I write the Neon Intrinsic code as below

int32x4_t q;

int16x4_t d;

some thing I loaded into d register

q = vshll_n_s16(q, 16)

when I tried to build the code, the compiler is throwing error as the supported shift range is 0-15 only....I'm using Code warrior & RVDS4.0 tools

but when write the code in Assembly it is working fine with out any issues VSHLL.S16 q0,d0,#16

why it is not working in Intrinsics, when it is working in Assembly???

when I referred the latest ARM doc it says like shift value 16 is suported

Arm Compiler version 5.04 armcc user guide - ARM DUI0472J - section 18.15 - page 958 - int32x4_t vshll_n_s16(int16x4_t a, __constrange(0,16) int b); // VSHLL.S16 q0,d0,#0

Thanks in advance.....