D-W-S · 2020年10月29日

arm neon vqrshrun_n_s32使用问题?

我定义了一个函数con(int 32 scalef)
函数内部需要使用移位指令vqrshrun_n_s32(int32x4_t src,const int n)
我通过入参scalef对n进行初始化,再进行指令调用 会报错不是常立即数:
QQ截图20201029181058.png
const int n=scalef;vqrshrun_n_s32(src,n) 报错
const int n=(const int)scalef;vqrshrun_n_s32(src,n) 报错
const int temp=scalef;const int n=temp; vqrshrun_n_s32(src,n) 报错
直接将函数定义为con(const int scalef)并且在测试函数同样定义const int
vqrshrun_n_s32(src,scalef) 报错

但是 int a=2; const int n=a;指令就可以调用...

想求教一下原因 谢谢

你的回答