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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits