| |||

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 |

- a
- b
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*).- c
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`

.