| |||
| Home > ARMv6 SIMD Instruction Intrinsics > __uqadd8 intrinsic | |||
This intrinsic inserts a UQADD8 instruction into
the instruction stream generated by the compiler. It enables you
to perform four unsigned 8-bit integer additions, saturating the
results to the 8-bit unsigned integer range 0 ≤ x ≤
28 - 1.
unsigned int __uqadd8(unsigned intval1, unsigned intval2)
Where:
val1holds the first four 8-bit summands
val2holds the second four 8-bit summands.
The __uqadd8 intrinsic returns:
the addition of the first bytes in each operand, in the first byte of the return value
the addition of the second bytes in each operand, in the second byte of the return value
the addition of the third bytes in each operand, in the third byte of the return value
the addition of the fourth bytes in each operand, in the fourth byte of the return value.
The results are saturated to the 8-bit unsigned integer range 0 ≤ x ≤ 28 - 1.
Example:
unsigned int add_bytes(unsigned int val1, unsigned int val2)
{
unsigned int res;
res = __uqadd8(val1,val2); /* res[7:0] = val1[7:0] + val2[7:0]
res[15:8] = val1[15:8] + val2[15:8]
res[23:16] = val1[23:16] + val2[23:16]
res[31:24] = val1[31:24] + val2[31:24]
*/
return res;
}
Instruction summary in the Assembler Reference
Parallel add and subtract in the Assembler Reference.