[PATCH] D113107: Support of expression granularity for _Float16.

Zahira Ammarguellat via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 17 09:10:03 PST 2021


zahiraam added a comment.

In D113107#3136464 <https://reviews.llvm.org/D113107#3136464>, @rjmccall wrote:

> Does GCC actually change the formal types of expressions to `float`, or is it doing this "no intermediate casts thing" as some sort of fp_contract-style custom emission of trees of expressions that involve `_Float16`?
>
> In any case, doing operation-by-operation emulation seems like the right first approach rather than starting by doing the less conformant thing.

I have created another patch https://reviews.llvm.org/D114099 that does the first step.

Not sure what you mean by "no intermediate cases thing". 
This https://godbolt.org/z/cPfbKq3zx shows what gcc does for a simple expression. It looks like it is using half-precision to calculate the intermediate results since it is using library calls to __extendhfsf2 and  __truncsfhf2?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113107/new/

https://reviews.llvm.org/D113107



More information about the cfe-commits mailing list