2023-03-10 Jakub Jelinek <ja...@redhat.com>
PR target/107703
* g++.dg/cpp23/ext-floating.h (__STDCPP_BFLOAT16_T__): Don't undefine
it.
(std::bfloat16_t): Use decltype (0.0bf16) like libstdc++, rather than
__bf16.
* g++.dg/cpp23/ext-floating14.C: New test.
--- gcc/testsuite/g++.dg/cpp23/ext-floating.h.jj 2022-09-27
08:03:27.118982749 +0200
+++ gcc/testsuite/g++.dg/cpp23/ext-floating.h 2023-03-10 15:04:01.647824767
+0100
@@ -14,9 +14,8 @@ namespace std
#ifdef __STDCPP_FLOAT128_T__
using float128_t = _Float128;
#endif
- #undef __STDCPP_BFLOAT16_T__
#ifdef __STDCPP_BFLOAT16_T__
- using bfloat16_t = __bf16; // ???
+ using bfloat16_t = decltype (0.0bf16);
#endif
template<typename T, T v> struct integral_constant {
static constexpr T value = v;
--- gcc/testsuite/g++.dg/cpp23/ext-floating14.C.jj 2023-03-10
14:12:17.658925358 +0100
+++ gcc/testsuite/g++.dg/cpp23/ext-floating14.C 2023-03-10 15:32:26.912057825
+0100
@@ -0,0 +1,585 @@
+// P1467R9 - Extended floating-point types and standard names.
+// PR target/107703
+// { dg-do run { target c++23 } }
+// { dg-options "-fexcess-precision=standard" }
+
+#include "ext-floating.h"
+
+#ifdef __SIZEOF_INT128__
+#define INT128_MAX ((signed __int128) ((~(unsigned __int128) 0) >> 1))
+#endif
+
+template <typename T, typename F>
+[[gnu::noipa]] T cvt (F f)
+{
+ return T (F (f));
+}
+
+int
+main ()
+{
+ // __FLT32_MAX_EXP__ is 128, so make sure all unsigned long long and
unsigned __int128
+ // values fit into it. __FLT16_MAX__ is 65504.0f16, so we need to be
+ // careful for that.
+#if __SIZEOF_LONG_LONG__ * __CHAR_BIT__ <= 128
+#if !defined(__SIZEOF_INT128__) || __SIZEOF_INT128__ * __CHAR_BIT__ == 128
+#ifdef __STDCPP_FLOAT16_T__
+ if (cvt <std::float16_t, signed char> (42) != (std::float16_t) 42
+ || cvt <std::float16_t, signed char> (-42) != (std::float16_t) -42
+#if __SCHAR_MAX__ < 65504
+ || cvt <std::float16_t, signed char> (__SCHAR_MAX__) != (std::float16_t)
__SCHAR_MAX__
+ || cvt <std::float16_t, signed char> (-__SCHAR_MAX__ - 1) !=
(std::float16_t) (-__SCHAR_MAX__ - 1)
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned char> (42) != (std::float16_t) 42
+#if __SCHAR_MAX__ * 2 + 1 < 65504
+ || cvt <std::float16_t, unsigned char> ((unsigned char) ~0) !=
(std::float16_t) ((unsigned char) ~0)
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <std::float16_t, signed short> (42) != (std::float16_t) 42
+ || cvt <std::float16_t, signed short> (-42) != (std::float16_t) -42
+#if __SHRT_MAX__ < 65504
+ || cvt <std::float16_t, signed short> (__SHRT_MAX__) != (std::float16_t)
__SHRT_MAX__
+ || cvt <std::float16_t, signed short> (-__SHRT_MAX__ - 1) !=
(std::float16_t) (-__SHRT_MAX__ - 1)
+#else
+ || cvt <std::float16_t, signed short> (65504) != (std::float16_t) 65504
+ || cvt <std::float16_t, signed short> (-65504) != (std::float16_t) -65504
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned short> (42) != (std::float16_t) 42
+ || cvt <std::float16_t, unsigned short> (65504U) != (std::float16_t)
65504U)
+ __builtin_abort ();
+ if (cvt <std::float16_t, signed int> (42) != (std::float16_t) 42
+ || cvt <std::float16_t, signed int> (-42) != (std::float16_t) -42
+#if __INT_MAX__ < 65504
+ || cvt <std::float16_t, signed short> (__INT_MAX__) != (std::float16_t)
__INT_MAX__
+ || cvt <std::float16_t, signed short> (-__INT_MAX__ - 1) !=
(std::float16_t) (-__INT_MAX__ - 1)
+#else
+ || cvt <std::float16_t, signed int> (65504) != (std::float16_t) 65504
+ || cvt <std::float16_t, signed int> (-65504) != (std::float16_t) -65504
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned int> (42) != (std::float16_t) 42U
+ || cvt <std::float16_t, unsigned int> (65504U) != (std::float16_t)
65504U)
+ __builtin_abort ();
+ if (cvt <std::float16_t, signed long int> (42L) != (std::float16_t) 42L
+ || cvt <std::float16_t, signed long int> (-42L) != (std::float16_t) -42L
+ || cvt <std::float16_t, signed long int> (65504L) != (std::float16_t)
65504L
+ || cvt <std::float16_t, signed long int> (-65504L) != (std::float16_t)
-65504L)
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned long int> (42UL) != (std::float16_t) 42UL
+ || cvt <std::float16_t, unsigned long int> (65504UL) != (std::float16_t)
65504UL)
+ __builtin_abort ();
+ if (cvt <std::float16_t, signed long long int> (42LL) != (std::float16_t)
42LL
+ || cvt <std::float16_t, signed long long int> (-42LL) !=
(std::float16_t) -42LL
+ || cvt <std::float16_t, signed long long int> (65504LL) !=
(std::float16_t) 65504LL
+ || cvt <std::float16_t, signed long long int> (-65504LL) !=
(std::float16_t) -65504LL)
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned long long int> (42ULL) != (std::float16_t)
42ULL
+ || cvt <std::float16_t, unsigned long long int> (65504ULL) !=
(std::float16_t) 65504ULL)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <std::float16_t, signed __int128> (42LL) != (std::float16_t) (signed
__int128) 42LL
+ || cvt <std::float16_t, signed __int128> (-42LL) != (std::float16_t)
(signed __int128) -42LL
+ || cvt <std::float16_t, signed __int128> (65504LL) != (std::float16_t)
(signed __int128) 65504LL
+ || cvt <std::float16_t, signed __int128> (-65504LL) != (std::float16_t)
(signed __int128) -65504LL)
+ __builtin_abort ();
+ if (cvt <std::float16_t, unsigned __int128> (42ULL) != (std::float16_t)
(unsigned __int128) 42ULL
+ || cvt <std::float16_t, unsigned __int128> (65504ULL) !=
(std::float16_t) (unsigned __int128) 65504ULL)
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_BFLOAT16_T__
+ if (cvt <std::bfloat16_t, signed char> (42) != (std::bfloat16_t) 42
+ || cvt <std::bfloat16_t, signed char> (-42) != (std::bfloat16_t) -42
+ || cvt <std::bfloat16_t, signed char> (__SCHAR_MAX__) !=
(std::bfloat16_t) __SCHAR_MAX__
+ || cvt <std::bfloat16_t, signed char> (-__SCHAR_MAX__ - 1) !=
(std::bfloat16_t) (-__SCHAR_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned char> (42) != (std::bfloat16_t) 42
+ || cvt <std::bfloat16_t, unsigned char> ((unsigned char) ~0) !=
(std::bfloat16_t) ((unsigned char) ~0))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, signed short> (42) != (std::bfloat16_t) 42
+ || cvt <std::bfloat16_t, signed short> (-42) != (std::bfloat16_t) -42
+ || cvt <std::bfloat16_t, signed short> (__SHRT_MAX__) !=
(std::bfloat16_t) __SHRT_MAX__
+ || cvt <std::bfloat16_t, signed short> (-__SHRT_MAX__ - 1) !=
(std::bfloat16_t) (-__SHRT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned short> (42) != (std::bfloat16_t) 42
+ || cvt <std::bfloat16_t, unsigned short> ((unsigned short) ~0) !=
(std::bfloat16_t) ((unsigned short) ~0))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, signed int> (42) != (std::bfloat16_t) 42
+ || cvt <std::bfloat16_t, signed int> (-42) != (std::bfloat16_t) -42
+ || cvt <std::bfloat16_t, signed int> (__INT_MAX__) != (std::bfloat16_t)
__INT_MAX__
+ || cvt <std::bfloat16_t, signed int> (-__INT_MAX__ - 1) !=
(std::bfloat16_t) (-__INT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned int> (42) != (std::bfloat16_t) 42U
+ || cvt <std::bfloat16_t, unsigned int> (~0U) != (std::bfloat16_t) ~0U)
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, signed long int> (42L) != (std::bfloat16_t) 42L
+ || cvt <std::bfloat16_t, signed long int> (-42L) != (std::bfloat16_t)
-42L
+ || cvt <std::bfloat16_t, signed long int> (__LONG_MAX__) !=
(std::bfloat16_t) __LONG_MAX__
+ || cvt <std::bfloat16_t, signed long int> (-__LONG_MAX__ - 1) !=
(std::bfloat16_t) (-__LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned long int> (42UL) != (std::bfloat16_t) 42UL
+ || cvt <std::bfloat16_t, unsigned long int> (~0UL) != (std::bfloat16_t)
~0UL)
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, signed long long int> (42LL) != (std::bfloat16_t)
42LL
+ || cvt <std::bfloat16_t, signed long long int> (-42LL) !=
(std::bfloat16_t) -42LL
+ || cvt <std::bfloat16_t, signed long long int> (__LONG_LONG_MAX__) !=
(std::bfloat16_t) __LONG_LONG_MAX__
+ || cvt <std::bfloat16_t, signed long long int> (-__LONG_LONG_MAX__ - 1)
!= (std::bfloat16_t) (-__LONG_LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned long long int> (42ULL) !=
(std::bfloat16_t) 42ULL
+ || cvt <std::bfloat16_t, unsigned long long int> (~0ULL) !=
(std::bfloat16_t) ~0ULL)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <std::bfloat16_t, signed __int128> (42LL) != (std::bfloat16_t)
(signed __int128) 42LL
+ || cvt <std::bfloat16_t, signed __int128> (-42LL) != (std::bfloat16_t)
(signed __int128) -42LL
+ || cvt <std::bfloat16_t, signed __int128> (INT128_MAX) !=
(std::bfloat16_t) INT128_MAX
+ || cvt <std::bfloat16_t, signed __int128> (-INT128_MAX - 1) !=
(std::bfloat16_t) (-INT128_MAX - 1))
+ __builtin_abort ();
+ if (cvt <std::bfloat16_t, unsigned __int128> (42ULL) != (std::bfloat16_t)
(unsigned __int128) 42ULL
+ || cvt <std::bfloat16_t, unsigned __int128> (~(unsigned __int128) 0) !=
(std::bfloat16_t) (~(unsigned __int128) 0))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT32_T__
+ if (cvt <std::float32_t, signed char> (42) != (std::float32_t) 42
+ || cvt <std::float32_t, signed char> (-42) != (std::float32_t) -42
+ || cvt <std::float32_t, signed char> (__SCHAR_MAX__) != (std::float32_t)
__SCHAR_MAX__
+ || cvt <std::float32_t, signed char> (-__SCHAR_MAX__ - 1) !=
(std::float32_t) (-__SCHAR_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned char> (42) != (std::float32_t) 42
+ || cvt <std::float32_t, unsigned char> ((unsigned char) ~0) !=
(std::float32_t) ((unsigned char) ~0))
+ __builtin_abort ();
+ if (cvt <std::float32_t, signed short> (42) != (std::float32_t) 42
+ || cvt <std::float32_t, signed short> (-42) != (std::float32_t) -42
+ || cvt <std::float32_t, signed short> (__SHRT_MAX__) != (std::float32_t)
__SHRT_MAX__
+ || cvt <std::float32_t, signed short> (-__SHRT_MAX__ - 1) !=
(std::float32_t) (-__SHRT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned short> (42) != (std::float32_t) 42
+ || cvt <std::float32_t, unsigned short> ((unsigned short) ~0) !=
(std::float32_t) ((unsigned short) ~0))
+ __builtin_abort ();
+ if (cvt <std::float32_t, signed int> (42) != (std::float32_t) 42
+ || cvt <std::float32_t, signed int> (-42) != (std::float32_t) -42
+ || cvt <std::float32_t, signed int> (__INT_MAX__) != (std::float32_t)
__INT_MAX__
+ || cvt <std::float32_t, signed int> (-__INT_MAX__ - 1) !=
(std::float32_t) (-__INT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned int> (42) != (std::float32_t) 42U
+ || cvt <std::float32_t, unsigned int> (~0U) != (std::float32_t) ~0U)
+ __builtin_abort ();
+ if (cvt <std::float32_t, signed long int> (42L) != (std::float32_t) 42L
+ || cvt <std::float32_t, signed long int> (-42L) != (std::float32_t) -42L
+ || cvt <std::float32_t, signed long int> (__LONG_MAX__) !=
(std::float32_t) __LONG_MAX__
+ || cvt <std::float32_t, signed long int> (-__LONG_MAX__ - 1) !=
(std::float32_t) (-__LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned long int> (42UL) != (std::float32_t) 42UL
+ || cvt <std::float32_t, unsigned long int> (~0UL) != (std::float32_t)
~0UL)
+ __builtin_abort ();
+ if (cvt <std::float32_t, signed long long int> (42LL) != (std::float32_t)
42LL
+ || cvt <std::float32_t, signed long long int> (-42LL) !=
(std::float32_t) -42LL
+ || cvt <std::float32_t, signed long long int> (__LONG_LONG_MAX__) !=
(std::float32_t) __LONG_LONG_MAX__
+ || cvt <std::float32_t, signed long long int> (-__LONG_LONG_MAX__ - 1)
!= (std::float32_t) (-__LONG_LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned long long int> (42ULL) != (std::float32_t)
42ULL
+ || cvt <std::float32_t, unsigned long long int> (~0ULL) !=
(std::float32_t) ~0ULL)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <std::float32_t, signed __int128> (42LL) != (std::float32_t) (signed
__int128) 42LL
+ || cvt <std::float32_t, signed __int128> (-42LL) != (std::float32_t)
(signed __int128) -42LL
+ || cvt <std::float32_t, signed __int128> (INT128_MAX) !=
(std::float32_t) INT128_MAX
+ || cvt <std::float32_t, signed __int128> (-INT128_MAX - 1) !=
(std::float32_t) (-INT128_MAX - 1))
+ __builtin_abort ();
+ if (cvt <std::float32_t, unsigned __int128> (42ULL) != (std::float32_t)
(unsigned __int128) 42ULL
+ || cvt <std::float32_t, unsigned __int128> (~(unsigned __int128) 0) !=
(std::float32_t) (~(unsigned __int128) 0))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT64_T__
+ if (cvt <std::float64_t, signed char> (42) != (std::float64_t) 42
+ || cvt <std::float64_t, signed char> (-42) != (std::float64_t) -42
+ || cvt <std::float64_t, signed char> (__SCHAR_MAX__) != (std::float64_t)
__SCHAR_MAX__
+ || cvt <std::float64_t, signed char> (-__SCHAR_MAX__ - 1) !=
(std::float64_t) (-__SCHAR_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned char> (42) != (std::float64_t) 42
+ || cvt <std::float64_t, unsigned char> ((unsigned char) ~0) !=
(std::float64_t) ((unsigned char) ~0))
+ __builtin_abort ();
+ if (cvt <std::float64_t, signed short> (42) != (std::float64_t) 42
+ || cvt <std::float64_t, signed short> (-42) != (std::float64_t) -42
+ || cvt <std::float64_t, signed short> (__SHRT_MAX__) != (std::float64_t)
__SHRT_MAX__
+ || cvt <std::float64_t, signed short> (-__SHRT_MAX__ - 1) !=
(std::float64_t) (-__SHRT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned short> (42) != (std::float64_t) 42
+ || cvt <std::float64_t, unsigned short> ((unsigned short) ~0) !=
(std::float64_t) ((unsigned short) ~0))
+ __builtin_abort ();
+ if (cvt <std::float64_t, signed int> (42) != (std::float64_t) 42
+ || cvt <std::float64_t, signed int> (-42) != (std::float64_t) -42
+ || cvt <std::float64_t, signed int> (__INT_MAX__) != (std::float64_t)
__INT_MAX__
+ || cvt <std::float64_t, signed int> (-__INT_MAX__ - 1) !=
(std::float64_t) (-__INT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned int> (42) != (std::float64_t) 42U
+ || cvt <std::float64_t, unsigned int> (~0U) != (std::float64_t) ~0U)
+ __builtin_abort ();
+ if (cvt <std::float64_t, signed long int> (42L) != (std::float64_t) 42L
+ || cvt <std::float64_t, signed long int> (-42L) != (std::float64_t) -42L
+ || cvt <std::float64_t, signed long int> (__LONG_MAX__) !=
(std::float64_t) __LONG_MAX__
+ || cvt <std::float64_t, signed long int> (-__LONG_MAX__ - 1) !=
(std::float64_t) (-__LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned long int> (42UL) != (std::float64_t) 42UL
+ || cvt <std::float64_t, unsigned long int> (~0UL) != (std::float64_t)
~0UL)
+ __builtin_abort ();
+ if (cvt <std::float64_t, signed long long int> (42LL) != (std::float64_t)
42LL
+ || cvt <std::float64_t, signed long long int> (-42LL) !=
(std::float64_t) -42LL
+ || cvt <std::float64_t, signed long long int> (__LONG_LONG_MAX__) !=
(std::float64_t) __LONG_LONG_MAX__
+ || cvt <std::float64_t, signed long long int> (-__LONG_LONG_MAX__ - 1)
!= (std::float64_t) (-__LONG_LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned long long int> (42ULL) != (std::float64_t)
42ULL
+ || cvt <std::float64_t, unsigned long long int> (~0ULL) !=
(std::float64_t) ~0ULL)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <std::float64_t, signed __int128> (42LL) != (std::float64_t) (signed
__int128) 42LL
+ || cvt <std::float64_t, signed __int128> (-42LL) != (std::float64_t)
(signed __int128) -42LL
+ || cvt <std::float64_t, signed __int128> (INT128_MAX) !=
(std::float64_t) INT128_MAX
+ || cvt <std::float64_t, signed __int128> (-INT128_MAX - 1) !=
(std::float64_t) (-INT128_MAX - 1))
+ __builtin_abort ();
+ if (cvt <std::float64_t, unsigned __int128> (42ULL) != (std::float64_t)
(unsigned __int128) 42ULL
+ || cvt <std::float64_t, unsigned __int128> (~(unsigned __int128) 0) !=
(std::float64_t) (~(unsigned __int128) 0))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT128_T__
+ if (cvt <std::float128_t, signed char> (42) != (std::float128_t) 42
+ || cvt <std::float128_t, signed char> (-42) != (std::float128_t) -42
+ || cvt <std::float128_t, signed char> (__SCHAR_MAX__) !=
(std::float128_t) __SCHAR_MAX__
+ || cvt <std::float128_t, signed char> (-__SCHAR_MAX__ - 1) !=
(std::float128_t) (-__SCHAR_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned char> (42) != (std::float128_t) 42
+ || cvt <std::float128_t, unsigned char> ((unsigned char) ~0) !=
(std::float128_t) ((unsigned char) ~0))
+ __builtin_abort ();
+ if (cvt <std::float128_t, signed short> (42) != (std::float128_t) 42
+ || cvt <std::float128_t, signed short> (-42) != (std::float128_t) -42
+ || cvt <std::float128_t, signed short> (__SHRT_MAX__) !=
(std::float128_t) __SHRT_MAX__
+ || cvt <std::float128_t, signed short> (-__SHRT_MAX__ - 1) !=
(std::float128_t) (-__SHRT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned short> (42) != (std::float128_t) 42
+ || cvt <std::float128_t, unsigned short> ((unsigned short) ~0) !=
(std::float128_t) ((unsigned short) ~0))
+ __builtin_abort ();
+ if (cvt <std::float128_t, signed int> (42) != (std::float128_t) 42
+ || cvt <std::float128_t, signed int> (-42) != (std::float128_t) -42
+ || cvt <std::float128_t, signed int> (__INT_MAX__) != (std::float128_t)
__INT_MAX__
+ || cvt <std::float128_t, signed int> (-__INT_MAX__ - 1) !=
(std::float128_t) (-__INT_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned int> (42) != (std::float128_t) 42U
+ || cvt <std::float128_t, unsigned int> (~0U) != (std::float128_t) ~0U)
+ __builtin_abort ();
+ if (cvt <std::float128_t, signed long int> (42L) != (std::float128_t) 42L
+ || cvt <std::float128_t, signed long int> (-42L) != (std::float128_t)
-42L
+ || cvt <std::float128_t, signed long int> (__LONG_MAX__) !=
(std::float128_t) __LONG_MAX__
+ || cvt <std::float128_t, signed long int> (-__LONG_MAX__ - 1) !=
(std::float128_t) (-__LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned long int> (42UL) != (std::float128_t) 42UL
+ || cvt <std::float128_t, unsigned long int> (~0UL) != (std::float128_t)
~0UL)
+ __builtin_abort ();
+ if (cvt <std::float128_t, signed long long int> (42LL) != (std::float128_t)
42LL
+ || cvt <std::float128_t, signed long long int> (-42LL) !=
(std::float128_t) -42LL
+ || cvt <std::float128_t, signed long long int> (__LONG_LONG_MAX__) !=
(std::float128_t) __LONG_LONG_MAX__
+ || cvt <std::float128_t, signed long long int> (-__LONG_LONG_MAX__ - 1)
!= (std::float128_t) (-__LONG_LONG_MAX__ - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned long long int> (42ULL) !=
(std::float128_t) 42ULL
+ || cvt <std::float128_t, unsigned long long int> (~0ULL) !=
(std::float128_t) ~0ULL)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <std::float128_t, signed __int128> (42LL) != (std::float128_t)
(signed __int128) 42LL
+ || cvt <std::float128_t, signed __int128> (-42LL) != (std::float128_t)
(signed __int128) -42LL
+ || cvt <std::float128_t, signed __int128> (INT128_MAX) !=
(std::float128_t) INT128_MAX
+ || cvt <std::float128_t, signed __int128> (-INT128_MAX - 1) !=
(std::float128_t) (-INT128_MAX - 1))
+ __builtin_abort ();
+ if (cvt <std::float128_t, unsigned __int128> (42ULL) != (std::float128_t)
(unsigned __int128) 42ULL
+ || cvt <std::float128_t, unsigned __int128> (~(unsigned __int128) 0) !=
(std::float128_t) (~(unsigned __int128) 0))
+ __builtin_abort ();
+#endif
+#endif
+
+#ifdef __STDCPP_FLOAT16_T__
+ if (cvt <signed char, std::float16_t> (42.0f16) != (signed char)
(std::float16_t) 42.0f16
+ || cvt <signed char, std::float16_t> (-42.0f16) != (signed char)
(std::float16_t) -42.0f16
+#if __SCHAR_MAX__ < 65504
+ || cvt <signed char, std::float16_t> ((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2)) != (signed char) (std::float16_t) ((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))
+ || cvt <signed char, std::float16_t> (-((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2))) != (signed char) (std::float16_t) (-((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2)))
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <unsigned char, std::float16_t> (42.0f16) != (unsigned char)
(std::float16_t) 42.0f16
+#if __SCHAR_MAX__ * 2 + 1 < 65504
+ || cvt <unsigned char, std::float16_t> ((unsigned char) 1 << (__CHAR_BIT__ *
sizeof (unsigned char) - 1)) != (unsigned char) (std::float16_t) ((unsigned char) 1 <<
(__CHAR_BIT__ * sizeof (unsigned char) - 1))
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <signed short, std::float16_t> (42.0f16) != (signed short)
(std::float16_t) 42.0f16
+ || cvt <signed short, std::float16_t> (-42.0f16) != (signed short)
(std::float16_t) -42.0f16
+#if __SHRT_MAX__ < 65504
+ || cvt <signed short, std::float16_t> ((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2)) != (signed short) (std::float16_t) ((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))
+ || cvt <signed short, std::float16_t> (-((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2))) != (signed short) (std::float16_t) (-((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2)))
+#else
+ || cvt <signed short, std::float16_t> (65504.0f16) != (signed short)
(std::float16_t) 65504.0f16
+ || cvt <signed short, std::float16_t> (-65504.0f16) != (signed short)
(std::float16_t) -65504.0f16
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <unsigned short, std::float16_t> (42.0f16) != (unsigned short)
(std::float16_t) 42.0f16
+ || cvt <unsigned short, std::float16_t> (65504.0f16) != (unsigned short)
(std::float16_t) 65504.0f16)
+ __builtin_abort ();
+ if (cvt <signed int, std::float16_t> (42.0f16) != (signed int)
(std::float16_t) 42.0f16
+ || cvt <signed int, std::float16_t> (-42.0f16) != (signed int)
(std::float16_t) -42.0f16
+#if __INT_MAX__ < 65504
+ || cvt <signed int, std::float16_t> ((signed int) 1 << (__CHAR_BIT__ * sizeof
(signed int) - 2)) != (signed int) (std::float16_t) ((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))
+ || cvt <signed int, std::float16_t> (-((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))) != (signed int) (std::float16_t) (-((signed int) 1 <<
(__CHAR_BIT__ * sizeof (signed int) - 2)))
+#else
+ || cvt <signed int, std::float16_t> (65504.0f16) != (signed int)
(std::float16_t) 65504.0f16
+ || cvt <signed int, std::float16_t> (-65504.0f16) != (signed int)
(std::float16_t) -65504.0f16
+#endif
+ )
+ __builtin_abort ();
+ if (cvt <unsigned int, std::float16_t> (42.0f16) != (unsigned int)
(std::float16_t) 42.0f16
+ || cvt <unsigned int, std::float16_t> (65504.0f16) != (unsigned int)
(std::float16_t) 65504.0f16)
+ __builtin_abort ();
+ if (cvt <signed long int, std::float16_t> (42.0f16) != (signed long int)
(std::float16_t) 42.0f16
+ || cvt <signed long int, std::float16_t> (-42.0f16) != (signed long int)
(std::float16_t) -42.0f16
+ || cvt <signed long int, std::float16_t> (65504.0f16) != (signed long
int) (std::float16_t) 65504.0f16
+ || cvt <signed long int, std::float16_t> (-65504.0f16) != (signed long
int) (std::float16_t) -65504.0f16)
+ __builtin_abort ();
+ if (cvt <unsigned long int, std::float16_t> (42.0f16) != (unsigned long int)
(std::float16_t) 42.0f16
+ || cvt <unsigned long int, std::float16_t> (65504.0f16) != (unsigned
long int) (std::float16_t) 65504.0f16)
+ __builtin_abort ();
+ if (cvt <signed long long int, std::float16_t> (42.0f16) != (signed long
long int) (std::float16_t) 42.0f16
+ || cvt <signed long long int, std::float16_t> (-42.0f16) != (signed long
long int) (std::float16_t) -42.0f16
+ || cvt <signed long long int, std::float16_t> (65504.0f16) != (signed
long long int) (std::float16_t) 65504.0f16
+ || cvt <signed long long int, std::float16_t> (-65504.0f16) != (signed
long long int) (std::float16_t) -65504.0f16)
+ __builtin_abort ();
+ if (cvt <unsigned long long int, std::float16_t> (42.0f16) != (unsigned long
long int) (std::float16_t) 42.0f16
+ || cvt <unsigned long long int, std::float16_t> (65504.0f16) !=
(unsigned long long int) (std::float16_t) 65504.0f16)
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <signed __int128, std::float16_t> (42.0f16) != (signed __int128)
(std::float16_t) 42.0f16
+ || cvt <signed __int128, std::float16_t> (-42.0f16) != (signed __int128)
(std::float16_t) -42.0f16
+ || cvt <signed __int128, std::float16_t> (65504.0f16) != (signed
__int128) (std::float16_t) 65504.0f16
+ || cvt <signed __int128, std::float16_t> (-65504.0f16) != (signed
__int128) (std::float16_t) -65504.0f16)
+ __builtin_abort ();
+ if (cvt <unsigned __int128, std::float16_t> (42.0f16) != (unsigned __int128)
(std::float16_t) 42.0f16
+ || cvt <unsigned __int128, std::float16_t> (65504.0f16) != (unsigned
__int128) (std::float16_t) 65504.0f16)
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_BFLOAT16_T__
+ if (cvt <signed char, std::bfloat16_t> (42.0bf16) != (signed char)
(std::bfloat16_t) 42.0bf16
+ || cvt <signed char, std::bfloat16_t> (-42.0bf16) != (signed char)
(std::bfloat16_t) -42.0bf16
+ || cvt <signed char, std::bfloat16_t> ((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2)) != (signed char) (std::bfloat16_t) ((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))
+ || cvt <signed char, std::bfloat16_t> (-((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2))) != (signed char) (std::bfloat16_t) (-((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned char, std::bfloat16_t> (42.0bf16) != (unsigned char)
(std::bfloat16_t) 42.0bf16
+ || cvt <unsigned char, std::bfloat16_t> ((unsigned char) 1 << (__CHAR_BIT__ *
sizeof (unsigned char) - 1)) != (unsigned char) (std::bfloat16_t) ((unsigned char) 1 <<
(__CHAR_BIT__ * sizeof (unsigned char) - 1)))
+ __builtin_abort ();
+ if (cvt <signed short, std::bfloat16_t> (42.0bf16) != (signed short)
(std::bfloat16_t) 42.0bf16
+ || cvt <signed short, std::bfloat16_t> (-42.0bf16) != (signed short)
(std::bfloat16_t) -42.0bf16
+ || cvt <signed short, std::bfloat16_t> ((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2)) != (signed short) (std::bfloat16_t) ((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))
+ || cvt <signed short, std::bfloat16_t> (-((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2))) != (signed short) (std::bfloat16_t) (-((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned short, std::bfloat16_t> (42.0bf16) != (unsigned short)
(std::bfloat16_t) 42.0bf16
+ || cvt <unsigned short, std::bfloat16_t> ((unsigned short) 1 << (__CHAR_BIT__
* sizeof (unsigned short) - 1)) != (unsigned short) (std::bfloat16_t) ((unsigned short) 1
<< (__CHAR_BIT__ * sizeof (unsigned short) - 1)))
+ __builtin_abort ();
+ if (cvt <signed int, std::bfloat16_t> (42.0bf16) != (signed int)
(std::bfloat16_t) 42.0bf16
+ || cvt <signed int, std::bfloat16_t> (-42.0bf16) != (signed int)
(std::bfloat16_t) -42.0bf16
+ || cvt <signed int, std::bfloat16_t> ((signed int) 1 << (__CHAR_BIT__ * sizeof
(signed int) - 2)) != (signed int) (std::bfloat16_t) ((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))
+ || cvt <signed int, std::bfloat16_t> (-((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))) != (signed int) (std::bfloat16_t) (-((signed int) 1 <<
(__CHAR_BIT__ * sizeof (signed int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned int, std::bfloat16_t> (42.0bf16) != (unsigned int)
(std::bfloat16_t) 42.0bf16
+ || cvt <unsigned int, std::bfloat16_t> ((unsigned int) 1 << (__CHAR_BIT__ *
sizeof (unsigned int) - 1)) != (unsigned int) (std::bfloat16_t) ((unsigned int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long int, std::bfloat16_t> (42.0bf16) != (signed long int)
(std::bfloat16_t) 42.0bf16
+ || cvt <signed long int, std::bfloat16_t> (-42.0bf16) != (signed long
int) (std::bfloat16_t) -42.0bf16
+ || cvt <signed long int, std::bfloat16_t> ((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2)) != (signed long int) (std::bfloat16_t) ((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))
+ || cvt <signed long int, std::bfloat16_t> (-((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2))) != (signed long int) (std::bfloat16_t) (-((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long int, std::bfloat16_t> (42.0bf16) != (unsigned long
int) (std::bfloat16_t) 42.0bf16
+ || cvt <unsigned long int, std::bfloat16_t> ((unsigned long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long int) - 1)) != (unsigned long int) (std::bfloat16_t)
((unsigned long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long long int, std::bfloat16_t> (42.0bf16) != (signed long
long int) (std::bfloat16_t) 42.0bf16
+ || cvt <signed long long int, std::bfloat16_t> (-42.0bf16) != (signed
long long int) (std::bfloat16_t) -42.0bf16
+ || cvt <signed long long int, std::bfloat16_t> ((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2)) != (signed long long int) (std::bfloat16_t)
((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))
+ || cvt <signed long long int, std::bfloat16_t> (-((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2))) != (signed long long int) (std::bfloat16_t)
(-((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long long int, std::bfloat16_t> (42.0bf16) != (unsigned
long long int) (std::bfloat16_t) 42.0bf16
+ || cvt <unsigned long long int, std::bfloat16_t> ((unsigned long long int) 1
<< (__CHAR_BIT__ * sizeof (unsigned long long int) - 1)) != (unsigned long long int)
(std::bfloat16_t) ((unsigned long long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long long
int) - 1)))
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <signed __int128, std::bfloat16_t> (42.0bf16) != (signed __int128)
(std::bfloat16_t) 42.0bf16
+ || cvt <signed __int128, std::bfloat16_t> (-42.0bf16) != (signed
__int128) (std::bfloat16_t) -42.0bf16
+ || cvt <signed __int128, std::bfloat16_t> ((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2)) != (signed __int128) (std::bfloat16_t) ((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))
+ || cvt <signed __int128, std::bfloat16_t> (-((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2))) != (signed __int128) (std::bfloat16_t) (-((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned __int128, std::bfloat16_t> (42.0bf16) != (unsigned
__int128) (std::bfloat16_t) 42.0bf16
+ || cvt <unsigned __int128, std::bfloat16_t> ((unsigned __int128) 1 <<
(__CHAR_BIT__ * sizeof (unsigned __int128) - 1)) != (unsigned __int128) (std::bfloat16_t)
((unsigned __int128) 1 << (__CHAR_BIT__ * sizeof (unsigned __int128) - 1)))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT32_T__
+ if (cvt <signed char, std::float32_t> (42.0f32) != (signed char)
(std::float32_t) 42.0f32
+ || cvt <signed char, std::float32_t> (-42.0f32) != (signed char)
(std::float32_t) -42.0f32
+ || cvt <signed char, std::float32_t> ((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2)) != (signed char) (std::float32_t) ((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))
+ || cvt <signed char, std::float32_t> (-((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2))) != (signed char) (std::float32_t) (-((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned char, std::float32_t> (42.0f32) != (unsigned char)
(std::float32_t) 42.0f32
+ || cvt <unsigned char, std::float32_t> ((unsigned char) 1 << (__CHAR_BIT__ *
sizeof (unsigned char) - 1)) != (unsigned char) (std::float32_t) ((unsigned char) 1 <<
(__CHAR_BIT__ * sizeof (unsigned char) - 1)))
+ __builtin_abort ();
+ if (cvt <signed short, std::float32_t> (42.0f32) != (signed short)
(std::float32_t) 42.0f32
+ || cvt <signed short, std::float32_t> (-42.0f32) != (signed short)
(std::float32_t) -42.0f32
+ || cvt <signed short, std::float32_t> ((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2)) != (signed short) (std::float32_t) ((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))
+ || cvt <signed short, std::float32_t> (-((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2))) != (signed short) (std::float32_t) (-((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned short, std::float32_t> (42.0f32) != (unsigned short)
(std::float32_t) 42.0f32
+ || cvt <unsigned short, std::float32_t> ((unsigned short) 1 << (__CHAR_BIT__ *
sizeof (unsigned short) - 1)) != (unsigned short) (std::float32_t) ((unsigned short) 1 <<
(__CHAR_BIT__ * sizeof (unsigned short) - 1)))
+ __builtin_abort ();
+ if (cvt <signed int, std::float32_t> (42.0f32) != (signed int)
(std::float32_t) 42.0f32
+ || cvt <signed int, std::float32_t> (-42.0f32) != (signed int)
(std::float32_t) -42.0f32
+ || cvt <signed int, std::float32_t> ((signed int) 1 << (__CHAR_BIT__ * sizeof
(signed int) - 2)) != (signed int) (std::float32_t) ((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))
+ || cvt <signed int, std::float32_t> (-((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))) != (signed int) (std::float32_t) (-((signed int) 1 <<
(__CHAR_BIT__ * sizeof (signed int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned int, std::float32_t> (42.0f32) != (unsigned int)
(std::float32_t) 42.0f32
+ || cvt <unsigned int, std::float32_t> ((unsigned int) 1 << (__CHAR_BIT__ *
sizeof (unsigned int) - 1)) != (unsigned int) (std::float32_t) ((unsigned int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long int, std::float32_t> (42.0f32) != (signed long int)
(std::float32_t) 42.0f32
+ || cvt <signed long int, std::float32_t> (-42.0f32) != (signed long int)
(std::float32_t) -42.0f32
+ || cvt <signed long int, std::float32_t> ((signed long int) 1 << (__CHAR_BIT__
* sizeof (signed long int) - 2)) != (signed long int) (std::float32_t) ((signed long int) 1
<< (__CHAR_BIT__ * sizeof (signed long int) - 2))
+ || cvt <signed long int, std::float32_t> (-((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2))) != (signed long int) (std::float32_t) (-((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long int, std::float32_t> (42.0f32) != (unsigned long int)
(std::float32_t) 42.0f32
+ || cvt <unsigned long int, std::float32_t> ((unsigned long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long int) - 1)) != (unsigned long int) (std::float32_t)
((unsigned long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long long int, std::float32_t> (42.0f32) != (signed long
long int) (std::float32_t) 42.0f32
+ || cvt <signed long long int, std::float32_t> (-42.0f32) != (signed long
long int) (std::float32_t) -42.0f32
+ || cvt <signed long long int, std::float32_t> ((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2)) != (signed long long int) (std::float32_t)
((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))
+ || cvt <signed long long int, std::float32_t> (-((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2))) != (signed long long int) (std::float32_t)
(-((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long long int, std::float32_t> (42.0f32) != (unsigned long
long int) (std::float32_t) 42.0f32
+ || cvt <unsigned long long int, std::float32_t> ((unsigned long long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long long int) - 1)) != (unsigned long long int)
(std::float32_t) ((unsigned long long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long long
int) - 1)))
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <signed __int128, std::float32_t> (42.0f32) != (signed __int128)
(std::float32_t) 42.0f32
+ || cvt <signed __int128, std::float32_t> (-42.0f32) != (signed __int128)
(std::float32_t) -42.0f32
+ || cvt <signed __int128, std::float32_t> ((signed __int128) 1 << (__CHAR_BIT__
* sizeof (signed __int128) - 2)) != (signed __int128) (std::float32_t) ((signed __int128) 1
<< (__CHAR_BIT__ * sizeof (signed __int128) - 2))
+ || cvt <signed __int128, std::float32_t> (-((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2))) != (signed __int128) (std::float32_t) (-((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned __int128, std::float32_t> (42.0f32) != (unsigned __int128)
(std::float32_t) 42.0f32
+ || cvt <unsigned __int128, std::float32_t> ((unsigned __int128) 1 <<
(__CHAR_BIT__ * sizeof (unsigned __int128) - 1)) != (unsigned __int128) (std::float32_t)
((unsigned __int128) 1 << (__CHAR_BIT__ * sizeof (unsigned __int128) - 1)))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT64_T__
+ if (cvt <signed char, std::float64_t> (42.0f64) != (signed char)
(std::float64_t) 42.0f64
+ || cvt <signed char, std::float64_t> (-42.0f64) != (signed char)
(std::float64_t) -42.0f64
+ || cvt <signed char, std::float64_t> ((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2)) != (signed char) (std::float64_t) ((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))
+ || cvt <signed char, std::float64_t> (-((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2))) != (signed char) (std::float64_t) (-((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned char, std::float64_t> (42.0f64) != (unsigned char)
(std::float64_t) 42.0f64
+ || cvt <unsigned char, std::float64_t> ((unsigned char) 1 << (__CHAR_BIT__ *
sizeof (unsigned char) - 1)) != (unsigned char) (std::float64_t) ((unsigned char) 1 <<
(__CHAR_BIT__ * sizeof (unsigned char) - 1)))
+ __builtin_abort ();
+ if (cvt <signed short, std::float64_t> (42.0f64) != (signed short)
(std::float64_t) 42.0f64
+ || cvt <signed short, std::float64_t> (-42.0f64) != (signed short)
(std::float64_t) -42.0f64
+ || cvt <signed short, std::float64_t> ((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2)) != (signed short) (std::float64_t) ((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))
+ || cvt <signed short, std::float64_t> (-((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2))) != (signed short) (std::float64_t) (-((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned short, std::float64_t> (42.0f64) != (unsigned short)
(std::float64_t) 42.0f64
+ || cvt <unsigned short, std::float64_t> ((unsigned short) 1 << (__CHAR_BIT__ *
sizeof (unsigned short) - 1)) != (unsigned short) (std::float64_t) ((unsigned short) 1 <<
(__CHAR_BIT__ * sizeof (unsigned short) - 1)))
+ __builtin_abort ();
+ if (cvt <signed int, std::float64_t> (42.0f64) != (signed int)
(std::float64_t) 42.0f64
+ || cvt <signed int, std::float64_t> (-42.0f64) != (signed int)
(std::float64_t) -42.0f64
+ || cvt <signed int, std::float64_t> ((signed int) 1 << (__CHAR_BIT__ * sizeof
(signed int) - 2)) != (signed int) (std::float64_t) ((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))
+ || cvt <signed int, std::float64_t> (-((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))) != (signed int) (std::float64_t) (-((signed int) 1 <<
(__CHAR_BIT__ * sizeof (signed int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned int, std::float64_t> (42.0f64) != (unsigned int)
(std::float64_t) 42.0f64
+ || cvt <unsigned int, std::float64_t> ((unsigned int) 1 << (__CHAR_BIT__ *
sizeof (unsigned int) - 1)) != (unsigned int) (std::float64_t) ((unsigned int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long int, std::float64_t> (42.0f64) != (signed long int)
(std::float64_t) 42.0f64
+ || cvt <signed long int, std::float64_t> (-42.0f64) != (signed long int)
(std::float64_t) -42.0f64
+ || cvt <signed long int, std::float64_t> ((signed long int) 1 << (__CHAR_BIT__
* sizeof (signed long int) - 2)) != (signed long int) (std::float64_t) ((signed long int) 1
<< (__CHAR_BIT__ * sizeof (signed long int) - 2))
+ || cvt <signed long int, std::float64_t> (-((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2))) != (signed long int) (std::float64_t) (-((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long int, std::float64_t> (42.0f64) != (unsigned long int)
(std::float64_t) 42.0f64
+ || cvt <unsigned long int, std::float64_t> ((unsigned long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long int) - 1)) != (unsigned long int) (std::float64_t)
((unsigned long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long long int, std::float64_t> (42.0f64) != (signed long
long int) (std::float64_t) 42.0f64
+ || cvt <signed long long int, std::float64_t> (-42.0f64) != (signed long
long int) (std::float64_t) -42.0f64
+ || cvt <signed long long int, std::float64_t> ((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2)) != (signed long long int) (std::float64_t)
((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))
+ || cvt <signed long long int, std::float64_t> (-((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2))) != (signed long long int) (std::float64_t)
(-((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long long int, std::float64_t> (42.0f64) != (unsigned long
long int) (std::float64_t) 42.0f64
+ || cvt <unsigned long long int, std::float64_t> ((unsigned long long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long long int) - 1)) != (unsigned long long int)
(std::float64_t) ((unsigned long long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long long
int) - 1)))
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <signed __int128, std::float64_t> (42.0f64) != (signed __int128)
(std::float64_t) 42.0f64
+ || cvt <signed __int128, std::float64_t> (-42.0f64) != (signed __int128)
(std::float64_t) -42.0f64
+ || cvt <signed __int128, std::float64_t> ((signed __int128) 1 << (__CHAR_BIT__
* sizeof (signed __int128) - 2)) != (signed __int128) (std::float64_t) ((signed __int128) 1
<< (__CHAR_BIT__ * sizeof (signed __int128) - 2))
+ || cvt <signed __int128, std::float64_t> (-((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2))) != (signed __int128) (std::float64_t) (-((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned __int128, std::float64_t> (42.0f64) != (unsigned __int128)
(std::float64_t) 42.0f64
+ || cvt <unsigned __int128, std::float64_t> ((unsigned __int128) 1 <<
(__CHAR_BIT__ * sizeof (unsigned __int128) - 1)) != (unsigned __int128) (std::float64_t)
((unsigned __int128) 1 << (__CHAR_BIT__ * sizeof (unsigned __int128) - 1)))
+ __builtin_abort ();
+#endif
+#endif
+#ifdef __STDCPP_FLOAT128_T__
+ if (cvt <signed char, std::float128_t> (42.0f128) != (signed char)
(std::float128_t) 42.0f128
+ || cvt <signed char, std::float128_t> (-42.0f128) != (signed char)
(std::float128_t) -42.0f128
+ || cvt <signed char, std::float128_t> ((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2)) != (signed char) (std::float128_t) ((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))
+ || cvt <signed char, std::float128_t> (-((signed char) 1 << (__CHAR_BIT__ *
sizeof (signed char) - 2))) != (signed char) (std::float128_t) (-((signed char) 1 <<
(__CHAR_BIT__ * sizeof (signed char) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned char, std::float128_t> (42.0f128) != (unsigned char)
(std::float128_t) 42.0f128
+ || cvt <unsigned char, std::float128_t> ((unsigned char) 1 << (__CHAR_BIT__ *
sizeof (unsigned char) - 1)) != (unsigned char) (std::float128_t) ((unsigned char) 1 <<
(__CHAR_BIT__ * sizeof (unsigned char) - 1)))
+ __builtin_abort ();
+ if (cvt <signed short, std::float128_t> (42.0f128) != (signed short)
(std::float128_t) 42.0f128
+ || cvt <signed short, std::float128_t> (-42.0f128) != (signed short)
(std::float128_t) -42.0f128
+ || cvt <signed short, std::float128_t> ((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2)) != (signed short) (std::float128_t) ((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))
+ || cvt <signed short, std::float128_t> (-((signed short) 1 << (__CHAR_BIT__ *
sizeof (signed short) - 2))) != (signed short) (std::float128_t) (-((signed short) 1 <<
(__CHAR_BIT__ * sizeof (signed short) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned short, std::float128_t> (42.0f128) != (unsigned short)
(std::float128_t) 42.0f128
+ || cvt <unsigned short, std::float128_t> ((unsigned short) 1 << (__CHAR_BIT__
* sizeof (unsigned short) - 1)) != (unsigned short) (std::float128_t) ((unsigned short) 1
<< (__CHAR_BIT__ * sizeof (unsigned short) - 1)))
+ __builtin_abort ();
+ if (cvt <signed int, std::float128_t> (42.0f128) != (signed int)
(std::float128_t) 42.0f128
+ || cvt <signed int, std::float128_t> (-42.0f128) != (signed int)
(std::float128_t) -42.0f128
+ || cvt <signed int, std::float128_t> ((signed int) 1 << (__CHAR_BIT__ * sizeof
(signed int) - 2)) != (signed int) (std::float128_t) ((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))
+ || cvt <signed int, std::float128_t> (-((signed int) 1 << (__CHAR_BIT__ *
sizeof (signed int) - 2))) != (signed int) (std::float128_t) (-((signed int) 1 <<
(__CHAR_BIT__ * sizeof (signed int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned int, std::float128_t> (42.0f128) != (unsigned int)
(std::float128_t) 42.0f128
+ || cvt <unsigned int, std::float128_t> ((unsigned int) 1 << (__CHAR_BIT__ *
sizeof (unsigned int) - 1)) != (unsigned int) (std::float128_t) ((unsigned int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long int, std::float128_t> (42.0f128) != (signed long int)
(std::float128_t) 42.0f128
+ || cvt <signed long int, std::float128_t> (-42.0f128) != (signed long
int) (std::float128_t) -42.0f128
+ || cvt <signed long int, std::float128_t> ((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2)) != (signed long int) (std::float128_t) ((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))
+ || cvt <signed long int, std::float128_t> (-((signed long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long int) - 2))) != (signed long int) (std::float128_t) (-((signed
long int) 1 << (__CHAR_BIT__ * sizeof (signed long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long int, std::float128_t> (42.0f128) != (unsigned long
int) (std::float128_t) 42.0f128
+ || cvt <unsigned long int, std::float128_t> ((unsigned long int) 1 <<
(__CHAR_BIT__ * sizeof (unsigned long int) - 1)) != (unsigned long int) (std::float128_t)
((unsigned long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long int) - 1)))
+ __builtin_abort ();
+ if (cvt <signed long long int, std::float128_t> (42.0f128) != (signed long
long int) (std::float128_t) 42.0f128
+ || cvt <signed long long int, std::float128_t> (-42.0f128) != (signed
long long int) (std::float128_t) -42.0f128
+ || cvt <signed long long int, std::float128_t> ((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2)) != (signed long long int) (std::float128_t)
((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))
+ || cvt <signed long long int, std::float128_t> (-((signed long long int) 1 <<
(__CHAR_BIT__ * sizeof (signed long long int) - 2))) != (signed long long int) (std::float128_t)
(-((signed long long int) 1 << (__CHAR_BIT__ * sizeof (signed long long int) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned long long int, std::float128_t> (42.0f128) != (unsigned
long long int) (std::float128_t) 42.0f128
+ || cvt <unsigned long long int, std::float128_t> ((unsigned long long int) 1
<< (__CHAR_BIT__ * sizeof (unsigned long long int) - 1)) != (unsigned long long int)
(std::float128_t) ((unsigned long long int) 1 << (__CHAR_BIT__ * sizeof (unsigned long long
int) - 1)))
+ __builtin_abort ();
+#ifdef __SIZEOF_INT128__
+ if (cvt <signed __int128, std::float128_t> (42.0f128) != (signed __int128)
(std::float128_t) 42.0f128
+ || cvt <signed __int128, std::float128_t> (-42.0f128) != (signed
__int128) (std::float128_t) -42.0f128
+ || cvt <signed __int128, std::float128_t> ((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2)) != (signed __int128) (std::float128_t) ((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))
+ || cvt <signed __int128, std::float128_t> (-((signed __int128) 1 <<
(__CHAR_BIT__ * sizeof (signed __int128) - 2))) != (signed __int128) (std::float128_t) (-((signed
__int128) 1 << (__CHAR_BIT__ * sizeof (signed __int128) - 2))))
+ __builtin_abort ();
+ if (cvt <unsigned __int128, std::float128_t> (42.0f128) != (unsigned
__int128) (std::float128_t) 42.0f128
+ || cvt <unsigned __int128, std::float128_t> ((unsigned __int128) 1 <<
(__CHAR_BIT__ * sizeof (unsigned __int128) - 1)) != (unsigned __int128) (std::float128_t)
((unsigned __int128) 1 << (__CHAR_BIT__ * sizeof (unsigned __int128) - 1)))
+ __builtin_abort ();
+#endif
+#endif
+#endif
+#endif
+}
Jakub