11.7 Saturating instructions

Some ARM and Thumb instructions perform saturating arithmetic.

The saturating instructions are:

  • QADD.

  • QDADD.

  • QDSUB.

  • QSUB.

  • SSAT.

  • USAT.

Some of the parallel instructions are also saturating.

Saturating arithmetic

Saturation means that, for some value of 2n that depends on the instruction:

  • For a signed saturating operation, if the full result would be less than -2n, the result returned is -2n.

  • For an unsigned saturating operation, if the full result would be negative, the result returned is zero.

  • If the full result would be greater than 2n-1, the result returned is 2n-1.

When any of these occurs, it is called saturation. Some instructions set the Q flag when saturation occurs.

Note:

Saturating instructions do not clear the Q flag when saturation does not occur. To clear the Q flag, use an MSR instruction.

The Q flag can also be set by two other instructions, but these instructions do not saturate.

Non-ConfidentialPDF file icon PDF versionARM DUI0473M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.