Lines Matching refs:a

130     static inline void name(soft_t *a, float_status *s)                 \
132 if (unlikely(soft_t ## _is_denormal(*a))) { \
133 *a = soft_t ## _set_sign(soft_t ## _zero, \
134 soft_t ## _is_neg(*a)); \
144 static inline void name(soft_t *a, float_status *s) \ in GEN_INPUT_FLUSH__NOCHECK()
149 soft_t ## _input_flush__nocheck(a, s); \ in GEN_INPUT_FLUSH__NOCHECK()
157 static inline void name(soft_t *a, soft_t *b, float_status *s) \
162 soft_t ## _input_flush__nocheck(a, s); \
171 static inline void name(soft_t *a, soft_t *b, soft_t *c, float_status *s) \
176 soft_t ## _input_flush__nocheck(a, s); \
266 typedef bool (*f32_check_fn)(union_float32 a, union_float32 b);
267 typedef bool (*f64_check_fn)(union_float64 a, union_float64 b);
269 typedef float32 (*soft_f32_op2_fn)(float32 a, float32 b, float_status *s);
270 typedef float64 (*soft_f64_op2_fn)(float64 a, float64 b, float_status *s);
271 typedef float (*hard_f32_op2_fn)(float a, float b);
272 typedef double (*hard_f64_op2_fn)(double a, double b);
275 static inline bool f32_is_zon2(union_float32 a, union_float32 b) in f32_is_zon2() argument
282 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f32_is_zon2()
285 return float32_is_zero_or_normal(a.s) && in f32_is_zon2()
289 static inline bool f64_is_zon2(union_float64 a, union_float64 b) in f64_is_zon2() argument
292 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f64_is_zon2()
295 return float64_is_zero_or_normal(a.s) && in f64_is_zon2()
301 bool f32_is_zon3(union_float32 a, union_float32 b, union_float32 c) in f32_is_zon3() argument
304 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f32_is_zon3()
308 return float32_is_zero_or_normal(a.s) && in f32_is_zon3()
314 bool f64_is_zon3(union_float64 a, union_float64 b, union_float64 c) in f64_is_zon3() argument
317 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f64_is_zon3()
321 return float64_is_zero_or_normal(a.s) && in f64_is_zon3()
326 static inline bool f32_is_inf(union_float32 a) in f32_is_inf() argument
329 return isinf(a.h); in f32_is_inf()
331 return float32_is_infinity(a.s); in f32_is_inf()
334 static inline bool f64_is_inf(union_float64 a) in f64_is_inf() argument
337 return isinf(a.h); in f64_is_inf()
339 return float64_is_infinity(a.s); in f64_is_inf()
714 static void parts64_return_nan(FloatParts64 *a, float_status *s);
715 static void parts128_return_nan(FloatParts128 *a, float_status *s);
719 static FloatParts64 *parts64_pick_nan(FloatParts64 *a, FloatParts64 *b,
721 static FloatParts128 *parts128_pick_nan(FloatParts128 *a, FloatParts128 *b,
726 static FloatParts64 *parts64_pick_nan_muladd(FloatParts64 *a, FloatParts64 *b,
729 static FloatParts128 *parts128_pick_nan_muladd(FloatParts128 *a,
762 static void parts64_add_normal(FloatParts64 *a, FloatParts64 *b);
763 static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b);
764 static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b);
769 static bool parts64_sub_normal(FloatParts64 *a, FloatParts64 *b);
770 static bool parts128_sub_normal(FloatParts128 *a, FloatParts128 *b);
771 static bool parts256_sub_normal(FloatParts256 *a, FloatParts256 *b);
776 static FloatParts64 *parts64_addsub(FloatParts64 *a, FloatParts64 *b,
778 static FloatParts128 *parts128_addsub(FloatParts128 *a, FloatParts128 *b,
784 static FloatParts64 *parts64_mul(FloatParts64 *a, FloatParts64 *b,
786 static FloatParts128 *parts128_mul(FloatParts128 *a, FloatParts128 *b,
792 static FloatParts64 *parts64_muladd(FloatParts64 *a, FloatParts64 *b,
795 static FloatParts128 *parts128_muladd(FloatParts128 *a, FloatParts128 *b,
802 static FloatParts64 *parts64_div(FloatParts64 *a, FloatParts64 *b,
804 static FloatParts128 *parts128_div(FloatParts128 *a, FloatParts128 *b,
810 static FloatParts64 *parts64_modrem(FloatParts64 *a, FloatParts64 *b,
812 static FloatParts128 *parts128_modrem(FloatParts128 *a, FloatParts128 *b,
818 static void parts64_sqrt(FloatParts64 *a, float_status *s, const FloatFmt *f);
819 static void parts128_sqrt(FloatParts128 *a, float_status *s, const FloatFmt *f);
824 static bool parts64_round_to_int_normal(FloatParts64 *a, FloatRoundMode rm,
826 static bool parts128_round_to_int_normal(FloatParts128 *a, FloatRoundMode r,
832 static void parts64_round_to_int(FloatParts64 *a, FloatRoundMode rm,
835 static void parts128_round_to_int(FloatParts128 *a, FloatRoundMode r,
872 static void parts64_sint_to_float(FloatParts64 *p, int64_t a,
874 static void parts128_sint_to_float(FloatParts128 *p, int64_t a,
883 static void parts64_uint_to_float(FloatParts64 *p, uint64_t a,
885 static void parts128_uint_to_float(FloatParts128 *p, uint64_t a,
891 static FloatParts64 *parts64_minmax(FloatParts64 *a, FloatParts64 *b,
893 static FloatParts128 *parts128_minmax(FloatParts128 *a, FloatParts128 *b,
899 static FloatRelation parts64_compare(FloatParts64 *a, FloatParts64 *b,
901 static FloatRelation parts128_compare(FloatParts128 *a, FloatParts128 *b,
907 static void parts64_scalbn(FloatParts64 *a, int n, float_status *s);
908 static void parts128_scalbn(FloatParts128 *a, int n, float_status *s);
913 static void parts64_log2(FloatParts64 *a, float_status *s, const FloatFmt *f);
914 static void parts128_log2(FloatParts128 *a, float_status *s, const FloatFmt *f);
932 static bool frac64_add(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) in frac64_add() argument
934 return uadd64_overflow(a->frac, b->frac, &r->frac); in frac64_add()
937 static bool frac128_add(FloatParts128 *r, FloatParts128 *a, FloatParts128 *b) in frac128_add() argument
940 r->frac_lo = uadd64_carry(a->frac_lo, b->frac_lo, &c); in frac128_add()
941 r->frac_hi = uadd64_carry(a->frac_hi, b->frac_hi, &c); in frac128_add()
945 static bool frac256_add(FloatParts256 *r, FloatParts256 *a, FloatParts256 *b) in frac256_add() argument
948 r->frac_lo = uadd64_carry(a->frac_lo, b->frac_lo, &c); in frac256_add()
949 r->frac_lm = uadd64_carry(a->frac_lm, b->frac_lm, &c); in frac256_add()
950 r->frac_hm = uadd64_carry(a->frac_hm, b->frac_hm, &c); in frac256_add()
951 r->frac_hi = uadd64_carry(a->frac_hi, b->frac_hi, &c); in frac256_add()
957 static bool frac64_addi(FloatParts64 *r, FloatParts64 *a, uint64_t c) in frac64_addi() argument
959 return uadd64_overflow(a->frac, c, &r->frac); in frac64_addi()
962 static bool frac128_addi(FloatParts128 *r, FloatParts128 *a, uint64_t c) in frac128_addi() argument
964 c = uadd64_overflow(a->frac_lo, c, &r->frac_lo); in frac128_addi()
965 return uadd64_overflow(a->frac_hi, c, &r->frac_hi); in frac128_addi()
970 static void frac64_allones(FloatParts64 *a) in frac64_allones() argument
972 a->frac = -1; in frac64_allones()
975 static void frac128_allones(FloatParts128 *a) in frac128_allones() argument
977 a->frac_hi = a->frac_lo = -1; in frac128_allones()
982 static FloatRelation frac64_cmp(FloatParts64 *a, FloatParts64 *b) in frac64_cmp() argument
984 return (a->frac == b->frac ? float_relation_equal in frac64_cmp()
985 : a->frac < b->frac ? float_relation_less in frac64_cmp()
989 static FloatRelation frac128_cmp(FloatParts128 *a, FloatParts128 *b) in frac128_cmp() argument
991 uint64_t ta = a->frac_hi, tb = b->frac_hi; in frac128_cmp()
993 ta = a->frac_lo, tb = b->frac_lo; in frac128_cmp()
1003 static void frac64_clear(FloatParts64 *a) in frac64_clear() argument
1005 a->frac = 0; in frac64_clear()
1008 static void frac128_clear(FloatParts128 *a) in frac128_clear() argument
1010 a->frac_hi = a->frac_lo = 0; in frac128_clear()
1015 static bool frac64_div(FloatParts64 *a, FloatParts64 *b) in frac64_div() argument
1031 ret = a->frac < b->frac; in frac64_div()
1033 n0 = a->frac; in frac64_div()
1036 n0 = a->frac >> 1; in frac64_div()
1037 n1 = a->frac << 63; in frac64_div()
1042 a->frac = q | (r != 0); in frac64_div()
1047 static bool frac128_div(FloatParts128 *a, FloatParts128 *b) in frac128_div() argument
1053 a0 = a->frac_hi, a1 = a->frac_lo; in frac128_div()
1089 a->frac_hi = q0; in frac128_div()
1090 a->frac_lo = q1; in frac128_div()
1096 static bool frac64_eqz(FloatParts64 *a) in frac64_eqz() argument
1098 return a->frac == 0; in frac64_eqz()
1101 static bool frac128_eqz(FloatParts128 *a) in frac128_eqz() argument
1103 return (a->frac_hi | a->frac_lo) == 0; in frac128_eqz()
1108 static void frac64_mulw(FloatParts128 *r, FloatParts64 *a, FloatParts64 *b) in frac64_mulw() argument
1110 mulu64(&r->frac_lo, &r->frac_hi, a->frac, b->frac); in frac64_mulw()
1113 static void frac128_mulw(FloatParts256 *r, FloatParts128 *a, FloatParts128 *b) in frac128_mulw() argument
1115 mul128To256(a->frac_hi, a->frac_lo, b->frac_hi, b->frac_lo, in frac128_mulw()
1121 static void frac64_neg(FloatParts64 *a) in frac64_neg() argument
1123 a->frac = -a->frac; in frac64_neg()
1126 static void frac128_neg(FloatParts128 *a) in frac128_neg() argument
1129 a->frac_lo = usub64_borrow(0, a->frac_lo, &c); in frac128_neg()
1130 a->frac_hi = usub64_borrow(0, a->frac_hi, &c); in frac128_neg()
1133 static void frac256_neg(FloatParts256 *a) in frac256_neg() argument
1136 a->frac_lo = usub64_borrow(0, a->frac_lo, &c); in frac256_neg()
1137 a->frac_lm = usub64_borrow(0, a->frac_lm, &c); in frac256_neg()
1138 a->frac_hm = usub64_borrow(0, a->frac_hm, &c); in frac256_neg()
1139 a->frac_hi = usub64_borrow(0, a->frac_hi, &c); in frac256_neg()
1144 static int frac64_normalize(FloatParts64 *a) in frac64_normalize() argument
1146 if (a->frac) { in frac64_normalize()
1147 int shift = clz64(a->frac); in frac64_normalize()
1148 a->frac <<= shift; in frac64_normalize()
1154 static int frac128_normalize(FloatParts128 *a) in frac128_normalize() argument
1156 if (a->frac_hi) { in frac128_normalize()
1157 int shl = clz64(a->frac_hi); in frac128_normalize()
1158 a->frac_hi = shl_double(a->frac_hi, a->frac_lo, shl); in frac128_normalize()
1159 a->frac_lo <<= shl; in frac128_normalize()
1161 } else if (a->frac_lo) { in frac128_normalize()
1162 int shl = clz64(a->frac_lo); in frac128_normalize()
1163 a->frac_hi = a->frac_lo << shl; in frac128_normalize()
1164 a->frac_lo = 0; in frac128_normalize()
1170 static int frac256_normalize(FloatParts256 *a) in frac256_normalize() argument
1172 uint64_t a0 = a->frac_hi, a1 = a->frac_hm; in frac256_normalize()
1173 uint64_t a2 = a->frac_lm, a3 = a->frac_lo; in frac256_normalize()
1210 a->frac_hi = a0; in frac256_normalize()
1211 a->frac_hm = a1; in frac256_normalize()
1212 a->frac_lm = a2; in frac256_normalize()
1213 a->frac_lo = a3; in frac256_normalize()
1219 static void frac64_modrem(FloatParts64 *a, FloatParts64 *b, uint64_t *mod_quot) in frac64_modrem() argument
1222 int exp_diff = a->exp - b->exp; in frac64_modrem()
1225 a0 = a->frac; in frac64_modrem()
1281 a->sign = !a->sign; in frac64_modrem()
1294 a->cls = float_class_zero; in frac64_modrem()
1298 a->exp = b->exp + exp_diff - shift; in frac64_modrem()
1299 a->frac = a0 | (a1 != 0); in frac64_modrem()
1302 static void frac128_modrem(FloatParts128 *a, FloatParts128 *b, in frac128_modrem() argument
1306 int exp_diff = a->exp - b->exp; in frac128_modrem()
1309 a0 = a->frac_hi; in frac128_modrem()
1310 a1 = a->frac_lo; in frac128_modrem()
1370 a->sign = !a->sign; in frac128_modrem()
1388 a->cls = float_class_zero; in frac128_modrem()
1392 a->exp = b->exp + exp_diff - shift; in frac128_modrem()
1393 a->frac_hi = a0; in frac128_modrem()
1394 a->frac_lo = a1 | (a2 != 0); in frac128_modrem()
1399 static void frac64_shl(FloatParts64 *a, int c) in frac64_shl() argument
1401 a->frac <<= c; in frac64_shl()
1404 static void frac128_shl(FloatParts128 *a, int c) in frac128_shl() argument
1406 uint64_t a0 = a->frac_hi, a1 = a->frac_lo; in frac128_shl()
1418 a->frac_hi = a0; in frac128_shl()
1419 a->frac_lo = a1; in frac128_shl()
1424 static void frac64_shr(FloatParts64 *a, int c) in frac64_shr() argument
1426 a->frac >>= c; in frac64_shr()
1429 static void frac128_shr(FloatParts128 *a, int c) in frac128_shr() argument
1431 uint64_t a0 = a->frac_hi, a1 = a->frac_lo; in frac128_shr()
1443 a->frac_hi = a0; in frac128_shr()
1444 a->frac_lo = a1; in frac128_shr()
1449 static void frac64_shrjam(FloatParts64 *a, int c) in frac64_shrjam() argument
1451 uint64_t a0 = a->frac; in frac64_shrjam()
1459 a->frac = a0; in frac64_shrjam()
1463 static void frac128_shrjam(FloatParts128 *a, int c) in frac128_shrjam() argument
1465 uint64_t a0 = a->frac_hi, a1 = a->frac_lo; in frac128_shrjam()
1491 a->frac_lo = a1 | (sticky != 0); in frac128_shrjam()
1492 a->frac_hi = a0; in frac128_shrjam()
1495 static void frac256_shrjam(FloatParts256 *a, int c) in frac256_shrjam() argument
1497 uint64_t a0 = a->frac_hi, a1 = a->frac_hm; in frac256_shrjam()
1498 uint64_t a2 = a->frac_lm, a3 = a->frac_lo; in frac256_shrjam()
1531 a->frac_lo = a3 | (sticky != 0); in frac256_shrjam()
1532 a->frac_lm = a2; in frac256_shrjam()
1533 a->frac_hm = a1; in frac256_shrjam()
1534 a->frac_hi = a0; in frac256_shrjam()
1539 static bool frac64_sub(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) in frac64_sub() argument
1541 return usub64_overflow(a->frac, b->frac, &r->frac); in frac64_sub()
1544 static bool frac128_sub(FloatParts128 *r, FloatParts128 *a, FloatParts128 *b) in frac128_sub() argument
1547 r->frac_lo = usub64_borrow(a->frac_lo, b->frac_lo, &c); in frac128_sub()
1548 r->frac_hi = usub64_borrow(a->frac_hi, b->frac_hi, &c); in frac128_sub()
1552 static bool frac256_sub(FloatParts256 *r, FloatParts256 *a, FloatParts256 *b) in frac256_sub() argument
1555 r->frac_lo = usub64_borrow(a->frac_lo, b->frac_lo, &c); in frac256_sub()
1556 r->frac_lm = usub64_borrow(a->frac_lm, b->frac_lm, &c); in frac256_sub()
1557 r->frac_hm = usub64_borrow(a->frac_hm, b->frac_hm, &c); in frac256_sub()
1558 r->frac_hi = usub64_borrow(a->frac_hi, b->frac_hi, &c); in frac256_sub()
1564 static void frac64_truncjam(FloatParts64 *r, FloatParts128 *a) in frac64_truncjam() argument
1566 r->frac = a->frac_hi | (a->frac_lo != 0); in frac64_truncjam()
1569 static void frac128_truncjam(FloatParts128 *r, FloatParts256 *a) in frac128_truncjam() argument
1571 r->frac_hi = a->frac_hi; in frac128_truncjam()
1572 r->frac_lo = a->frac_hm | ((a->frac_lm | a->frac_lo) != 0); in frac128_truncjam()
1577 static void frac64_widen(FloatParts128 *r, FloatParts64 *a) in frac64_widen() argument
1579 r->frac_hi = a->frac; in frac64_widen()
1583 static void frac128_widen(FloatParts256 *r, FloatParts128 *a) in frac128_widen() argument
1585 r->frac_hi = a->frac_hi; in frac128_widen()
1586 r->frac_hm = a->frac_lo; in frac128_widen()
1869 float16_addsub(float16 a, float16 b, float_status *status, bool subtract) in float16_addsub() argument
1873 float16_unpack_canonical(&pa, a, status); in float16_addsub()
1880 float16 float16_add(float16 a, float16 b, float_status *status) in float16_add() argument
1882 return float16_addsub(a, b, status, false); in float16_add()
1885 float16 float16_sub(float16 a, float16 b, float_status *status) in float16_sub() argument
1887 return float16_addsub(a, b, status, true); in float16_sub()
1891 soft_f32_addsub(float32 a, float32 b, float_status *status, bool subtract) in soft_f32_addsub() argument
1895 float32_unpack_canonical(&pa, a, status); in soft_f32_addsub()
1902 static float32 soft_f32_add(float32 a, float32 b, float_status *status) in soft_f32_add() argument
1904 return soft_f32_addsub(a, b, status, false); in soft_f32_add()
1907 static float32 soft_f32_sub(float32 a, float32 b, float_status *status) in soft_f32_sub() argument
1909 return soft_f32_addsub(a, b, status, true); in soft_f32_sub()
1913 soft_f64_addsub(float64 a, float64 b, float_status *status, bool subtract) in soft_f64_addsub() argument
1917 float64_unpack_canonical(&pa, a, status); in soft_f64_addsub()
1924 static float64 soft_f64_add(float64 a, float64 b, float_status *status) in soft_f64_add() argument
1926 return soft_f64_addsub(a, b, status, false); in soft_f64_add()
1929 static float64 soft_f64_sub(float64 a, float64 b, float_status *status) in soft_f64_sub() argument
1931 return soft_f64_addsub(a, b, status, true); in soft_f64_sub()
1934 static float hard_f32_add(float a, float b) in hard_f32_add() argument
1936 return a + b; in hard_f32_add()
1939 static float hard_f32_sub(float a, float b) in hard_f32_sub() argument
1941 return a - b; in hard_f32_sub()
1944 static double hard_f64_add(double a, double b) in hard_f64_add() argument
1946 return a + b; in hard_f64_add()
1949 static double hard_f64_sub(double a, double b) in hard_f64_sub() argument
1951 return a - b; in hard_f64_sub()
1954 static bool f32_addsubmul_post(union_float32 a, union_float32 b) in f32_addsubmul_post() argument
1957 return !(fpclassify(a.h) == FP_ZERO && fpclassify(b.h) == FP_ZERO); in f32_addsubmul_post()
1959 return !(float32_is_zero(a.s) && float32_is_zero(b.s)); in f32_addsubmul_post()
1962 static bool f64_addsubmul_post(union_float64 a, union_float64 b) in f64_addsubmul_post() argument
1965 return !(fpclassify(a.h) == FP_ZERO && fpclassify(b.h) == FP_ZERO); in f64_addsubmul_post()
1967 return !(float64_is_zero(a.s) && float64_is_zero(b.s)); in f64_addsubmul_post()
1971 static float32 float32_addsub(float32 a, float32 b, float_status *s, in float32_addsub() argument
1974 return float32_gen2(a, b, s, hard, soft, in float32_addsub()
1978 static float64 float64_addsub(float64 a, float64 b, float_status *s, in float64_addsub() argument
1981 return float64_gen2(a, b, s, hard, soft, in float64_addsub()
1986 float32_add(float32 a, float32 b, float_status *s) in float32_add() argument
1988 return float32_addsub(a, b, s, hard_f32_add, soft_f32_add); in float32_add()
1992 float32_sub(float32 a, float32 b, float_status *s) in float32_sub() argument
1994 return float32_addsub(a, b, s, hard_f32_sub, soft_f32_sub); in float32_sub()
1998 float64_add(float64 a, float64 b, float_status *s) in float64_add() argument
2000 return float64_addsub(a, b, s, hard_f64_add, soft_f64_add); in float64_add()
2004 float64_sub(float64 a, float64 b, float_status *s) in float64_sub() argument
2006 return float64_addsub(a, b, s, hard_f64_sub, soft_f64_sub); in float64_sub()
2009 static float64 float64r32_addsub(float64 a, float64 b, float_status *status, in float64r32_addsub() argument
2014 float64_unpack_canonical(&pa, a, status); in float64r32_addsub()
2021 float64 float64r32_add(float64 a, float64 b, float_status *status) in float64r32_add() argument
2023 return float64r32_addsub(a, b, status, false); in float64r32_add()
2026 float64 float64r32_sub(float64 a, float64 b, float_status *status) in float64r32_sub() argument
2028 return float64r32_addsub(a, b, status, true); in float64r32_sub()
2032 bfloat16_addsub(bfloat16 a, bfloat16 b, float_status *status, bool subtract) in bfloat16_addsub() argument
2036 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_addsub()
2043 bfloat16 bfloat16_add(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_add() argument
2045 return bfloat16_addsub(a, b, status, false); in bfloat16_add()
2048 bfloat16 bfloat16_sub(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_sub() argument
2050 return bfloat16_addsub(a, b, status, true); in bfloat16_sub()
2054 float128_addsub(float128 a, float128 b, float_status *status, bool subtract) in float128_addsub() argument
2058 float128_unpack_canonical(&pa, a, status); in float128_addsub()
2065 float128 float128_add(float128 a, float128 b, float_status *status) in float128_add() argument
2067 return float128_addsub(a, b, status, false); in float128_add()
2070 float128 float128_sub(float128 a, float128 b, float_status *status) in float128_sub() argument
2072 return float128_addsub(a, b, status, true); in float128_sub()
2076 floatx80_addsub(floatx80 a, floatx80 b, float_status *status, bool subtract) in floatx80_addsub() argument
2080 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_addsub()
2089 floatx80 floatx80_add(floatx80 a, floatx80 b, float_status *status) in floatx80_add() argument
2091 return floatx80_addsub(a, b, status, false); in floatx80_add()
2094 floatx80 floatx80_sub(floatx80 a, floatx80 b, float_status *status) in floatx80_sub() argument
2096 return floatx80_addsub(a, b, status, true); in floatx80_sub()
2103 float16 QEMU_FLATTEN float16_mul(float16 a, float16 b, float_status *status) in float16_mul() argument
2107 float16_unpack_canonical(&pa, a, status); in float16_mul()
2115 soft_f32_mul(float32 a, float32 b, float_status *status) in soft_f32_mul() argument
2119 float32_unpack_canonical(&pa, a, status); in soft_f32_mul()
2127 soft_f64_mul(float64 a, float64 b, float_status *status) in soft_f64_mul() argument
2131 float64_unpack_canonical(&pa, a, status); in soft_f64_mul()
2138 static float hard_f32_mul(float a, float b) in hard_f32_mul() argument
2140 return a * b; in hard_f32_mul()
2143 static double hard_f64_mul(double a, double b) in hard_f64_mul() argument
2145 return a * b; in hard_f64_mul()
2149 float32_mul(float32 a, float32 b, float_status *s) in float32_mul() argument
2151 return float32_gen2(a, b, s, hard_f32_mul, soft_f32_mul, in float32_mul()
2156 float64_mul(float64 a, float64 b, float_status *s) in float64_mul() argument
2158 return float64_gen2(a, b, s, hard_f64_mul, soft_f64_mul, in float64_mul()
2162 float64 float64r32_mul(float64 a, float64 b, float_status *status) in float64r32_mul() argument
2166 float64_unpack_canonical(&pa, a, status); in float64r32_mul()
2174 bfloat16_mul(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_mul() argument
2178 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_mul()
2186 float128_mul(float128 a, float128 b, float_status *status) in float128_mul() argument
2190 float128_unpack_canonical(&pa, a, status); in float128_mul()
2198 floatx80_mul(floatx80 a, floatx80 b, float_status *status) in floatx80_mul() argument
2202 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_mul()
2215 float16 QEMU_FLATTEN float16_muladd(float16 a, float16 b, float16 c, in float16_muladd() argument
2220 float16_unpack_canonical(&pa, a, status); in float16_muladd()
2229 soft_f32_muladd(float32 a, float32 b, float32 c, int flags, in soft_f32_muladd() argument
2234 float32_unpack_canonical(&pa, a, status); in soft_f32_muladd()
2243 soft_f64_muladd(float64 a, float64 b, float64 c, int flags, in soft_f64_muladd() argument
2248 float64_unpack_canonical(&pa, a, status); in soft_f64_muladd()
2400 float64 float64r32_muladd(float64 a, float64 b, float64 c, in float64r32_muladd() argument
2405 float64_unpack_canonical(&pa, a, status); in float64r32_muladd()
2413 bfloat16 QEMU_FLATTEN bfloat16_muladd(bfloat16 a, bfloat16 b, bfloat16 c, in bfloat16_muladd() argument
2418 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_muladd()
2426 float128 QEMU_FLATTEN float128_muladd(float128 a, float128 b, float128 c, in float128_muladd() argument
2431 float128_unpack_canonical(&pa, a, status); in float128_muladd()
2443 float16 float16_div(float16 a, float16 b, float_status *status) in float16_div() argument
2447 float16_unpack_canonical(&pa, a, status); in float16_div()
2455 soft_f32_div(float32 a, float32 b, float_status *status) in soft_f32_div() argument
2459 float32_unpack_canonical(&pa, a, status); in soft_f32_div()
2467 soft_f64_div(float64 a, float64 b, float_status *status) in soft_f64_div() argument
2471 float64_unpack_canonical(&pa, a, status); in soft_f64_div()
2478 static float hard_f32_div(float a, float b) in hard_f32_div() argument
2480 return a / b; in hard_f32_div()
2483 static double hard_f64_div(double a, double b) in hard_f64_div() argument
2485 return a / b; in hard_f64_div()
2488 static bool f32_div_pre(union_float32 a, union_float32 b) in f32_div_pre() argument
2491 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f32_div_pre()
2494 return float32_is_zero_or_normal(a.s) && float32_is_normal(b.s); in f32_div_pre()
2497 static bool f64_div_pre(union_float64 a, union_float64 b) in f64_div_pre() argument
2500 return (fpclassify(a.h) == FP_NORMAL || fpclassify(a.h) == FP_ZERO) && in f64_div_pre()
2503 return float64_is_zero_or_normal(a.s) && float64_is_normal(b.s); in f64_div_pre()
2506 static bool f32_div_post(union_float32 a, union_float32 b) in f32_div_post() argument
2509 return fpclassify(a.h) != FP_ZERO; in f32_div_post()
2511 return !float32_is_zero(a.s); in f32_div_post()
2514 static bool f64_div_post(union_float64 a, union_float64 b) in f64_div_post() argument
2517 return fpclassify(a.h) != FP_ZERO; in f64_div_post()
2519 return !float64_is_zero(a.s); in f64_div_post()
2523 float32_div(float32 a, float32 b, float_status *s) in float32_div() argument
2525 return float32_gen2(a, b, s, hard_f32_div, soft_f32_div, in float32_div()
2530 float64_div(float64 a, float64 b, float_status *s) in float64_div() argument
2532 return float64_gen2(a, b, s, hard_f64_div, soft_f64_div, in float64_div()
2536 float64 float64r32_div(float64 a, float64 b, float_status *status) in float64r32_div() argument
2540 float64_unpack_canonical(&pa, a, status); in float64r32_div()
2548 bfloat16_div(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_div() argument
2552 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_div()
2560 float128_div(float128 a, float128 b, float_status *status) in float128_div() argument
2564 float128_unpack_canonical(&pa, a, status); in float128_div()
2571 floatx80 floatx80_div(floatx80 a, floatx80 b, float_status *status) in floatx80_div() argument
2575 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_div()
2588 float32 float32_rem(float32 a, float32 b, float_status *status) in float32_rem() argument
2592 float32_unpack_canonical(&pa, a, status); in float32_rem()
2599 float64 float64_rem(float64 a, float64 b, float_status *status) in float64_rem() argument
2603 float64_unpack_canonical(&pa, a, status); in float64_rem()
2610 float128 float128_rem(float128 a, float128 b, float_status *status) in float128_rem() argument
2614 float128_unpack_canonical(&pa, a, status); in float128_rem()
2630 floatx80 floatx80_modrem(floatx80 a, floatx80 b, bool mod, in floatx80_modrem() argument
2636 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_modrem()
2645 floatx80 floatx80_rem(floatx80 a, floatx80 b, float_status *status) in floatx80_rem() argument
2648 return floatx80_modrem(a, b, false, &quotient, status); in floatx80_rem()
2651 floatx80 floatx80_mod(floatx80 a, floatx80 b, float_status *status) in floatx80_mod() argument
2654 return floatx80_modrem(a, b, true, &quotient, status); in floatx80_mod()
2668 static void parts_float_to_ahp(FloatParts64 *a, float_status *s) in parts_float_to_ahp() argument
2670 switch (a->cls) { in parts_float_to_ahp()
2680 a->cls = float_class_zero; in parts_float_to_ahp()
2689 a->cls = float_class_normal; in parts_float_to_ahp()
2690 a->exp = float16_params_ahp.exp_max; in parts_float_to_ahp()
2691 a->frac = MAKE_64BIT_MASK(float16_params_ahp.frac_shift, in parts_float_to_ahp()
2704 static void parts64_float_to_float(FloatParts64 *a, float_status *s) in parts64_float_to_float() argument
2706 if (is_nan(a->cls)) { in parts64_float_to_float()
2707 parts_return_nan(a, s); in parts64_float_to_float()
2711 static void parts128_float_to_float(FloatParts128 *a, float_status *s) in parts128_float_to_float() argument
2713 if (is_nan(a->cls)) { in parts128_float_to_float()
2714 parts_return_nan(a, s); in parts128_float_to_float()
2721 static void parts_float_to_float_narrow(FloatParts64 *a, FloatParts128 *b, in parts_float_to_float_narrow() argument
2724 a->cls = b->cls; in parts_float_to_float_narrow()
2725 a->sign = b->sign; in parts_float_to_float_narrow()
2726 a->exp = b->exp; in parts_float_to_float_narrow()
2728 if (a->cls == float_class_normal) { in parts_float_to_float_narrow()
2729 frac_truncjam(a, b); in parts_float_to_float_narrow()
2730 } else if (is_nan(a->cls)) { in parts_float_to_float_narrow()
2732 a->frac = b->frac_hi; in parts_float_to_float_narrow()
2733 parts_return_nan(a, s); in parts_float_to_float_narrow()
2737 static void parts_float_to_float_widen(FloatParts128 *a, FloatParts64 *b, in parts_float_to_float_widen() argument
2740 a->cls = b->cls; in parts_float_to_float_widen()
2741 a->sign = b->sign; in parts_float_to_float_widen()
2742 a->exp = b->exp; in parts_float_to_float_widen()
2743 frac_widen(a, b); in parts_float_to_float_widen()
2745 if (is_nan(a->cls)) { in parts_float_to_float_widen()
2746 parts_return_nan(a, s); in parts_float_to_float_widen()
2750 float32 float16_to_float32(float16 a, bool ieee, float_status *s) in float16_to_float32() argument
2755 float16a_unpack_canonical(&p, a, s, fmt16); in float16_to_float32()
2760 float64 float16_to_float64(float16 a, bool ieee, float_status *s) in float16_to_float64() argument
2765 float16a_unpack_canonical(&p, a, s, fmt16); in float16_to_float64()
2770 float16 float32_to_float16(float32 a, bool ieee, float_status *s) in float32_to_float16() argument
2775 float32_unpack_canonical(&p, a, s); in float32_to_float16()
2787 soft_float32_to_float64(float32 a, float_status *s) in soft_float32_to_float64() argument
2791 float32_unpack_canonical(&p, a, s); in soft_float32_to_float64()
2796 float64 float32_to_float64(float32 a, float_status *s) in float32_to_float64() argument
2798 if (likely(float32_is_normal(a))) { in float32_to_float64()
2802 uf.s = a; in float32_to_float64()
2805 } else if (float32_is_zero(a)) { in float32_to_float64()
2806 return float64_set_sign(float64_zero, float32_is_neg(a)); in float32_to_float64()
2808 return soft_float32_to_float64(a, s); in float32_to_float64()
2812 float16 float64_to_float16(float64 a, bool ieee, float_status *s) in float64_to_float16() argument
2817 float64_unpack_canonical(&p, a, s); in float64_to_float16()
2828 float32 float64_to_float32(float64 a, float_status *s) in float64_to_float32() argument
2832 float64_unpack_canonical(&p, a, s); in float64_to_float32()
2837 float32 bfloat16_to_float32(bfloat16 a, float_status *s) in bfloat16_to_float32() argument
2841 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_float32()
2846 float64 bfloat16_to_float64(bfloat16 a, float_status *s) in bfloat16_to_float64() argument
2850 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_float64()
2855 bfloat16 float32_to_bfloat16(float32 a, float_status *s) in float32_to_bfloat16() argument
2859 float32_unpack_canonical(&p, a, s); in float32_to_bfloat16()
2864 bfloat16 float64_to_bfloat16(float64 a, float_status *s) in float64_to_bfloat16() argument
2868 float64_unpack_canonical(&p, a, s); in float64_to_bfloat16()
2873 float32 float128_to_float32(float128 a, float_status *s) in float128_to_float32() argument
2878 float128_unpack_canonical(&p128, a, s); in float128_to_float32()
2883 float64 float128_to_float64(float128 a, float_status *s) in float128_to_float64() argument
2888 float128_unpack_canonical(&p128, a, s); in float128_to_float64()
2893 float128 float32_to_float128(float32 a, float_status *s) in float32_to_float128() argument
2898 float32_unpack_canonical(&p64, a, s); in float32_to_float128()
2903 float128 float64_to_float128(float64 a, float_status *s) in float64_to_float128() argument
2908 float64_unpack_canonical(&p64, a, s); in float64_to_float128()
2913 float32 floatx80_to_float32(floatx80 a, float_status *s) in floatx80_to_float32() argument
2918 if (floatx80_unpack_canonical(&p128, a, s)) { in floatx80_to_float32()
2926 float64 floatx80_to_float64(floatx80 a, float_status *s) in floatx80_to_float64() argument
2931 if (floatx80_unpack_canonical(&p128, a, s)) { in floatx80_to_float64()
2939 float128 floatx80_to_float128(floatx80 a, float_status *s) in floatx80_to_float128() argument
2943 if (floatx80_unpack_canonical(&p, a, s)) { in floatx80_to_float128()
2951 floatx80 float32_to_floatx80(float32 a, float_status *s) in float32_to_floatx80() argument
2956 float32_unpack_canonical(&p64, a, s); in float32_to_floatx80()
2961 floatx80 float64_to_floatx80(float64 a, float_status *s) in float64_to_floatx80() argument
2966 float64_unpack_canonical(&p64, a, s); in float64_to_floatx80()
2971 floatx80 float128_to_floatx80(float128 a, float_status *s) in float128_to_floatx80() argument
2975 float128_unpack_canonical(&p, a, s); in float128_to_floatx80()
2984 float16 float16_round_to_int(float16 a, float_status *s) in float16_round_to_int() argument
2988 float16_unpack_canonical(&p, a, s); in float16_round_to_int()
2993 float32 float32_round_to_int(float32 a, float_status *s) in float32_round_to_int() argument
2997 float32_unpack_canonical(&p, a, s); in float32_round_to_int()
3002 float64 float64_round_to_int(float64 a, float_status *s) in float64_round_to_int() argument
3006 float64_unpack_canonical(&p, a, s); in float64_round_to_int()
3011 bfloat16 bfloat16_round_to_int(bfloat16 a, float_status *s) in bfloat16_round_to_int() argument
3015 bfloat16_unpack_canonical(&p, a, s); in bfloat16_round_to_int()
3020 float128 float128_round_to_int(float128 a, float_status *s) in float128_round_to_int() argument
3024 float128_unpack_canonical(&p, a, s); in float128_round_to_int()
3029 floatx80 floatx80_round_to_int(floatx80 a, float_status *status) in floatx80_round_to_int() argument
3033 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_round_to_int()
3046 int8_t float16_to_int8_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_int8_scalbn() argument
3051 float16_unpack_canonical(&p, a, s); in float16_to_int8_scalbn()
3055 int16_t float16_to_int16_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_int16_scalbn() argument
3060 float16_unpack_canonical(&p, a, s); in float16_to_int16_scalbn()
3064 int32_t float16_to_int32_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_int32_scalbn() argument
3069 float16_unpack_canonical(&p, a, s); in float16_to_int32_scalbn()
3073 int64_t float16_to_int64_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_int64_scalbn() argument
3078 float16_unpack_canonical(&p, a, s); in float16_to_int64_scalbn()
3082 int16_t float32_to_int16_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_int16_scalbn() argument
3087 float32_unpack_canonical(&p, a, s); in float32_to_int16_scalbn()
3091 int32_t float32_to_int32_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_int32_scalbn() argument
3096 float32_unpack_canonical(&p, a, s); in float32_to_int32_scalbn()
3100 int64_t float32_to_int64_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_int64_scalbn() argument
3105 float32_unpack_canonical(&p, a, s); in float32_to_int64_scalbn()
3109 int16_t float64_to_int16_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_int16_scalbn() argument
3114 float64_unpack_canonical(&p, a, s); in float64_to_int16_scalbn()
3118 int32_t float64_to_int32_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_int32_scalbn() argument
3123 float64_unpack_canonical(&p, a, s); in float64_to_int32_scalbn()
3127 int64_t float64_to_int64_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_int64_scalbn() argument
3132 float64_unpack_canonical(&p, a, s); in float64_to_int64_scalbn()
3136 int8_t bfloat16_to_int8_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, in bfloat16_to_int8_scalbn() argument
3141 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_int8_scalbn()
3145 int16_t bfloat16_to_int16_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, in bfloat16_to_int16_scalbn() argument
3150 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_int16_scalbn()
3154 int32_t bfloat16_to_int32_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, in bfloat16_to_int32_scalbn() argument
3159 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_int32_scalbn()
3163 int64_t bfloat16_to_int64_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, in bfloat16_to_int64_scalbn() argument
3168 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_int64_scalbn()
3172 static int32_t float128_to_int32_scalbn(float128 a, FloatRoundMode rmode, in float128_to_int32_scalbn() argument
3177 float128_unpack_canonical(&p, a, s); in float128_to_int32_scalbn()
3181 static int64_t float128_to_int64_scalbn(float128 a, FloatRoundMode rmode, in float128_to_int64_scalbn() argument
3186 float128_unpack_canonical(&p, a, s); in float128_to_int64_scalbn()
3190 static Int128 float128_to_int128_scalbn(float128 a, FloatRoundMode rmode, in float128_to_int128_scalbn() argument
3197 float128_unpack_canonical(&p, a, s); in float128_to_int128_scalbn()
3244 static int32_t floatx80_to_int32_scalbn(floatx80 a, FloatRoundMode rmode, in floatx80_to_int32_scalbn() argument
3249 if (!floatx80_unpack_canonical(&p, a, s)) { in floatx80_to_int32_scalbn()
3255 static int64_t floatx80_to_int64_scalbn(floatx80 a, FloatRoundMode rmode, in floatx80_to_int64_scalbn() argument
3260 if (!floatx80_unpack_canonical(&p, a, s)) { in floatx80_to_int64_scalbn()
3266 int8_t float16_to_int8(float16 a, float_status *s) in float16_to_int8() argument
3268 return float16_to_int8_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_int8()
3271 int16_t float16_to_int16(float16 a, float_status *s) in float16_to_int16() argument
3273 return float16_to_int16_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_int16()
3276 int32_t float16_to_int32(float16 a, float_status *s) in float16_to_int32() argument
3278 return float16_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_int32()
3281 int64_t float16_to_int64(float16 a, float_status *s) in float16_to_int64() argument
3283 return float16_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_int64()
3286 int16_t float32_to_int16(float32 a, float_status *s) in float32_to_int16() argument
3288 return float32_to_int16_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_int16()
3291 int32_t float32_to_int32(float32 a, float_status *s) in float32_to_int32() argument
3293 return float32_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_int32()
3296 int64_t float32_to_int64(float32 a, float_status *s) in float32_to_int64() argument
3298 return float32_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_int64()
3301 int16_t float64_to_int16(float64 a, float_status *s) in float64_to_int16() argument
3303 return float64_to_int16_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_int16()
3306 int32_t float64_to_int32(float64 a, float_status *s) in float64_to_int32() argument
3308 return float64_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_int32()
3311 int64_t float64_to_int64(float64 a, float_status *s) in float64_to_int64() argument
3313 return float64_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_int64()
3316 int32_t float128_to_int32(float128 a, float_status *s) in float128_to_int32() argument
3318 return float128_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_int32()
3321 int64_t float128_to_int64(float128 a, float_status *s) in float128_to_int64() argument
3323 return float128_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_int64()
3326 Int128 float128_to_int128(float128 a, float_status *s) in float128_to_int128() argument
3328 return float128_to_int128_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_int128()
3331 int32_t floatx80_to_int32(floatx80 a, float_status *s) in floatx80_to_int32() argument
3333 return floatx80_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in floatx80_to_int32()
3336 int64_t floatx80_to_int64(floatx80 a, float_status *s) in floatx80_to_int64() argument
3338 return floatx80_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in floatx80_to_int64()
3341 int16_t float16_to_int16_round_to_zero(float16 a, float_status *s) in float16_to_int16_round_to_zero() argument
3343 return float16_to_int16_scalbn(a, float_round_to_zero, 0, s); in float16_to_int16_round_to_zero()
3346 int32_t float16_to_int32_round_to_zero(float16 a, float_status *s) in float16_to_int32_round_to_zero() argument
3348 return float16_to_int32_scalbn(a, float_round_to_zero, 0, s); in float16_to_int32_round_to_zero()
3351 int64_t float16_to_int64_round_to_zero(float16 a, float_status *s) in float16_to_int64_round_to_zero() argument
3353 return float16_to_int64_scalbn(a, float_round_to_zero, 0, s); in float16_to_int64_round_to_zero()
3356 int16_t float32_to_int16_round_to_zero(float32 a, float_status *s) in float32_to_int16_round_to_zero() argument
3358 return float32_to_int16_scalbn(a, float_round_to_zero, 0, s); in float32_to_int16_round_to_zero()
3361 int32_t float32_to_int32_round_to_zero(float32 a, float_status *s) in float32_to_int32_round_to_zero() argument
3363 return float32_to_int32_scalbn(a, float_round_to_zero, 0, s); in float32_to_int32_round_to_zero()
3366 int64_t float32_to_int64_round_to_zero(float32 a, float_status *s) in float32_to_int64_round_to_zero() argument
3368 return float32_to_int64_scalbn(a, float_round_to_zero, 0, s); in float32_to_int64_round_to_zero()
3371 int16_t float64_to_int16_round_to_zero(float64 a, float_status *s) in float64_to_int16_round_to_zero() argument
3373 return float64_to_int16_scalbn(a, float_round_to_zero, 0, s); in float64_to_int16_round_to_zero()
3376 int32_t float64_to_int32_round_to_zero(float64 a, float_status *s) in float64_to_int32_round_to_zero() argument
3378 return float64_to_int32_scalbn(a, float_round_to_zero, 0, s); in float64_to_int32_round_to_zero()
3381 int64_t float64_to_int64_round_to_zero(float64 a, float_status *s) in float64_to_int64_round_to_zero() argument
3383 return float64_to_int64_scalbn(a, float_round_to_zero, 0, s); in float64_to_int64_round_to_zero()
3386 int32_t float128_to_int32_round_to_zero(float128 a, float_status *s) in float128_to_int32_round_to_zero() argument
3388 return float128_to_int32_scalbn(a, float_round_to_zero, 0, s); in float128_to_int32_round_to_zero()
3391 int64_t float128_to_int64_round_to_zero(float128 a, float_status *s) in float128_to_int64_round_to_zero() argument
3393 return float128_to_int64_scalbn(a, float_round_to_zero, 0, s); in float128_to_int64_round_to_zero()
3396 Int128 float128_to_int128_round_to_zero(float128 a, float_status *s) in float128_to_int128_round_to_zero() argument
3398 return float128_to_int128_scalbn(a, float_round_to_zero, 0, s); in float128_to_int128_round_to_zero()
3401 int32_t floatx80_to_int32_round_to_zero(floatx80 a, float_status *s) in floatx80_to_int32_round_to_zero() argument
3403 return floatx80_to_int32_scalbn(a, float_round_to_zero, 0, s); in floatx80_to_int32_round_to_zero()
3406 int64_t floatx80_to_int64_round_to_zero(floatx80 a, float_status *s) in floatx80_to_int64_round_to_zero() argument
3408 return floatx80_to_int64_scalbn(a, float_round_to_zero, 0, s); in floatx80_to_int64_round_to_zero()
3411 int8_t bfloat16_to_int8(bfloat16 a, float_status *s) in bfloat16_to_int8() argument
3413 return bfloat16_to_int8_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_int8()
3416 int16_t bfloat16_to_int16(bfloat16 a, float_status *s) in bfloat16_to_int16() argument
3418 return bfloat16_to_int16_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_int16()
3421 int32_t bfloat16_to_int32(bfloat16 a, float_status *s) in bfloat16_to_int32() argument
3423 return bfloat16_to_int32_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_int32()
3426 int64_t bfloat16_to_int64(bfloat16 a, float_status *s) in bfloat16_to_int64() argument
3428 return bfloat16_to_int64_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_int64()
3431 int8_t bfloat16_to_int8_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_int8_round_to_zero() argument
3433 return bfloat16_to_int8_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_int8_round_to_zero()
3436 int16_t bfloat16_to_int16_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_int16_round_to_zero() argument
3438 return bfloat16_to_int16_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_int16_round_to_zero()
3441 int32_t bfloat16_to_int32_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_int32_round_to_zero() argument
3443 return bfloat16_to_int32_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_int32_round_to_zero()
3446 int64_t bfloat16_to_int64_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_int64_round_to_zero() argument
3448 return bfloat16_to_int64_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_int64_round_to_zero()
3451 int32_t float64_to_int32_modulo(float64 a, FloatRoundMode rmode, in float64_to_int32_modulo() argument
3456 float64_unpack_canonical(&p, a, s); in float64_to_int32_modulo()
3460 int64_t float64_to_int64_modulo(float64 a, FloatRoundMode rmode, in float64_to_int64_modulo() argument
3465 float64_unpack_canonical(&p, a, s); in float64_to_int64_modulo()
3473 uint8_t float16_to_uint8_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_uint8_scalbn() argument
3478 float16_unpack_canonical(&p, a, s); in float16_to_uint8_scalbn()
3482 uint16_t float16_to_uint16_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_uint16_scalbn() argument
3487 float16_unpack_canonical(&p, a, s); in float16_to_uint16_scalbn()
3491 uint32_t float16_to_uint32_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_uint32_scalbn() argument
3496 float16_unpack_canonical(&p, a, s); in float16_to_uint32_scalbn()
3500 uint64_t float16_to_uint64_scalbn(float16 a, FloatRoundMode rmode, int scale, in float16_to_uint64_scalbn() argument
3505 float16_unpack_canonical(&p, a, s); in float16_to_uint64_scalbn()
3509 uint16_t float32_to_uint16_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_uint16_scalbn() argument
3514 float32_unpack_canonical(&p, a, s); in float32_to_uint16_scalbn()
3518 uint32_t float32_to_uint32_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_uint32_scalbn() argument
3523 float32_unpack_canonical(&p, a, s); in float32_to_uint32_scalbn()
3527 uint64_t float32_to_uint64_scalbn(float32 a, FloatRoundMode rmode, int scale, in float32_to_uint64_scalbn() argument
3532 float32_unpack_canonical(&p, a, s); in float32_to_uint64_scalbn()
3536 uint16_t float64_to_uint16_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_uint16_scalbn() argument
3541 float64_unpack_canonical(&p, a, s); in float64_to_uint16_scalbn()
3545 uint32_t float64_to_uint32_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_uint32_scalbn() argument
3550 float64_unpack_canonical(&p, a, s); in float64_to_uint32_scalbn()
3554 uint64_t float64_to_uint64_scalbn(float64 a, FloatRoundMode rmode, int scale, in float64_to_uint64_scalbn() argument
3559 float64_unpack_canonical(&p, a, s); in float64_to_uint64_scalbn()
3563 uint8_t bfloat16_to_uint8_scalbn(bfloat16 a, FloatRoundMode rmode, in bfloat16_to_uint8_scalbn() argument
3568 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_uint8_scalbn()
3572 uint16_t bfloat16_to_uint16_scalbn(bfloat16 a, FloatRoundMode rmode, in bfloat16_to_uint16_scalbn() argument
3577 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_uint16_scalbn()
3581 uint32_t bfloat16_to_uint32_scalbn(bfloat16 a, FloatRoundMode rmode, in bfloat16_to_uint32_scalbn() argument
3586 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_uint32_scalbn()
3590 uint64_t bfloat16_to_uint64_scalbn(bfloat16 a, FloatRoundMode rmode, in bfloat16_to_uint64_scalbn() argument
3595 bfloat16_unpack_canonical(&p, a, s); in bfloat16_to_uint64_scalbn()
3599 static uint32_t float128_to_uint32_scalbn(float128 a, FloatRoundMode rmode, in float128_to_uint32_scalbn() argument
3604 float128_unpack_canonical(&p, a, s); in float128_to_uint32_scalbn()
3608 static uint64_t float128_to_uint64_scalbn(float128 a, FloatRoundMode rmode, in float128_to_uint64_scalbn() argument
3613 float128_unpack_canonical(&p, a, s); in float128_to_uint64_scalbn()
3617 static Int128 float128_to_uint128_scalbn(float128 a, FloatRoundMode rmode, in float128_to_uint128_scalbn() argument
3624 float128_unpack_canonical(&p, a, s); in float128_to_uint128_scalbn()
3672 uint8_t float16_to_uint8(float16 a, float_status *s) in float16_to_uint8() argument
3674 return float16_to_uint8_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_uint8()
3677 uint16_t float16_to_uint16(float16 a, float_status *s) in float16_to_uint16() argument
3679 return float16_to_uint16_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_uint16()
3682 uint32_t float16_to_uint32(float16 a, float_status *s) in float16_to_uint32() argument
3684 return float16_to_uint32_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_uint32()
3687 uint64_t float16_to_uint64(float16 a, float_status *s) in float16_to_uint64() argument
3689 return float16_to_uint64_scalbn(a, s->float_rounding_mode, 0, s); in float16_to_uint64()
3692 uint16_t float32_to_uint16(float32 a, float_status *s) in float32_to_uint16() argument
3694 return float32_to_uint16_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_uint16()
3697 uint32_t float32_to_uint32(float32 a, float_status *s) in float32_to_uint32() argument
3699 return float32_to_uint32_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_uint32()
3702 uint64_t float32_to_uint64(float32 a, float_status *s) in float32_to_uint64() argument
3704 return float32_to_uint64_scalbn(a, s->float_rounding_mode, 0, s); in float32_to_uint64()
3707 uint16_t float64_to_uint16(float64 a, float_status *s) in float64_to_uint16() argument
3709 return float64_to_uint16_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_uint16()
3712 uint32_t float64_to_uint32(float64 a, float_status *s) in float64_to_uint32() argument
3714 return float64_to_uint32_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_uint32()
3717 uint64_t float64_to_uint64(float64 a, float_status *s) in float64_to_uint64() argument
3719 return float64_to_uint64_scalbn(a, s->float_rounding_mode, 0, s); in float64_to_uint64()
3722 uint32_t float128_to_uint32(float128 a, float_status *s) in float128_to_uint32() argument
3724 return float128_to_uint32_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_uint32()
3727 uint64_t float128_to_uint64(float128 a, float_status *s) in float128_to_uint64() argument
3729 return float128_to_uint64_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_uint64()
3732 Int128 float128_to_uint128(float128 a, float_status *s) in float128_to_uint128() argument
3734 return float128_to_uint128_scalbn(a, s->float_rounding_mode, 0, s); in float128_to_uint128()
3737 uint16_t float16_to_uint16_round_to_zero(float16 a, float_status *s) in float16_to_uint16_round_to_zero() argument
3739 return float16_to_uint16_scalbn(a, float_round_to_zero, 0, s); in float16_to_uint16_round_to_zero()
3742 uint32_t float16_to_uint32_round_to_zero(float16 a, float_status *s) in float16_to_uint32_round_to_zero() argument
3744 return float16_to_uint32_scalbn(a, float_round_to_zero, 0, s); in float16_to_uint32_round_to_zero()
3747 uint64_t float16_to_uint64_round_to_zero(float16 a, float_status *s) in float16_to_uint64_round_to_zero() argument
3749 return float16_to_uint64_scalbn(a, float_round_to_zero, 0, s); in float16_to_uint64_round_to_zero()
3752 uint16_t float32_to_uint16_round_to_zero(float32 a, float_status *s) in float32_to_uint16_round_to_zero() argument
3754 return float32_to_uint16_scalbn(a, float_round_to_zero, 0, s); in float32_to_uint16_round_to_zero()
3757 uint32_t float32_to_uint32_round_to_zero(float32 a, float_status *s) in float32_to_uint32_round_to_zero() argument
3759 return float32_to_uint32_scalbn(a, float_round_to_zero, 0, s); in float32_to_uint32_round_to_zero()
3762 uint64_t float32_to_uint64_round_to_zero(float32 a, float_status *s) in float32_to_uint64_round_to_zero() argument
3764 return float32_to_uint64_scalbn(a, float_round_to_zero, 0, s); in float32_to_uint64_round_to_zero()
3767 uint16_t float64_to_uint16_round_to_zero(float64 a, float_status *s) in float64_to_uint16_round_to_zero() argument
3769 return float64_to_uint16_scalbn(a, float_round_to_zero, 0, s); in float64_to_uint16_round_to_zero()
3772 uint32_t float64_to_uint32_round_to_zero(float64 a, float_status *s) in float64_to_uint32_round_to_zero() argument
3774 return float64_to_uint32_scalbn(a, float_round_to_zero, 0, s); in float64_to_uint32_round_to_zero()
3777 uint64_t float64_to_uint64_round_to_zero(float64 a, float_status *s) in float64_to_uint64_round_to_zero() argument
3779 return float64_to_uint64_scalbn(a, float_round_to_zero, 0, s); in float64_to_uint64_round_to_zero()
3782 uint32_t float128_to_uint32_round_to_zero(float128 a, float_status *s) in float128_to_uint32_round_to_zero() argument
3784 return float128_to_uint32_scalbn(a, float_round_to_zero, 0, s); in float128_to_uint32_round_to_zero()
3787 uint64_t float128_to_uint64_round_to_zero(float128 a, float_status *s) in float128_to_uint64_round_to_zero() argument
3789 return float128_to_uint64_scalbn(a, float_round_to_zero, 0, s); in float128_to_uint64_round_to_zero()
3792 Int128 float128_to_uint128_round_to_zero(float128 a, float_status *s) in float128_to_uint128_round_to_zero() argument
3794 return float128_to_uint128_scalbn(a, float_round_to_zero, 0, s); in float128_to_uint128_round_to_zero()
3797 uint8_t bfloat16_to_uint8(bfloat16 a, float_status *s) in bfloat16_to_uint8() argument
3799 return bfloat16_to_uint8_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_uint8()
3802 uint16_t bfloat16_to_uint16(bfloat16 a, float_status *s) in bfloat16_to_uint16() argument
3804 return bfloat16_to_uint16_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_uint16()
3807 uint32_t bfloat16_to_uint32(bfloat16 a, float_status *s) in bfloat16_to_uint32() argument
3809 return bfloat16_to_uint32_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_uint32()
3812 uint64_t bfloat16_to_uint64(bfloat16 a, float_status *s) in bfloat16_to_uint64() argument
3814 return bfloat16_to_uint64_scalbn(a, s->float_rounding_mode, 0, s); in bfloat16_to_uint64()
3817 uint8_t bfloat16_to_uint8_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_uint8_round_to_zero() argument
3819 return bfloat16_to_uint8_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_uint8_round_to_zero()
3822 uint16_t bfloat16_to_uint16_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_uint16_round_to_zero() argument
3824 return bfloat16_to_uint16_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_uint16_round_to_zero()
3827 uint32_t bfloat16_to_uint32_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_uint32_round_to_zero() argument
3829 return bfloat16_to_uint32_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_uint32_round_to_zero()
3832 uint64_t bfloat16_to_uint64_round_to_zero(bfloat16 a, float_status *s) in bfloat16_to_uint64_round_to_zero() argument
3834 return bfloat16_to_uint64_scalbn(a, float_round_to_zero, 0, s); in bfloat16_to_uint64_round_to_zero()
3841 float16 int64_to_float16_scalbn(int64_t a, int scale, float_status *status) in int64_to_float16_scalbn() argument
3845 parts_sint_to_float(&p, a, scale, status); in int64_to_float16_scalbn()
3849 float16 int32_to_float16_scalbn(int32_t a, int scale, float_status *status) in int32_to_float16_scalbn() argument
3851 return int64_to_float16_scalbn(a, scale, status); in int32_to_float16_scalbn()
3854 float16 int16_to_float16_scalbn(int16_t a, int scale, float_status *status) in int16_to_float16_scalbn() argument
3856 return int64_to_float16_scalbn(a, scale, status); in int16_to_float16_scalbn()
3859 float16 int64_to_float16(int64_t a, float_status *status) in int64_to_float16() argument
3861 return int64_to_float16_scalbn(a, 0, status); in int64_to_float16()
3864 float16 int32_to_float16(int32_t a, float_status *status) in int32_to_float16() argument
3866 return int64_to_float16_scalbn(a, 0, status); in int32_to_float16()
3869 float16 int16_to_float16(int16_t a, float_status *status) in int16_to_float16() argument
3871 return int64_to_float16_scalbn(a, 0, status); in int16_to_float16()
3874 float16 int8_to_float16(int8_t a, float_status *status) in int8_to_float16() argument
3876 return int64_to_float16_scalbn(a, 0, status); in int8_to_float16()
3879 float32 int64_to_float32_scalbn(int64_t a, int scale, float_status *status) in int64_to_float32_scalbn() argument
3886 ur.h = a; in int64_to_float32_scalbn()
3890 parts64_sint_to_float(&p, a, scale, status); in int64_to_float32_scalbn()
3894 float32 int32_to_float32_scalbn(int32_t a, int scale, float_status *status) in int32_to_float32_scalbn() argument
3896 return int64_to_float32_scalbn(a, scale, status); in int32_to_float32_scalbn()
3899 float32 int16_to_float32_scalbn(int16_t a, int scale, float_status *status) in int16_to_float32_scalbn() argument
3901 return int64_to_float32_scalbn(a, scale, status); in int16_to_float32_scalbn()
3904 float32 int64_to_float32(int64_t a, float_status *status) in int64_to_float32() argument
3906 return int64_to_float32_scalbn(a, 0, status); in int64_to_float32()
3909 float32 int32_to_float32(int32_t a, float_status *status) in int32_to_float32() argument
3911 return int64_to_float32_scalbn(a, 0, status); in int32_to_float32()
3914 float32 int16_to_float32(int16_t a, float_status *status) in int16_to_float32() argument
3916 return int64_to_float32_scalbn(a, 0, status); in int16_to_float32()
3919 float64 int64_to_float64_scalbn(int64_t a, int scale, float_status *status) in int64_to_float64_scalbn() argument
3926 ur.h = a; in int64_to_float64_scalbn()
3930 parts_sint_to_float(&p, a, scale, status); in int64_to_float64_scalbn()
3934 float64 int32_to_float64_scalbn(int32_t a, int scale, float_status *status) in int32_to_float64_scalbn() argument
3936 return int64_to_float64_scalbn(a, scale, status); in int32_to_float64_scalbn()
3939 float64 int16_to_float64_scalbn(int16_t a, int scale, float_status *status) in int16_to_float64_scalbn() argument
3941 return int64_to_float64_scalbn(a, scale, status); in int16_to_float64_scalbn()
3944 float64 int64_to_float64(int64_t a, float_status *status) in int64_to_float64() argument
3946 return int64_to_float64_scalbn(a, 0, status); in int64_to_float64()
3949 float64 int32_to_float64(int32_t a, float_status *status) in int32_to_float64() argument
3951 return int64_to_float64_scalbn(a, 0, status); in int32_to_float64()
3954 float64 int16_to_float64(int16_t a, float_status *status) in int16_to_float64() argument
3956 return int64_to_float64_scalbn(a, 0, status); in int16_to_float64()
3959 bfloat16 int64_to_bfloat16_scalbn(int64_t a, int scale, float_status *status) in int64_to_bfloat16_scalbn() argument
3963 parts_sint_to_float(&p, a, scale, status); in int64_to_bfloat16_scalbn()
3967 bfloat16 int32_to_bfloat16_scalbn(int32_t a, int scale, float_status *status) in int32_to_bfloat16_scalbn() argument
3969 return int64_to_bfloat16_scalbn(a, scale, status); in int32_to_bfloat16_scalbn()
3972 bfloat16 int16_to_bfloat16_scalbn(int16_t a, int scale, float_status *status) in int16_to_bfloat16_scalbn() argument
3974 return int64_to_bfloat16_scalbn(a, scale, status); in int16_to_bfloat16_scalbn()
3977 bfloat16 int8_to_bfloat16_scalbn(int8_t a, int scale, float_status *status) in int8_to_bfloat16_scalbn() argument
3979 return int64_to_bfloat16_scalbn(a, scale, status); in int8_to_bfloat16_scalbn()
3982 bfloat16 int64_to_bfloat16(int64_t a, float_status *status) in int64_to_bfloat16() argument
3984 return int64_to_bfloat16_scalbn(a, 0, status); in int64_to_bfloat16()
3987 bfloat16 int32_to_bfloat16(int32_t a, float_status *status) in int32_to_bfloat16() argument
3989 return int64_to_bfloat16_scalbn(a, 0, status); in int32_to_bfloat16()
3992 bfloat16 int16_to_bfloat16(int16_t a, float_status *status) in int16_to_bfloat16() argument
3994 return int64_to_bfloat16_scalbn(a, 0, status); in int16_to_bfloat16()
3997 bfloat16 int8_to_bfloat16(int8_t a, float_status *status) in int8_to_bfloat16() argument
3999 return int64_to_bfloat16_scalbn(a, 0, status); in int8_to_bfloat16()
4002 float128 int128_to_float128(Int128 a, float_status *status) in int128_to_float128() argument
4007 if (int128_nz(a)) { in int128_to_float128()
4009 if (!int128_nonneg(a)) { in int128_to_float128()
4011 a = int128_neg(a); in int128_to_float128()
4014 shift = clz64(int128_gethi(a)); in int128_to_float128()
4016 shift += clz64(int128_getlo(a)); in int128_to_float128()
4020 a = int128_lshift(a, shift); in int128_to_float128()
4022 p.frac_hi = int128_gethi(a); in int128_to_float128()
4023 p.frac_lo = int128_getlo(a); in int128_to_float128()
4031 float128 int64_to_float128(int64_t a, float_status *status) in int64_to_float128() argument
4035 parts_sint_to_float(&p, a, 0, status); in int64_to_float128()
4039 float128 int32_to_float128(int32_t a, float_status *status) in int32_to_float128() argument
4041 return int64_to_float128(a, status); in int32_to_float128()
4044 floatx80 int64_to_floatx80(int64_t a, float_status *status) in int64_to_floatx80() argument
4048 parts_sint_to_float(&p, a, 0, status); in int64_to_floatx80()
4052 floatx80 int32_to_floatx80(int32_t a, float_status *status) in int32_to_floatx80() argument
4054 return int64_to_floatx80(a, status); in int32_to_floatx80()
4061 float16 uint64_to_float16_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float16_scalbn() argument
4065 parts_uint_to_float(&p, a, scale, status); in uint64_to_float16_scalbn()
4069 float16 uint32_to_float16_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float16_scalbn() argument
4071 return uint64_to_float16_scalbn(a, scale, status); in uint32_to_float16_scalbn()
4074 float16 uint16_to_float16_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float16_scalbn() argument
4076 return uint64_to_float16_scalbn(a, scale, status); in uint16_to_float16_scalbn()
4079 float16 uint64_to_float16(uint64_t a, float_status *status) in uint64_to_float16() argument
4081 return uint64_to_float16_scalbn(a, 0, status); in uint64_to_float16()
4084 float16 uint32_to_float16(uint32_t a, float_status *status) in uint32_to_float16() argument
4086 return uint64_to_float16_scalbn(a, 0, status); in uint32_to_float16()
4089 float16 uint16_to_float16(uint16_t a, float_status *status) in uint16_to_float16() argument
4091 return uint64_to_float16_scalbn(a, 0, status); in uint16_to_float16()
4094 float16 uint8_to_float16(uint8_t a, float_status *status) in uint8_to_float16() argument
4096 return uint64_to_float16_scalbn(a, 0, status); in uint8_to_float16()
4099 float32 uint64_to_float32_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float32_scalbn() argument
4106 ur.h = a; in uint64_to_float32_scalbn()
4110 parts_uint_to_float(&p, a, scale, status); in uint64_to_float32_scalbn()
4114 float32 uint32_to_float32_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float32_scalbn() argument
4116 return uint64_to_float32_scalbn(a, scale, status); in uint32_to_float32_scalbn()
4119 float32 uint16_to_float32_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float32_scalbn() argument
4121 return uint64_to_float32_scalbn(a, scale, status); in uint16_to_float32_scalbn()
4124 float32 uint64_to_float32(uint64_t a, float_status *status) in uint64_to_float32() argument
4126 return uint64_to_float32_scalbn(a, 0, status); in uint64_to_float32()
4129 float32 uint32_to_float32(uint32_t a, float_status *status) in uint32_to_float32() argument
4131 return uint64_to_float32_scalbn(a, 0, status); in uint32_to_float32()
4134 float32 uint16_to_float32(uint16_t a, float_status *status) in uint16_to_float32() argument
4136 return uint64_to_float32_scalbn(a, 0, status); in uint16_to_float32()
4139 float64 uint64_to_float64_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float64_scalbn() argument
4146 ur.h = a; in uint64_to_float64_scalbn()
4150 parts_uint_to_float(&p, a, scale, status); in uint64_to_float64_scalbn()
4154 float64 uint32_to_float64_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float64_scalbn() argument
4156 return uint64_to_float64_scalbn(a, scale, status); in uint32_to_float64_scalbn()
4159 float64 uint16_to_float64_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float64_scalbn() argument
4161 return uint64_to_float64_scalbn(a, scale, status); in uint16_to_float64_scalbn()
4164 float64 uint64_to_float64(uint64_t a, float_status *status) in uint64_to_float64() argument
4166 return uint64_to_float64_scalbn(a, 0, status); in uint64_to_float64()
4169 float64 uint32_to_float64(uint32_t a, float_status *status) in uint32_to_float64() argument
4171 return uint64_to_float64_scalbn(a, 0, status); in uint32_to_float64()
4174 float64 uint16_to_float64(uint16_t a, float_status *status) in uint16_to_float64() argument
4176 return uint64_to_float64_scalbn(a, 0, status); in uint16_to_float64()
4179 bfloat16 uint64_to_bfloat16_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_bfloat16_scalbn() argument
4183 parts_uint_to_float(&p, a, scale, status); in uint64_to_bfloat16_scalbn()
4187 bfloat16 uint32_to_bfloat16_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_bfloat16_scalbn() argument
4189 return uint64_to_bfloat16_scalbn(a, scale, status); in uint32_to_bfloat16_scalbn()
4192 bfloat16 uint16_to_bfloat16_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_bfloat16_scalbn() argument
4194 return uint64_to_bfloat16_scalbn(a, scale, status); in uint16_to_bfloat16_scalbn()
4197 bfloat16 uint8_to_bfloat16_scalbn(uint8_t a, int scale, float_status *status) in uint8_to_bfloat16_scalbn() argument
4199 return uint64_to_bfloat16_scalbn(a, scale, status); in uint8_to_bfloat16_scalbn()
4202 bfloat16 uint64_to_bfloat16(uint64_t a, float_status *status) in uint64_to_bfloat16() argument
4204 return uint64_to_bfloat16_scalbn(a, 0, status); in uint64_to_bfloat16()
4207 bfloat16 uint32_to_bfloat16(uint32_t a, float_status *status) in uint32_to_bfloat16() argument
4209 return uint64_to_bfloat16_scalbn(a, 0, status); in uint32_to_bfloat16()
4212 bfloat16 uint16_to_bfloat16(uint16_t a, float_status *status) in uint16_to_bfloat16() argument
4214 return uint64_to_bfloat16_scalbn(a, 0, status); in uint16_to_bfloat16()
4217 bfloat16 uint8_to_bfloat16(uint8_t a, float_status *status) in uint8_to_bfloat16() argument
4219 return uint64_to_bfloat16_scalbn(a, 0, status); in uint8_to_bfloat16()
4222 float128 uint64_to_float128(uint64_t a, float_status *status) in uint64_to_float128() argument
4226 parts_uint_to_float(&p, a, 0, status); in uint64_to_float128()
4230 float128 uint128_to_float128(Int128 a, float_status *status) in uint128_to_float128() argument
4235 if (int128_nz(a)) { in uint128_to_float128()
4238 shift = clz64(int128_gethi(a)); in uint128_to_float128()
4240 shift += clz64(int128_getlo(a)); in uint128_to_float128()
4244 a = int128_lshift(a, shift); in uint128_to_float128()
4246 p.frac_hi = int128_gethi(a); in uint128_to_float128()
4247 p.frac_lo = int128_getlo(a); in uint128_to_float128()
4259 static float16 float16_minmax(float16 a, float16 b, float_status *s, int flags) in float16_minmax() argument
4263 float16_unpack_canonical(&pa, a, s); in float16_minmax()
4270 static bfloat16 bfloat16_minmax(bfloat16 a, bfloat16 b, in bfloat16_minmax() argument
4275 bfloat16_unpack_canonical(&pa, a, s); in bfloat16_minmax()
4282 static float32 float32_minmax(float32 a, float32 b, float_status *s, int flags) in float32_minmax() argument
4286 float32_unpack_canonical(&pa, a, s); in float32_minmax()
4293 static float64 float64_minmax(float64 a, float64 b, float_status *s, int flags) in float64_minmax() argument
4297 float64_unpack_canonical(&pa, a, s); in float64_minmax()
4304 static float128 float128_minmax(float128 a, float128 b, in float128_minmax() argument
4309 float128_unpack_canonical(&pa, a, s); in float128_minmax()
4317 type type##_##name(type a, type b, float_status *s) \
4318 { return type##_minmax(a, b, s, flags); }
4344 float16_do_compare(float16 a, float16 b, float_status *s, bool is_quiet) in MINMAX_2()
4348 float16_unpack_canonical(&pa, a, s); in MINMAX_2()
4353 FloatRelation float16_compare(float16 a, float16 b, float_status *s) in float16_compare() argument
4355 return float16_do_compare(a, b, s, false); in float16_compare()
4358 FloatRelation float16_compare_quiet(float16 a, float16 b, float_status *s) in float16_compare_quiet() argument
4360 return float16_do_compare(a, b, s, true); in float16_compare_quiet()
4364 float32_do_compare(float32 a, float32 b, float_status *s, bool is_quiet) in float32_do_compare() argument
4368 float32_unpack_canonical(&pa, a, s); in float32_do_compare()
4403 FloatRelation float32_compare(float32 a, float32 b, float_status *s) in float32_compare() argument
4405 return float32_hs_compare(a, b, s, false); in float32_compare()
4408 FloatRelation float32_compare_quiet(float32 a, float32 b, float_status *s) in float32_compare_quiet() argument
4410 return float32_hs_compare(a, b, s, true); in float32_compare_quiet()
4414 float64_do_compare(float64 a, float64 b, float_status *s, bool is_quiet) in float64_do_compare() argument
4418 float64_unpack_canonical(&pa, a, s); in float64_do_compare()
4453 FloatRelation float64_compare(float64 a, float64 b, float_status *s) in float64_compare() argument
4455 return float64_hs_compare(a, b, s, false); in float64_compare()
4458 FloatRelation float64_compare_quiet(float64 a, float64 b, float_status *s) in float64_compare_quiet() argument
4460 return float64_hs_compare(a, b, s, true); in float64_compare_quiet()
4464 bfloat16_do_compare(bfloat16 a, bfloat16 b, float_status *s, bool is_quiet) in bfloat16_do_compare() argument
4468 bfloat16_unpack_canonical(&pa, a, s); in bfloat16_do_compare()
4473 FloatRelation bfloat16_compare(bfloat16 a, bfloat16 b, float_status *s) in bfloat16_compare() argument
4475 return bfloat16_do_compare(a, b, s, false); in bfloat16_compare()
4478 FloatRelation bfloat16_compare_quiet(bfloat16 a, bfloat16 b, float_status *s) in bfloat16_compare_quiet() argument
4480 return bfloat16_do_compare(a, b, s, true); in bfloat16_compare_quiet()
4484 float128_do_compare(float128 a, float128 b, float_status *s, bool is_quiet) in float128_do_compare() argument
4488 float128_unpack_canonical(&pa, a, s); in float128_do_compare()
4493 FloatRelation float128_compare(float128 a, float128 b, float_status *s) in float128_compare() argument
4495 return float128_do_compare(a, b, s, false); in float128_compare()
4498 FloatRelation float128_compare_quiet(float128 a, float128 b, float_status *s) in float128_compare_quiet() argument
4500 return float128_do_compare(a, b, s, true); in float128_compare_quiet()
4504 floatx80_do_compare(floatx80 a, floatx80 b, float_status *s, bool is_quiet) in floatx80_do_compare() argument
4508 if (!floatx80_unpack_canonical(&pa, a, s) || in floatx80_do_compare()
4515 FloatRelation floatx80_compare(floatx80 a, floatx80 b, float_status *s) in floatx80_compare() argument
4517 return floatx80_do_compare(a, b, s, false); in floatx80_compare()
4520 FloatRelation floatx80_compare_quiet(floatx80 a, floatx80 b, float_status *s) in floatx80_compare_quiet() argument
4522 return floatx80_do_compare(a, b, s, true); in floatx80_compare_quiet()
4529 float16 float16_scalbn(float16 a, int n, float_status *status) in float16_scalbn() argument
4533 float16_unpack_canonical(&p, a, status); in float16_scalbn()
4538 float32 float32_scalbn(float32 a, int n, float_status *status) in float32_scalbn() argument
4542 float32_unpack_canonical(&p, a, status); in float32_scalbn()
4547 float64 float64_scalbn(float64 a, int n, float_status *status) in float64_scalbn() argument
4551 float64_unpack_canonical(&p, a, status); in float64_scalbn()
4556 bfloat16 bfloat16_scalbn(bfloat16 a, int n, float_status *status) in bfloat16_scalbn() argument
4560 bfloat16_unpack_canonical(&p, a, status); in bfloat16_scalbn()
4565 float128 float128_scalbn(float128 a, int n, float_status *status) in float128_scalbn() argument
4569 float128_unpack_canonical(&p, a, status); in float128_scalbn()
4574 floatx80 floatx80_scalbn(floatx80 a, int n, float_status *status) in floatx80_scalbn() argument
4578 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_scalbn()
4589 float16 QEMU_FLATTEN float16_sqrt(float16 a, float_status *status) in float16_sqrt() argument
4593 float16_unpack_canonical(&p, a, status); in float16_sqrt()
4599 soft_f32_sqrt(float32 a, float_status *status) in soft_f32_sqrt() argument
4603 float32_unpack_canonical(&p, a, status); in soft_f32_sqrt()
4609 soft_f64_sqrt(float64 a, float_status *status) in soft_f64_sqrt() argument
4613 float64_unpack_canonical(&p, a, status); in soft_f64_sqrt()
4672 float64 float64r32_sqrt(float64 a, float_status *status) in float64r32_sqrt() argument
4676 float64_unpack_canonical(&p, a, status); in float64r32_sqrt()
4681 bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float_status *status) in bfloat16_sqrt() argument
4685 bfloat16_unpack_canonical(&p, a, status); in bfloat16_sqrt()
4690 float128 QEMU_FLATTEN float128_sqrt(float128 a, float_status *status) in float128_sqrt() argument
4694 float128_unpack_canonical(&p, a, status); in float128_sqrt()
4699 floatx80 floatx80_sqrt(floatx80 a, float_status *s) in floatx80_sqrt() argument
4703 if (!floatx80_unpack_canonical(&p, a, s)) { in floatx80_sqrt()
4713 float32 float32_log2(float32 a, float_status *status) in float32_log2() argument
4717 float32_unpack_canonical(&p, a, status); in float32_log2()
4722 float64 float64_log2(float64 a, float_status *status) in float64_log2() argument
4726 float64_unpack_canonical(&p, a, status); in float64_log2()
4784 float16 float16_silence_nan(float16 a, float_status *status) in float16_silence_nan() argument
4788 float16_unpack_raw(&p, a); in float16_silence_nan()
4795 float32 float32_silence_nan(float32 a, float_status *status) in float32_silence_nan() argument
4799 float32_unpack_raw(&p, a); in float32_silence_nan()
4806 float64 float64_silence_nan(float64 a, float_status *status) in float64_silence_nan() argument
4810 float64_unpack_raw(&p, a); in float64_silence_nan()
4817 bfloat16 bfloat16_silence_nan(bfloat16 a, float_status *status) in bfloat16_silence_nan() argument
4821 bfloat16_unpack_raw(&p, a); in bfloat16_silence_nan()
4828 float128 float128_silence_nan(float128 a, float_status *status) in float128_silence_nan() argument
4832 float128_unpack_raw(&p, a); in float128_silence_nan()
4854 float16 float16_squash_input_denormal(float16 a, float_status *status) in float16_squash_input_denormal() argument
4859 float16_unpack_raw(&p, a); in float16_squash_input_denormal()
4864 return a; in float16_squash_input_denormal()
4867 float32 float32_squash_input_denormal(float32 a, float_status *status) in float32_squash_input_denormal() argument
4872 float32_unpack_raw(&p, a); in float32_squash_input_denormal()
4877 return a; in float32_squash_input_denormal()
4880 float64 float64_squash_input_denormal(float64 a, float_status *status) in float64_squash_input_denormal() argument
4885 float64_unpack_raw(&p, a); in float64_squash_input_denormal()
4890 return a; in float64_squash_input_denormal()
4893 bfloat16 bfloat16_squash_input_denormal(bfloat16 a, float_status *status) in bfloat16_squash_input_denormal() argument
4898 bfloat16_unpack_raw(&p, a); in bfloat16_squash_input_denormal()
4903 return a; in bfloat16_squash_input_denormal()
5203 float32 float32_exp2(float32 a, float_status *status) in float32_exp2() argument
5208 float32_unpack_canonical(&xp, a, status); in float32_exp2()
5216 return xp.sign ? float32_zero : a; in float32_exp2()
5249 floatx80 floatx80_round(floatx80 a, float_status *status) in floatx80_round() argument
5253 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_round()