4.1 Compiler intrinsics

Compiler intrinsics are functions provided by the compiler. They enable you to easily incorporate domain-specific operations in C and C++ source code without resorting to complex implementations in assembly language.

The C and C++ languages are suited to a wide variety of tasks
but they do not provide in-built support for specific areas of application,
for example, Digital Signal Processing (DSP).

Within a given application domain, there is usually a range
of domain-specific operations that have to be performed frequently.
However, often these operations cannot be efficiently implemented
in C or C++. A typical example is the saturated add of two 32-bit
signed two’s complement integers, commonly used in DSP programming. The following example shows a C implementation of saturated add
operation

Using compiler intrinsics, you can achieve
more complete coverage of target architecture instructions than
you would from the instruction selection of the compiler.

An intrinsic function has the appearance of a function call
in C or C++, but is replaced during compilation by a specific sequence
of low-level instructions. When implemented using an intrinsic,
for example, the saturated add function previous example has the form: