diff mbox series

[10/10] softfloat: Return bool from all classification predicates

Message ID 20200515190153.6017-11-richard.henderson@linaro.org
State Superseded
Headers show
Series softfloat: misc cleanups | expand

Commit Message

Richard Henderson May 15, 2020, 7:01 p.m. UTC
This includes *_is_any_nan, *_is_neg, *_is_inf, etc.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 include/fpu/softfloat.h        | 66 +++++++++++++++++-----------------
 fpu/softfloat-specialize.inc.c | 16 ++++-----
 2 files changed, 41 insertions(+), 41 deletions(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé May 16, 2020, 5:33 a.m. UTC | #1
On 5/15/20 9:01 PM, Richard Henderson wrote:
> This includes *_is_any_nan, *_is_neg, *_is_inf, etc.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>   include/fpu/softfloat.h        | 66 +++++++++++++++++-----------------

>   fpu/softfloat-specialize.inc.c | 16 ++++-----

>   2 files changed, 41 insertions(+), 41 deletions(-)

[...]

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Alex Bennée May 19, 2020, 10:10 a.m. UTC | #2
Richard Henderson <richard.henderson@linaro.org> writes:

> This includes *_is_any_nan, *_is_neg, *_is_inf, etc.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


As an aside do you think we'll see any benefit from rolling up the
classifications with the decomposed versions? I would hope the compiler
could drop the stuff it doesn't need but I guess we loose the ability to
inline in the target helpers?

> ---

>  include/fpu/softfloat.h        | 66 +++++++++++++++++-----------------

>  fpu/softfloat-specialize.inc.c | 16 ++++-----

>  2 files changed, 41 insertions(+), 41 deletions(-)

>

> diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h

> index 37217d9b9b..16ca697a73 100644

> --- a/include/fpu/softfloat.h

> +++ b/include/fpu/softfloat.h

> @@ -235,31 +235,31 @@ float16 float16_sqrt(float16, float_status *status);

>  FloatRelation float16_compare(float16, float16, float_status *status);

>  FloatRelation float16_compare_quiet(float16, float16, float_status *status);

>  

> -int float16_is_quiet_nan(float16, float_status *status);

> -int float16_is_signaling_nan(float16, float_status *status);

> +bool float16_is_quiet_nan(float16, float_status *status);

> +bool float16_is_signaling_nan(float16, float_status *status);

>  float16 float16_silence_nan(float16, float_status *status);

>  

> -static inline int float16_is_any_nan(float16 a)

> +static inline bool float16_is_any_nan(float16 a)

>  {

>      return ((float16_val(a) & ~0x8000) > 0x7c00);

>  }

>  

> -static inline int float16_is_neg(float16 a)

> +static inline bool float16_is_neg(float16 a)

>  {

>      return float16_val(a) >> 15;

>  }

>  

> -static inline int float16_is_infinity(float16 a)

> +static inline bool float16_is_infinity(float16 a)

>  {

>      return (float16_val(a) & 0x7fff) == 0x7c00;

>  }

>  

> -static inline int float16_is_zero(float16 a)

> +static inline bool float16_is_zero(float16 a)

>  {

>      return (float16_val(a) & 0x7fff) == 0;

>  }

>  

> -static inline int float16_is_zero_or_denormal(float16 a)

> +static inline bool float16_is_zero_or_denormal(float16 a)

>  {

>      return (float16_val(a) & 0x7c00) == 0;

>  }

> @@ -351,8 +351,8 @@ float32 float32_minnum(float32, float32, float_status *status);

>  float32 float32_maxnum(float32, float32, float_status *status);

>  float32 float32_minnummag(float32, float32, float_status *status);

>  float32 float32_maxnummag(float32, float32, float_status *status);

> -int float32_is_quiet_nan(float32, float_status *status);

> -int float32_is_signaling_nan(float32, float_status *status);

> +bool float32_is_quiet_nan(float32, float_status *status);

> +bool float32_is_signaling_nan(float32, float_status *status);

>  float32 float32_silence_nan(float32, float_status *status);

>  float32 float32_scalbn(float32, int, float_status *status);

>  

> @@ -372,27 +372,27 @@ static inline float32 float32_chs(float32 a)

>      return make_float32(float32_val(a) ^ 0x80000000);

>  }

>  

> -static inline int float32_is_infinity(float32 a)

> +static inline bool float32_is_infinity(float32 a)

>  {

>      return (float32_val(a) & 0x7fffffff) == 0x7f800000;

>  }

>  

> -static inline int float32_is_neg(float32 a)

> +static inline bool float32_is_neg(float32 a)

>  {

>      return float32_val(a) >> 31;

>  }

>  

> -static inline int float32_is_zero(float32 a)

> +static inline bool float32_is_zero(float32 a)

>  {

>      return (float32_val(a) & 0x7fffffff) == 0;

>  }

>  

> -static inline int float32_is_any_nan(float32 a)

> +static inline bool float32_is_any_nan(float32 a)

>  {

>      return ((float32_val(a) & ~(1 << 31)) > 0x7f800000UL);

>  }

>  

> -static inline int float32_is_zero_or_denormal(float32 a)

> +static inline bool float32_is_zero_or_denormal(float32 a)

>  {

>      return (float32_val(a) & 0x7f800000) == 0;

>  }

> @@ -540,8 +540,8 @@ float64 float64_minnum(float64, float64, float_status *status);

>  float64 float64_maxnum(float64, float64, float_status *status);

>  float64 float64_minnummag(float64, float64, float_status *status);

>  float64 float64_maxnummag(float64, float64, float_status *status);

> -int float64_is_quiet_nan(float64 a, float_status *status);

> -int float64_is_signaling_nan(float64, float_status *status);

> +bool float64_is_quiet_nan(float64 a, float_status *status);

> +bool float64_is_signaling_nan(float64, float_status *status);

>  float64 float64_silence_nan(float64, float_status *status);

>  float64 float64_scalbn(float64, int, float_status *status);

>  

> @@ -561,27 +561,27 @@ static inline float64 float64_chs(float64 a)

>      return make_float64(float64_val(a) ^ 0x8000000000000000LL);

>  }

>  

> -static inline int float64_is_infinity(float64 a)

> +static inline bool float64_is_infinity(float64 a)

>  {

>      return (float64_val(a) & 0x7fffffffffffffffLL ) == 0x7ff0000000000000LL;

>  }

>  

> -static inline int float64_is_neg(float64 a)

> +static inline bool float64_is_neg(float64 a)

>  {

>      return float64_val(a) >> 63;

>  }

>  

> -static inline int float64_is_zero(float64 a)

> +static inline bool float64_is_zero(float64 a)

>  {

>      return (float64_val(a) & 0x7fffffffffffffffLL) == 0;

>  }

>  

> -static inline int float64_is_any_nan(float64 a)

> +static inline bool float64_is_any_nan(float64 a)

>  {

>      return ((float64_val(a) & ~(1ULL << 63)) > 0x7ff0000000000000ULL);

>  }

>  

> -static inline int float64_is_zero_or_denormal(float64 a)

> +static inline bool float64_is_zero_or_denormal(float64 a)

>  {

>      return (float64_val(a) & 0x7ff0000000000000LL) == 0;

>  }

> @@ -708,7 +708,7 @@ static inline floatx80 floatx80_chs(floatx80 a)

>      return a;

>  }

>  

> -static inline int floatx80_is_infinity(floatx80 a)

> +static inline bool floatx80_is_infinity(floatx80 a)

>  {

>  #if defined(TARGET_M68K)

>      return (a.high & 0x7fff) == floatx80_infinity.high && !(a.low << 1);

> @@ -718,22 +718,22 @@ static inline int floatx80_is_infinity(floatx80 a)

>  #endif

>  }

>  

> -static inline int floatx80_is_neg(floatx80 a)

> +static inline bool floatx80_is_neg(floatx80 a)

>  {

>      return a.high >> 15;

>  }

>  

> -static inline int floatx80_is_zero(floatx80 a)

> +static inline bool floatx80_is_zero(floatx80 a)

>  {

>      return (a.high & 0x7fff) == 0 && a.low == 0;

>  }

>  

> -static inline int floatx80_is_zero_or_denormal(floatx80 a)

> +static inline bool floatx80_is_zero_or_denormal(floatx80 a)

>  {

>      return (a.high & 0x7fff) == 0;

>  }

>  

> -static inline int floatx80_is_any_nan(floatx80 a)

> +static inline bool floatx80_is_any_nan(floatx80 a)

>  {

>      return ((a.high & 0x7fff) == 0x7fff) && (a.low<<1);

>  }

> @@ -936,8 +936,8 @@ float128 float128_rem(float128, float128, float_status *status);

>  float128 float128_sqrt(float128, float_status *status);

>  FloatRelation float128_compare(float128, float128, float_status *status);

>  FloatRelation float128_compare_quiet(float128, float128, float_status *status);

> -int float128_is_quiet_nan(float128, float_status *status);

> -int float128_is_signaling_nan(float128, float_status *status);

> +bool float128_is_quiet_nan(float128, float_status *status);

> +bool float128_is_signaling_nan(float128, float_status *status);

>  float128 float128_silence_nan(float128, float_status *status);

>  float128 float128_scalbn(float128, int, float_status *status);

>  

> @@ -953,22 +953,22 @@ static inline float128 float128_chs(float128 a)

>      return a;

>  }

>  

> -static inline int float128_is_infinity(float128 a)

> +static inline bool float128_is_infinity(float128 a)

>  {

>      return (a.high & 0x7fffffffffffffffLL) == 0x7fff000000000000LL && a.low == 0;

>  }

>  

> -static inline int float128_is_neg(float128 a)

> +static inline bool float128_is_neg(float128 a)

>  {

>      return a.high >> 63;

>  }

>  

> -static inline int float128_is_zero(float128 a)

> +static inline bool float128_is_zero(float128 a)

>  {

>      return (a.high & 0x7fffffffffffffffLL) == 0 && a.low == 0;

>  }

>  

> -static inline int float128_is_zero_or_denormal(float128 a)

> +static inline bool float128_is_zero_or_denormal(float128 a)

>  {

>      return (a.high & 0x7fff000000000000LL) == 0;

>  }

> @@ -983,7 +983,7 @@ static inline bool float128_is_denormal(float128 a)

>      return float128_is_zero_or_denormal(a) && !float128_is_zero(a);

>  }

>  

> -static inline int float128_is_any_nan(float128 a)

> +static inline bool float128_is_any_nan(float128 a)

>  {

>      return ((a.high >> 48) & 0x7fff) == 0x7fff &&

>          ((a.low != 0) || ((a.high & 0xffffffffffffLL) != 0));

> diff --git a/fpu/softfloat-specialize.inc.c b/fpu/softfloat-specialize.inc.c

> index 025ee4f991..44f5b661f8 100644

> --- a/fpu/softfloat-specialize.inc.c

> +++ b/fpu/softfloat-specialize.inc.c

> @@ -245,7 +245,7 @@ typedef struct {

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float16_is_quiet_nan(float16 a_, float_status *status)

> +bool float16_is_quiet_nan(float16 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return float16_is_any_nan(a_);

> @@ -264,7 +264,7 @@ int float16_is_quiet_nan(float16 a_, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float16_is_signaling_nan(float16 a_, float_status *status)

> +bool float16_is_signaling_nan(float16 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return 0;

> @@ -283,7 +283,7 @@ int float16_is_signaling_nan(float16 a_, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float32_is_quiet_nan(float32 a_, float_status *status)

> +bool float32_is_quiet_nan(float32 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return float32_is_any_nan(a_);

> @@ -302,7 +302,7 @@ int float32_is_quiet_nan(float32 a_, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float32_is_signaling_nan(float32 a_, float_status *status)

> +bool float32_is_signaling_nan(float32 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return 0;

> @@ -637,7 +637,7 @@ static float32 propagateFloat32NaN(float32 a, float32 b, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float64_is_quiet_nan(float64 a_, float_status *status)

> +bool float64_is_quiet_nan(float64 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return float64_is_any_nan(a_);

> @@ -657,7 +657,7 @@ int float64_is_quiet_nan(float64 a_, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float64_is_signaling_nan(float64 a_, float_status *status)

> +bool float64_is_signaling_nan(float64 a_, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return 0;

> @@ -939,7 +939,7 @@ floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b, float_status *status)

>  | NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float128_is_quiet_nan(float128 a, float_status *status)

> +bool float128_is_quiet_nan(float128 a, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return float128_is_any_nan(a);

> @@ -959,7 +959,7 @@ int float128_is_quiet_nan(float128 a, float_status *status)

>  | signaling NaN; otherwise returns 0.

>  *----------------------------------------------------------------------------*/

>  

> -int float128_is_signaling_nan(float128 a, float_status *status)

> +bool float128_is_signaling_nan(float128 a, float_status *status)

>  {

>  #ifdef NO_SIGNALING_NANS

>      return 0;



-- 
Alex Bennée
Richard Henderson May 19, 2020, 3:47 p.m. UTC | #3
On 5/19/20 3:10 AM, Alex Bennée wrote:
> 

> Richard Henderson <richard.henderson@linaro.org> writes:

> 

>> This includes *_is_any_nan, *_is_neg, *_is_inf, etc.

>>

>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> 

> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> 

> As an aside do you think we'll see any benefit from rolling up the

> classifications with the decomposed versions? I would hope the compiler

> could drop the stuff it doesn't need but I guess we loose the ability to

> inline in the target helpers?


I think these classification macros are simple enough that we'd lose if we
tried to merge it with the decompose stuff.


r~
diff mbox series

Patch

diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h
index 37217d9b9b..16ca697a73 100644
--- a/include/fpu/softfloat.h
+++ b/include/fpu/softfloat.h
@@ -235,31 +235,31 @@  float16 float16_sqrt(float16, float_status *status);
 FloatRelation float16_compare(float16, float16, float_status *status);
 FloatRelation float16_compare_quiet(float16, float16, float_status *status);
 
-int float16_is_quiet_nan(float16, float_status *status);
-int float16_is_signaling_nan(float16, float_status *status);
+bool float16_is_quiet_nan(float16, float_status *status);
+bool float16_is_signaling_nan(float16, float_status *status);
 float16 float16_silence_nan(float16, float_status *status);
 
-static inline int float16_is_any_nan(float16 a)
+static inline bool float16_is_any_nan(float16 a)
 {
     return ((float16_val(a) & ~0x8000) > 0x7c00);
 }
 
-static inline int float16_is_neg(float16 a)
+static inline bool float16_is_neg(float16 a)
 {
     return float16_val(a) >> 15;
 }
 
-static inline int float16_is_infinity(float16 a)
+static inline bool float16_is_infinity(float16 a)
 {
     return (float16_val(a) & 0x7fff) == 0x7c00;
 }
 
-static inline int float16_is_zero(float16 a)
+static inline bool float16_is_zero(float16 a)
 {
     return (float16_val(a) & 0x7fff) == 0;
 }
 
-static inline int float16_is_zero_or_denormal(float16 a)
+static inline bool float16_is_zero_or_denormal(float16 a)
 {
     return (float16_val(a) & 0x7c00) == 0;
 }
@@ -351,8 +351,8 @@  float32 float32_minnum(float32, float32, float_status *status);
 float32 float32_maxnum(float32, float32, float_status *status);
 float32 float32_minnummag(float32, float32, float_status *status);
 float32 float32_maxnummag(float32, float32, float_status *status);
-int float32_is_quiet_nan(float32, float_status *status);
-int float32_is_signaling_nan(float32, float_status *status);
+bool float32_is_quiet_nan(float32, float_status *status);
+bool float32_is_signaling_nan(float32, float_status *status);
 float32 float32_silence_nan(float32, float_status *status);
 float32 float32_scalbn(float32, int, float_status *status);
 
@@ -372,27 +372,27 @@  static inline float32 float32_chs(float32 a)
     return make_float32(float32_val(a) ^ 0x80000000);
 }
 
-static inline int float32_is_infinity(float32 a)
+static inline bool float32_is_infinity(float32 a)
 {
     return (float32_val(a) & 0x7fffffff) == 0x7f800000;
 }
 
-static inline int float32_is_neg(float32 a)
+static inline bool float32_is_neg(float32 a)
 {
     return float32_val(a) >> 31;
 }
 
-static inline int float32_is_zero(float32 a)
+static inline bool float32_is_zero(float32 a)
 {
     return (float32_val(a) & 0x7fffffff) == 0;
 }
 
-static inline int float32_is_any_nan(float32 a)
+static inline bool float32_is_any_nan(float32 a)
 {
     return ((float32_val(a) & ~(1 << 31)) > 0x7f800000UL);
 }
 
-static inline int float32_is_zero_or_denormal(float32 a)
+static inline bool float32_is_zero_or_denormal(float32 a)
 {
     return (float32_val(a) & 0x7f800000) == 0;
 }
@@ -540,8 +540,8 @@  float64 float64_minnum(float64, float64, float_status *status);
 float64 float64_maxnum(float64, float64, float_status *status);
 float64 float64_minnummag(float64, float64, float_status *status);
 float64 float64_maxnummag(float64, float64, float_status *status);
-int float64_is_quiet_nan(float64 a, float_status *status);
-int float64_is_signaling_nan(float64, float_status *status);
+bool float64_is_quiet_nan(float64 a, float_status *status);
+bool float64_is_signaling_nan(float64, float_status *status);
 float64 float64_silence_nan(float64, float_status *status);
 float64 float64_scalbn(float64, int, float_status *status);
 
@@ -561,27 +561,27 @@  static inline float64 float64_chs(float64 a)
     return make_float64(float64_val(a) ^ 0x8000000000000000LL);
 }
 
-static inline int float64_is_infinity(float64 a)
+static inline bool float64_is_infinity(float64 a)
 {
     return (float64_val(a) & 0x7fffffffffffffffLL ) == 0x7ff0000000000000LL;
 }
 
-static inline int float64_is_neg(float64 a)
+static inline bool float64_is_neg(float64 a)
 {
     return float64_val(a) >> 63;
 }
 
-static inline int float64_is_zero(float64 a)
+static inline bool float64_is_zero(float64 a)
 {
     return (float64_val(a) & 0x7fffffffffffffffLL) == 0;
 }
 
-static inline int float64_is_any_nan(float64 a)
+static inline bool float64_is_any_nan(float64 a)
 {
     return ((float64_val(a) & ~(1ULL << 63)) > 0x7ff0000000000000ULL);
 }
 
-static inline int float64_is_zero_or_denormal(float64 a)
+static inline bool float64_is_zero_or_denormal(float64 a)
 {
     return (float64_val(a) & 0x7ff0000000000000LL) == 0;
 }
@@ -708,7 +708,7 @@  static inline floatx80 floatx80_chs(floatx80 a)
     return a;
 }
 
-static inline int floatx80_is_infinity(floatx80 a)
+static inline bool floatx80_is_infinity(floatx80 a)
 {
 #if defined(TARGET_M68K)
     return (a.high & 0x7fff) == floatx80_infinity.high && !(a.low << 1);
@@ -718,22 +718,22 @@  static inline int floatx80_is_infinity(floatx80 a)
 #endif
 }
 
-static inline int floatx80_is_neg(floatx80 a)
+static inline bool floatx80_is_neg(floatx80 a)
 {
     return a.high >> 15;
 }
 
-static inline int floatx80_is_zero(floatx80 a)
+static inline bool floatx80_is_zero(floatx80 a)
 {
     return (a.high & 0x7fff) == 0 && a.low == 0;
 }
 
-static inline int floatx80_is_zero_or_denormal(floatx80 a)
+static inline bool floatx80_is_zero_or_denormal(floatx80 a)
 {
     return (a.high & 0x7fff) == 0;
 }
 
-static inline int floatx80_is_any_nan(floatx80 a)
+static inline bool floatx80_is_any_nan(floatx80 a)
 {
     return ((a.high & 0x7fff) == 0x7fff) && (a.low<<1);
 }
@@ -936,8 +936,8 @@  float128 float128_rem(float128, float128, float_status *status);
 float128 float128_sqrt(float128, float_status *status);
 FloatRelation float128_compare(float128, float128, float_status *status);
 FloatRelation float128_compare_quiet(float128, float128, float_status *status);
-int float128_is_quiet_nan(float128, float_status *status);
-int float128_is_signaling_nan(float128, float_status *status);
+bool float128_is_quiet_nan(float128, float_status *status);
+bool float128_is_signaling_nan(float128, float_status *status);
 float128 float128_silence_nan(float128, float_status *status);
 float128 float128_scalbn(float128, int, float_status *status);
 
@@ -953,22 +953,22 @@  static inline float128 float128_chs(float128 a)
     return a;
 }
 
-static inline int float128_is_infinity(float128 a)
+static inline bool float128_is_infinity(float128 a)
 {
     return (a.high & 0x7fffffffffffffffLL) == 0x7fff000000000000LL && a.low == 0;
 }
 
-static inline int float128_is_neg(float128 a)
+static inline bool float128_is_neg(float128 a)
 {
     return a.high >> 63;
 }
 
-static inline int float128_is_zero(float128 a)
+static inline bool float128_is_zero(float128 a)
 {
     return (a.high & 0x7fffffffffffffffLL) == 0 && a.low == 0;
 }
 
-static inline int float128_is_zero_or_denormal(float128 a)
+static inline bool float128_is_zero_or_denormal(float128 a)
 {
     return (a.high & 0x7fff000000000000LL) == 0;
 }
@@ -983,7 +983,7 @@  static inline bool float128_is_denormal(float128 a)
     return float128_is_zero_or_denormal(a) && !float128_is_zero(a);
 }
 
-static inline int float128_is_any_nan(float128 a)
+static inline bool float128_is_any_nan(float128 a)
 {
     return ((a.high >> 48) & 0x7fff) == 0x7fff &&
         ((a.low != 0) || ((a.high & 0xffffffffffffLL) != 0));
diff --git a/fpu/softfloat-specialize.inc.c b/fpu/softfloat-specialize.inc.c
index 025ee4f991..44f5b661f8 100644
--- a/fpu/softfloat-specialize.inc.c
+++ b/fpu/softfloat-specialize.inc.c
@@ -245,7 +245,7 @@  typedef struct {
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float16_is_quiet_nan(float16 a_, float_status *status)
+bool float16_is_quiet_nan(float16 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return float16_is_any_nan(a_);
@@ -264,7 +264,7 @@  int float16_is_quiet_nan(float16 a_, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float16_is_signaling_nan(float16 a_, float_status *status)
+bool float16_is_signaling_nan(float16 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return 0;
@@ -283,7 +283,7 @@  int float16_is_signaling_nan(float16 a_, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float32_is_quiet_nan(float32 a_, float_status *status)
+bool float32_is_quiet_nan(float32 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return float32_is_any_nan(a_);
@@ -302,7 +302,7 @@  int float32_is_quiet_nan(float32 a_, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float32_is_signaling_nan(float32 a_, float_status *status)
+bool float32_is_signaling_nan(float32 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return 0;
@@ -637,7 +637,7 @@  static float32 propagateFloat32NaN(float32 a, float32 b, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float64_is_quiet_nan(float64 a_, float_status *status)
+bool float64_is_quiet_nan(float64 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return float64_is_any_nan(a_);
@@ -657,7 +657,7 @@  int float64_is_quiet_nan(float64 a_, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float64_is_signaling_nan(float64 a_, float_status *status)
+bool float64_is_signaling_nan(float64 a_, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return 0;
@@ -939,7 +939,7 @@  floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b, float_status *status)
 | NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float128_is_quiet_nan(float128 a, float_status *status)
+bool float128_is_quiet_nan(float128 a, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return float128_is_any_nan(a);
@@ -959,7 +959,7 @@  int float128_is_quiet_nan(float128 a, float_status *status)
 | signaling NaN; otherwise returns 0.
 *----------------------------------------------------------------------------*/
 
-int float128_is_signaling_nan(float128 a, float_status *status)
+bool float128_is_signaling_nan(float128 a, float_status *status)
 {
 #ifdef NO_SIGNALING_NANS
     return 0;