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~