diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2020-08-16 14:46:58 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2020-08-29 19:25:42 -0700 |
commit | c53b1079334c41b342a8ad3b7ccfd51bf5427f5a (patch) | |
tree | e244cd15971033ca1dd1158138d15752b7d027b0 /include/fpu | |
parent | 5ebf5f4be66c378fd5f3dee85f54dd4942171d57 (diff) | |
download | qemu-c53b1079334c41b342a8ad3b7ccfd51bf5427f5a.zip qemu-c53b1079334c41b342a8ad3b7ccfd51bf5427f5a.tar.gz qemu-c53b1079334c41b342a8ad3b7ccfd51bf5427f5a.tar.bz2 |
softfloat: Define comparison operations for bfloat16
Reviewed-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/fpu')
-rw-r--r-- | include/fpu/softfloat.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index 1233f98..78ad5ca 100644 --- a/include/fpu/softfloat.h +++ b/include/fpu/softfloat.h @@ -479,6 +479,47 @@ static inline bfloat16 bfloat16_set_sign(bfloat16 a, int sign) return (a & 0x7fff) | (sign << 15); } +static inline bool bfloat16_eq(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare(a, b, s) == float_relation_equal; +} + +static inline bool bfloat16_le(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare(a, b, s) <= float_relation_equal; +} + +static inline bool bfloat16_lt(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare(a, b, s) < float_relation_equal; +} + +static inline bool bfloat16_unordered(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare(a, b, s) == float_relation_unordered; +} + +static inline bool bfloat16_eq_quiet(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare_quiet(a, b, s) == float_relation_equal; +} + +static inline bool bfloat16_le_quiet(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare_quiet(a, b, s) <= float_relation_equal; +} + +static inline bool bfloat16_lt_quiet(bfloat16 a, bfloat16 b, float_status *s) +{ + return bfloat16_compare_quiet(a, b, s) < float_relation_equal; +} + +static inline bool bfloat16_unordered_quiet(bfloat16 a, bfloat16 b, + float_status *s) +{ + return bfloat16_compare_quiet(a, b, s) == float_relation_unordered; +} + #define bfloat16_zero 0 #define bfloat16_half 0x3f00 #define bfloat16_one 0x3f80 |