| |||
| Home > Floating-point support > fplib comparisons between floats and doubles | |||
Table 18 describes routines to perform comparisons between floating-point numbers. See Notes on floating-point comparison routines for more information as indicated in the Notes column.
Table 18. Floating-point comparison routines
| Function | Argument types | Return type | Condition tested | Notes |
|---|---|---|---|---|
_fcmpeq | 2 float | Flags, EQ/NE | x equal to y | a |
_fcmpge | 2 float | Flags, HS/LO | x greater than or equal to y | a, b |
_fcmple | 2 float | Flags, HI/LS | x less than or equal to y | a, b |
_feq | 2 float | Boolean | x equal to y | - |
_fneq | 2 float | Boolean | x not equal to y | - |
_fgeq | 2 float | Boolean | x greater than or equal to y | b |
_fgr | 2 float | Boolean | x greater than y | b |
_fleq | 2 float | Boolean | x less than or equal to y | b |
_fls | 2 float | Boolean | x less than y | b |
_dcmpeq | 2 double | Flags, EQ/NE | x equal to y | a |
_dcmpge | 2 double | Flags, HS/LO | x greater than or equal to y | a, b |
_dcmple | 2 double | Flags, HI/LS | x less than or equal to y | a, b |
_deq | 2 double | Boolean | x equal to y | - |
_dneq | 2 double | Boolean | x not equal to y | - |
_dgeq | 2 double | Boolean | x greater than or equal to y | b |
_dgr | 2 double | Boolean | x greater than y | b |
_dleq | 2 double | Boolean | x less than or equal to y | b |
_dls | 2 double | Boolean | x less than y | b |
_fcmp4 | 2 float | Flags, VFP | x less than or equal to y | c |
_fcmp4e | 2 float | Flags, VFP | x less than or equal to y | b, c |
_fdcmp4 | float, double | Flags, VFP | x less than or equal to y | c |
_fdcmp4e | float, double | Flags, VFP | x less than or equal to y | b, c |
_dcmp4 | 2 double | Flags, VFP | x less than or equal to y | c |
_dcmp4e | 2 double | Flags, VFP | x less than or equal to y | b, c |
_dfcmp4 | double, float | Flags, VFP | x less than or equal to y | c |
_dfcmp4e | double, float | Flags, VFP | x less than or equal to y | b, c |
Causes an Invalid Operation exception if either argument is a NaN, even a quiet NaN. Other functions only cause Invalid Operation if an argument is an SNaN. QNaNs return not equal when compared to anything, including other QNaNs (so comparing a QNaN to the same QNaN still returns not equal).
Returns VFP-type status
flags in the CPSR. Also returns VFP-type status
flags in the top four bits of r0, meaning that
it is possible to use this function from C. This function is declared
in rt_fp.h.