https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111842
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> --- _Float16 was added in GCC 12 not as an extended floating point type but rather some target specific type which had its own rules and such. GCC 13 was the first release where _Float16 became a real C++23 extended floatpoint type and with it came the rules of C++23 extended types rather than a hacked in floating point type.