extern __bf16 __trunctfbf2 (_Float128); extern __bf16 __truncxfbf2 (__float80); extern __bf16 __truncdfbf2 (_Float64); extern __bf16 __truncsfbf2 (_Float32); extern __bf16 __trunchfbf2 (_Float16); extern _Float16 __truncbfhf2 (__bf16); extern _Float32 __extendbfsf2 (__bf16); int main () { volatile _Float128 tf; volatile __float80 xf; volatile _Float64 df; volatile _Float32 sf; volatile _Float16 hf; union { _Float32 f; unsigned int i; } u1; union { __bf16 f; unsigned short i; } u2; tf = 2.718281828459045235360287471352662498F128; u1.f = tf; u2.f = __trunctfbf2 (tf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); xf = 2.718281828459045235360287471352662498W; u1.f = xf; u2.f = __truncxfbf2 (xf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); df = 2.718281828459045235360287471352662498F64; u1.f = df; u2.f = __truncdfbf2 (df); __builtin_printf ("%08x %04x\n", u1.i, u2.i); sf = 2.718281828459045235360287471352662498F32; u1.f = sf; u2.f = __truncsfbf2 (sf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); hf = 2.718281828459045235360287471352662498F16; u1.f = hf; u2.f = __trunchfbf2 (hf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); tf = __builtin_inff128 (); u1.f = tf; u2.f = __trunctfbf2 (tf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); xf = -__builtin_infl (); u1.f = xf; u2.f = __truncxfbf2 (xf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); df = __builtin_inff64 (); u1.f = df; u2.f = __truncdfbf2 (df); __builtin_printf ("%08x %04x\n", u1.i, u2.i); sf = -__builtin_inff32 (); u1.f = sf; u2.f = __truncsfbf2 (sf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); hf = __builtin_inff16 (); u1.f = hf; u2.f = __trunchfbf2 (hf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); tf = __builtin_nanf128 (""); u1.f = tf; u2.f = __trunctfbf2 (tf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); xf = __builtin_nanl (""); u1.f = xf; u2.f = __truncxfbf2 (xf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); df = __builtin_nanf64 (""); u1.f = df; u2.f = __truncdfbf2 (df); __builtin_printf ("%08x %04x\n", u1.i, u2.i); sf = __builtin_nanf32 (""); u1.f = sf; u2.f = __truncsfbf2 (sf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); hf = __builtin_nanf16 (""); u1.f = hf; u2.f = __trunchfbf2 (hf); __builtin_printf ("%08x %04x\n", u1.i, u2.i); return 0; }