### 9.4 POWER/PowerPC options ¶

On systems using the POWER/PowerPC family of processors the option `-mcpu=CPU` selects code generation for specific CPU models. The possible values of `CPU` include ‘`power`’, ‘`power2`’, ‘`powerpc`’, ‘`powerpc64`’ and ‘`common`’, in addition to other more specific model numbers. Code generated with the option `-mcpu=common` will run on any of the processors. The option `-maltivec` enables use of the Altivec vector processing instructions, if the appropriate hardware support is available.

The POWER/PowerPC processors include a combined “multiply and add” instruction a * x + b, which performs the two operations simultaneously for speed—this is referred to as a fused multiply and add, and is used by GCC by default. Due to differences in the way intermediate values are rounded, the result of a fused instruction may not be exactly the same as performing the two operations separately. In cases where strict IEEE arithmetic is required, the use of the combined instructions can be disabled with the option `-mno-fused-madd`.

On AIX systems, the option `-mminimal-toc` decreases the number of entries GCC puts in the global table of contents (TOC) in executables, to avoid “TOC overflow” errors at link time. The option `-mxl-call` makes the linking of object files from GCC compatible with those from IBM’s XL compilers. For applications using POSIX threads, AIX always requires the option `-pthread` when compiling, even when the program will only run in single-threaded mode.