Floating Types - Using the GNU Compiler Collection (GCC)
Description: Using the GNU Compiler Collection (GCC)

Next: Half-Precision, Previous: Complex, Up: C Extensions

### 6.11 Additional Floating Types

As an extension, GNU C supports additional floating types, `__float80` and `__float128` to support 80-bit (`XFmode`) and 128-bit (`TFmode`) floating types. Support for additional types includes the arithmetic operators: add, subtract, multiply, divide; unary arithmetic operators; relational operators; equality operators; and conversions to and from integer and other floating types. Use a suffix ‘`w`’ or ‘`W`’ in a literal constant of type `__float80` and ‘`q`’ or ‘`Q`’ for `_float128`. You can declare complex types using the corresponding internal complex type, `XCmode` for `__float80` type and `TCmode` for `__float128` type:

         typedef _Complex float __attribute__((mode(TC))) _Complex128;
         typedef _Complex float __attribute__((mode(XC))) _Complex80;

Not all targets support additional floating-point types. `__float80` and `__float128` types are supported on i386, x86_64 and IA-64 targets. The `__float128` type is supported on hppa HP-UX targets.