Joseph Myers via llvm-dev
2021-Jul-01 22:10 UTC
[llvm-dev] [PATCH] Add optional _Float16 support
On Thu, 1 Jul 2021, H.J. Lu via Gcc-patches wrote:> 2. Return _Float16 and _Complex _Float16 values in %xmm0/%xmm1 registers.That restricts use of _Float16 to processors with SSE. Is that what we want in the ABI, or should _Float16 be available with base 32-bit x86 architecture features only, much like _Float128 and the decimal FP types are? (If it is restricted to SSE, we can of course ensure relevant libgcc functions are built with SSE enabled, and likewise in glibc if that gains _Float16 functions, though maybe with some extra complications to get relevant testcases to run whenever possible.) -- Joseph S. Myers joseph at codesourcery.com
H.J. Lu via llvm-dev
2021-Jul-01 22:27 UTC
[llvm-dev] [PATCH] Add optional _Float16 support
On Thu, Jul 1, 2021 at 3:10 PM Joseph Myers <joseph at codesourcery.com> wrote:> > On Thu, 1 Jul 2021, H.J. Lu via Gcc-patches wrote: > > > 2. Return _Float16 and _Complex _Float16 values in %xmm0/%xmm1 registers. > > That restricts use of _Float16 to processors with SSE. Is that what we > want in the ABI, or should _Float16 be available with base 32-bit x86 > architecture features only, much like _Float128 and the decimal FP typesYes, _Float16 requires XMM registers.> are? (If it is restricted to SSE, we can of course ensure relevant libgcc > functions are built with SSE enabled, and likewise in glibc if that gains > _Float16 functions, though maybe with some extra complications to get > relevant testcases to run whenever possible.) >_Float16 functions in libgcc should be compiled with SSE enabled. BTW, _Float16 software emulation may require more than just SSE since we need to do _Float16 load and store with XMM registers. There is no 16bit load/store for XMM registers without AVX512FP16. -- H.J.