Compiler User Guide: Texas Instruments (TI) C55x intrinsics for optimizing C code http://www.keil.com/support/man/docs/armcc/armcc_babchiba.htm
Intrinsics for rounding, saturation, bitcount and extremum, such as _round and _count. For example, _round(v1) returns the value v1 rounded by adding 215 using unsaturated arithmetic, clearing the lower 16 bits.
Why adding 215 here? As to round the lower 16 bits, shouldn't it be adding 255 to value v1? Or it's something about specific arithmetic calculation?
Keil say they're just emulating the TI behaviour - so what does the TI documentation say?
I've checked TI's C55x DSP Library. According to its implemention, it's the same as we had guessed.
_round(v1) would add (in unsaturated ways) 2^15 to v1, and then clear the lower 16 bits.