SIMD C-language intrinsics

Both the Vector/SIMD Multimedia Extension and SPU instruction sets have extensions that support C-language intrinsics. Intrinsics are C-language commands, in the form of function calls, that are convenient substitutes for one or more inline assembly-language instructions.

In a specific instruction set, most intrinsic names use a standard prefix in their mnemonic, and some intrinsic names incorporate the mnemonic of an associated assembly-language instruction. For example, the Vector/SIMD Multimedia Extension intrinsic that implements the add Vector/SIMD Multimedia Extension assembly-language instruction is named vec_add, and the SPU intrinsic that implements the stop SPU assembly-language instruction is named spu_stop.

The PPE’s Vector/SIMD Multimedia Extension instruction set and the SPE’s SPU instruction set both have extensions that define somewhat different sets of intrinsics, but they all fall into four types of intrinsics. These are listed in Table 1-1. Although the intrinsics provided by the two instruction sets are similar in function, their naming conventions and function-call forms are different.
Table 1. PPE and SPE intrinsic classes
Types of Intrinsic Definition PPE SPE
Specific One-to-one mapping to a single assembly-language instruction. X X
Generic Map to one or more assembly-language instructions, depending on types of input parameters. X X
Composite Constructed from a sequence of Specific or Generic intrinsics.   X
Predicates Evaluate SIMD conditionals. X  

For more information about the PPE intrinsics, see C/C++ language extensions (intrinsics).

For more information about the SPE intrinsics, see SPU C/C++ language extensions (intrinsics).