On Wed, 13 Oct 2021, HAO CHEN GUI via Gcc-patches wrote: > As to IEEE behavior, do you mean "Minimum and maximum operations" defined in > IEEE-754 2019? If so, I think VSX/altivec min/max instructions don't conform > with it. It demands a quite NaN if either operand is a NaN while our > instructions don't. > > IEEE-754 2019 maximum(x, y) is xif x>y, yif y>x, and a quiet NaN if either > operand is a NaN, according to 6.2. For this operation, +0 compares greater > than −0. Otherwise (i.e., when x=y and signs are the same) it is either xor > y. Actions for xvmaxdp
We don't have any built-in functions (or I think other internal operations) for the IEEE 754-2019 operations (C2X function names fmaximum, fminimum, fmaximum_num, fminimum_num, plus per-type suffixes) either, though as I noted when adding those functions to glibc, having such built-in functions would make sense (specifically, so that RISC-V can expand calls to fmaximum_num and fminimum_num inline when building for F or D extension version 2.2 and later). The built-in functions we have for fmax and fmin correspond to the IEEE 754-2008 operations (as implemented by the AArch64 fmaxnm / fminnm instructions, for example). -- Joseph S. Myers jos...@codesourcery.com