It enables
you to perform two 16-bit integer arithmetic additions in parallel,
saturating the results to the 16-bit signed integer range -215 ≤ x ≤
215 - 1.
Syntax
unsigned int __qadd16(unsigned int val1
, unsigned int val2
)
Where:
val1
holds the first two 16-bit summands
val2
holds the second two 16-bit summands.
Return value
The __qadd16
intrinsic returns:
The returned results are saturated to the 16-bit signed integer
range -215 ≤ x ≤ 215 - 1.
Examples
unsigned int add_halfwords(unsigned int val1, unsigned int val2)
{
unsigned int res;
res = __qadd16(val1, val2); /* res[15:0] = val1[15:0] + val2[15:0]
res[16:31] = val1[31:16] + val2[31:16]
*/
return res;
}