Hi,
We are currently working on EVS speech codec supporting only C66xx (no C64x or C64x+ backwards compatibility). We are using the following intrinsics to optimize 16-bit saturated shift and multiply operations:
#define shl(a,b) ((b) < 0 ? (a) >> (–b) : (_sshl((a),(b+16))>>16))
#define shr(a,b) ((b) < 0 ? (_sshl((a),(–b+16))>>16) : ((a) >> (b)))
#define mult(a,b) (_smpy((a), (b)) >> 16)
Are there faster methods for c66x ? For example saturated 16-bit adds/subs are supported by _sadd2/_ssub2, but there does not seem to be equivalents for 16-bit saturated shifts and multiplies.
Note: We have looked through the following TI documents to obtain the above mentioned intrinsics
www.ti.com/.../spra617a.pdf
www.ti.com/.../spru187u.pdf
-- Thanks! Regards, Sarvani Chadalapaka HPC Systems Engineer Signalogic Inc.