我正在尝试使用DSP c66x内在函数进行32x32乘法。
我有这样的价值
int32_t beta[4] ={185931936,84529224,-144944792,-175891288};
int32_t alfa[4] ={28505,24851,11653,13268};
CPP代码:
int64_t mult =0;
for(int i=0;i<4;i++){
mult += beta[i] * alfa[i];
}
C66x代码:
__x128_t _qmpy32 (__x128_t src1, __x128_t src2);
我打算使用上面的指令,但问题是我没有发现任何指令会给我2x64位而不是4x32位的结果。因为上面的指令我得错了结果。任何人都告诉我是否有任何其他指令可用DSP c66x将两个32位值相乘并得到64位
的结果答案 0 :(得分:0)
您要找的是_mpy32ll。试试这个:
mult += _mpy32ll(beta[i], alfa[i]);