http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2011-09-17 11:23:43 UTC --- I have used the term "sui generis extended type" to refer to types such as __int128 that share many properties of integer types but are not such types (since intmax_t forms part of the ABI and these types are wider than intmax_t). I don't know what that means for type traits. All the C operations should work fine on __int128, and for __float128 where applicable (although it isn't possible to write _Complex __float128 at present since __float128 is not a keyword). ARM __fp16 is more restricted (in general values are promoted to float before arithmetic) and IA64 __fpreg is fairly clearly different from normal floating-point types. See PR 43622 and references therein. C++ support that should be present for such types, both integer-like and floating-point-like (not __fpreg in most cases, I suppose) includes typeinfo, numeric_limits (maybe with associated built-in macros), I/O (see libquadmath which libgfortran can use, and the associated complications of only linking it in static links if required) and mathematical functions in general.