10.128 __qsub intrinsic

This intrinsic inserts a QSUB instruction or an equivalent code sequence into the instruction stream generated by the compiler. It enables you to obtain the saturating subtraction of two integers from within your C or C++ code.


The compiler might optimize your code when it detects opportunity to do so, using equivalent instructions from the same family to produce fewer instructions.


int __qsub(int val1, int val2)



is the minuend of the saturating subtraction operation


is the subtrahend of the saturating subtraction operation.

Return value

The __qsub intrinsic returns the saturating subtraction of val1 and val2.


The compiler does not recognize the __qsub intrinsic when compiling for a target that does not support the QSUB instruction. The compiler generates either a warning or an error in this case, depending on the source language:

  • In C code: Warning: #223-D: function "__qsub" declared implicitly.
  • In C++ code: Error: #20: identifier "__qsub" is undefined.
Related reference
10.126 __qadd intrinsic
10.127 __qdbl intrinsic
Related information
Non-Confidential PDF file icon PDF version ARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.