Hi all,
I observed mistakes in above mentioned document......
If u see G.16.1 Vector shift right by constant it was mentioned in comments about shift value range worngly.....
int64x1_t vshr_n_s64(int64x1_t a, __constrange(1,64) int b); // VSHR.S64 d0,d0,#64
if u observe the shift constant range it was mentioned like 1 to 64 but it is not correct......range should be 0 to 63 (refer
C.9.3 V{R}SHR{N}, V{R}SRA section of NEON version 1.0 programmers guide ARM DEN0018A (ID071613) here it was mention like range : 0 to (size(datatype ) – 1).)
such comments are there for each right shift operations...........
Thanks for the feedback, I'll pass it along to the relevant team.
In section A8.8.398 of the ARMARM for v7-AR http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406c/index.html it gives the imm range of VSHR as 1 to <size>; so I expect that is the correct range and that the NEON Programmers Guide is the incorrect one.