https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109371
Hongtao.liu <crazylht at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |crazylht at gmail dot com --- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- NOTE for ieee-2019, there're extra 8 new floating point min/max functions -----cut from ieee 2019 9.6 Minimum and maximum operations-- SourceFormat minimum(source, source) sourceFormat minimumNumber(source, source) sourceFormat maximum(source, source) sourceFormat maximumNumber(source, source) minimum(x, y) is x if x <y, y if y< x, and a quiet NaN if either operand is a NaN, according to 6.2. For this operation, −0 compares less than +0. Otherwise (i.e., when x= y and signs are the same) it is either x or y. minimumNumber(x, y) is x if x< y, y if y< x, and the number if one operand is a number and the other is a NaN. For this operation, −0 compares less than +0. If x= y and signs are the same it is either x or y. If both operands are NaNs, a quiet NaN is returned, according to 6.2. If either operand is a signaling NaN, an invalid operation exception is signaled, but unless both operands are NaNs, the signaling NaN is otherwise ignored and not converted to a quiet NaN as stated in 6.2 for other operations. maximum(x, y) is x if x> y, y if 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 x or y. maximumNumber(x, y) is x if x >y, y if y >x, and the number if one operand is a number and the other is a NaN. For this operation, +0 compares greater than −0. If x =y and signs are the same it is either x or y. If both operands are NaNs, a quiet NaN is returned, according to 6.2. If either operand is a signaling NaN, an invalid operation exception is signaled, but unless both operands are NaNs, the signaling NaN is otherwise ignored and not converted to a quiet NaN as stated in 6.2 for other operations. 69 Copyright © 2019 IEEE. All rights reserved. Authorized licensed use limited to: Intel Corporation via the Virtual Library. Downloaded on January 04,2023 at 06:43:47 UTC from IEEE Xplore. Restrictions apply.IEEE Std 754-2019 IEEE Standard for Floating-Point Arithmetic ― sourceFormat minimumMagnitude(source, source) sourceFormat minimumMagnitudeNumber(source, source) sourceFormat maximumMagnitude(source, source) sourceFormat maximumMagnitudeNumber(source, source) minimumMagnitude(x, y) is x if |x|< |y|, y if |y|< |x|, otherwise minimum(x, y). minimumMagnitudeNumber(x, y) is x if |x|< |y|, y if |y|< |x|, otherwise minimumNumber(x, y). maximumMagnitude(x, y) is x if |x|> |y|, y if |y|> |x|, otherwise maximum(x, y). maximumMagnitudeNumber(x,y) is x if | x| >| y|, y if | y| >| x|, otherwise maximumNumber(x, y). The preferred exponent is Q(x) if x is the result, Q(y) if y is the result. NOTE—The quantum of the result might differ among implementations when x and y are different representations of the same cohort in decimal floating-point numbers. ----------cut ends---------------------- Should we also support new IRs for them, libc has supported all of them. https://sourceware.org/pipermail/libc-alpha/2021-September/131511.html