GNU bug report logs - #68871
Can't use od to print half-precision floats

Previous Next

Package: coreutils;

Reported by: "Rozenberg, Eyal (Consultant)" <Eyal.Rozenberg <at> gehealthcare.com>

Date: Thu, 1 Feb 2024 14:28:02 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


Message #28 received at 68871-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>,
 "Rozenberg, Eyal (Consultant)" <Eyal.Rozenberg <at> gehealthcare.com>,
 68871-done <at> debbugs.gnu.org
Subject: Re: bug#68871: Can't use od to print half-precision floats
Date: Sun, 4 Feb 2024 15:00:19 +0000
[Message part 1 (text/plain, inline)]
On 02/02/2024 01:47, Paul Eggert wrote:
> On 2/1/24 13:59, Pádraig Brady wrote:
>>
>> bfloat16 looks like a truncated single precision IEEE,
>> so we should be able to just pad the extra 16 bits with zeros
>> when converting to single precision internally for processing.
> 
> Sounds good. This would mean od could work even the platform doesn't
> support bfloat16_t, since od.c could fall back on the above code (though
> I suppose it could be endianness-dependent).

I see that __bf16 is supported by released versions of gcc and clang,
so rather than add conversion complexity to the core od print loop,
the attached relies on compiler support for _Float16 and __bf16 types,
which compilers will expand to more targets going forward.

I tested the attached on:

gcc 13, clang 17 x86 (Both types supported)
gcc 7 aarch64 (Only -fH supported)
gcc 13 ppc(be) (Neither supported (both will be with GCC 14))

I'll commit this later.
Marking this bug as done.

thanks,
Pádraig
[od-half-float.patch (text/x-patch, attachment)]

This bug report was last modified 1 year and 162 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.