From ad78fc2df577252d46829094fe88da993dd23156 Mon Sep 17 00:00:00 2001 From: LIU Zhiwei Date: Sat, 27 Feb 2021 16:43:05 -0500 Subject: [PATCH] softfloat: Define comparison operations for bfloat16 Backports c53b1079334c41b342a8ad3b7ccfd51bf5427f5 --- qemu/include/fpu/softfloat.h | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/qemu/include/fpu/softfloat.h b/qemu/include/fpu/softfloat.h index 552d102f..a953f791 100644 --- a/qemu/include/fpu/softfloat.h +++ b/qemu/include/fpu/softfloat.h @@ -482,6 +482,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