Hi,
I had written an optimized code for dot product of one signed array with one unsigned array which looked like below in a loop:
//loading eight bytes -nonaligned signed signal data and eight bytes aligned unsigned mask data
EightMaskUnsigned = _amem8_const(&mask[id_mask][j][i]);
EightDropletsSigned = _mem8_const(&dropletData[bufferNum][i+delay]);
/* Dot Product of eight bytes and their sums: adding the lower 32 bits by casting and then adding the higher 32 bits by shifting*/
sumOfProduct1 += _dotpsu4((int)EightDropletsSigned,(unsigned int)EightMaskUnsigned) +
_dotpsu4((int)(EightDropletsSigned>>32),(unsigned int)(EightMaskUnsigned>>32));
Now I need to change the "mask" data from unsigned to signed. It seems that there is not a single intrinsic that would operate on 8-bit signed data. Does anyone have any idea of how to do this?
Any suggestions is greatly appreciated.