patch to fix rtl documentation for new floating point comparisons

Richard Henderson rth@redhat.com
Mon Feb 9 23:26:00 GMT 2015


On 02/09/2015 11:10 AM, Kenneth Zadeck wrote:
> +@table @code
> +@findex ltgt
> +@cindex less than or greater than
> +@item (ltgt:@var{m} @var{x} @var{y})
> +@code{STORE_FLAG_VALUE} if the values represented by @var{x} and
> +@var{y} are less, or greater, otherwise 0.  This is a quiet operation
> +that applies only to floating point operands and does not have a
> +corresponding IEC 60559 operation.

This is intended to match c99 7.12.14.5 islessgreater, which I believe is the
compareQuietNotEqual operation.

> +@table @code
> +@findex uneq
> +@cindex unordered or equal
> +@item (uneq:@var{m} @var{x} @var{y})
> +@code{STORE_FLAG_VALUE} if the values represented by @var{x} and
> +@var{y} are unordered or equal, otherwise 0.  This is a quiet
> +operation that applies only to floating point operands and does not
> +have a corresponding IEC 60559 operation.

This is the strict inverse to LTGT, i.e. !compareQuietNotEqual, and you of
course note this is not the same as compareQuietEqual.

I believe that when the c99 math.h comparison builtins were added, treating
EQ+NE as quiet comparisons was common but not universal.  It's possible this
could be simplified now.


r~



More information about the Gcc-patches mailing list