Lines Matching full:status
752 static void parts64_canonicalize(FloatParts64 *p, float_status *status,
754 static void parts128_canonicalize(FloatParts128 *p, float_status *status,
760 static void parts64_uncanon_normal(FloatParts64 *p, float_status *status,
762 static void parts128_uncanon_normal(FloatParts128 *p, float_status *status,
768 static void parts64_uncanon(FloatParts64 *p, float_status *status,
770 static void parts128_uncanon(FloatParts128 *p, float_status *status,
1886 float16_addsub(float16 a, float16 b, float_status *status, bool subtract) in float16_addsub() argument
1890 float16_unpack_canonical(&pa, a, status); in float16_addsub()
1891 float16_unpack_canonical(&pb, b, status); in float16_addsub()
1892 pr = parts_addsub(&pa, &pb, status, subtract); in float16_addsub()
1894 return float16_round_pack_canonical(pr, status); in float16_addsub()
1897 float16 float16_add(float16 a, float16 b, float_status *status) in float16_add() argument
1899 return float16_addsub(a, b, status, false); in float16_add()
1902 float16 float16_sub(float16 a, float16 b, float_status *status) in float16_sub() argument
1904 return float16_addsub(a, b, status, true); in float16_sub()
1908 soft_f32_addsub(float32 a, float32 b, float_status *status, bool subtract) in soft_f32_addsub() argument
1912 float32_unpack_canonical(&pa, a, status); in soft_f32_addsub()
1913 float32_unpack_canonical(&pb, b, status); in soft_f32_addsub()
1914 pr = parts_addsub(&pa, &pb, status, subtract); in soft_f32_addsub()
1916 return float32_round_pack_canonical(pr, status); in soft_f32_addsub()
1919 static float32 soft_f32_add(float32 a, float32 b, float_status *status) in soft_f32_add() argument
1921 return soft_f32_addsub(a, b, status, false); in soft_f32_add()
1924 static float32 soft_f32_sub(float32 a, float32 b, float_status *status) in soft_f32_sub() argument
1926 return soft_f32_addsub(a, b, status, true); in soft_f32_sub()
1930 soft_f64_addsub(float64 a, float64 b, float_status *status, bool subtract) in soft_f64_addsub() argument
1934 float64_unpack_canonical(&pa, a, status); in soft_f64_addsub()
1935 float64_unpack_canonical(&pb, b, status); in soft_f64_addsub()
1936 pr = parts_addsub(&pa, &pb, status, subtract); in soft_f64_addsub()
1938 return float64_round_pack_canonical(pr, status); in soft_f64_addsub()
1941 static float64 soft_f64_add(float64 a, float64 b, float_status *status) in soft_f64_add() argument
1943 return soft_f64_addsub(a, b, status, false); in soft_f64_add()
1946 static float64 soft_f64_sub(float64 a, float64 b, float_status *status) in soft_f64_sub() argument
1948 return soft_f64_addsub(a, b, status, true); in soft_f64_sub()
2026 static float64 float64r32_addsub(float64 a, float64 b, float_status *status, in float64r32_addsub() argument
2031 float64_unpack_canonical(&pa, a, status); in float64r32_addsub()
2032 float64_unpack_canonical(&pb, b, status); in float64r32_addsub()
2033 pr = parts_addsub(&pa, &pb, status, subtract); in float64r32_addsub()
2035 return float64r32_round_pack_canonical(pr, status); in float64r32_addsub()
2038 float64 float64r32_add(float64 a, float64 b, float_status *status) in float64r32_add() argument
2040 return float64r32_addsub(a, b, status, false); in float64r32_add()
2043 float64 float64r32_sub(float64 a, float64 b, float_status *status) in float64r32_sub() argument
2045 return float64r32_addsub(a, b, status, true); in float64r32_sub()
2049 bfloat16_addsub(bfloat16 a, bfloat16 b, float_status *status, bool subtract) in bfloat16_addsub() argument
2053 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_addsub()
2054 bfloat16_unpack_canonical(&pb, b, status); in bfloat16_addsub()
2055 pr = parts_addsub(&pa, &pb, status, subtract); in bfloat16_addsub()
2057 return bfloat16_round_pack_canonical(pr, status); in bfloat16_addsub()
2060 bfloat16 bfloat16_add(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_add() argument
2062 return bfloat16_addsub(a, b, status, false); in bfloat16_add()
2065 bfloat16 bfloat16_sub(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_sub() argument
2067 return bfloat16_addsub(a, b, status, true); in bfloat16_sub()
2071 float128_addsub(float128 a, float128 b, float_status *status, bool subtract) in float128_addsub() argument
2075 float128_unpack_canonical(&pa, a, status); in float128_addsub()
2076 float128_unpack_canonical(&pb, b, status); in float128_addsub()
2077 pr = parts_addsub(&pa, &pb, status, subtract); in float128_addsub()
2079 return float128_round_pack_canonical(pr, status); in float128_addsub()
2082 float128 float128_add(float128 a, float128 b, float_status *status) in float128_add() argument
2084 return float128_addsub(a, b, status, false); in float128_add()
2087 float128 float128_sub(float128 a, float128 b, float_status *status) in float128_sub() argument
2089 return float128_addsub(a, b, status, true); in float128_sub()
2093 floatx80_addsub(floatx80 a, floatx80 b, float_status *status, bool subtract) in floatx80_addsub() argument
2097 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_addsub()
2098 !floatx80_unpack_canonical(&pb, b, status)) { in floatx80_addsub()
2099 return floatx80_default_nan(status); in floatx80_addsub()
2102 pr = parts_addsub(&pa, &pb, status, subtract); in floatx80_addsub()
2103 return floatx80_round_pack_canonical(pr, status); in floatx80_addsub()
2106 floatx80 floatx80_add(floatx80 a, floatx80 b, float_status *status) in floatx80_add() argument
2108 return floatx80_addsub(a, b, status, false); in floatx80_add()
2111 floatx80 floatx80_sub(floatx80 a, floatx80 b, float_status *status) in floatx80_sub() argument
2113 return floatx80_addsub(a, b, status, true); in floatx80_sub()
2120 float16 QEMU_FLATTEN float16_mul(float16 a, float16 b, float_status *status) in float16_mul() argument
2124 float16_unpack_canonical(&pa, a, status); in float16_mul()
2125 float16_unpack_canonical(&pb, b, status); in float16_mul()
2126 pr = parts_mul(&pa, &pb, status); in float16_mul()
2128 return float16_round_pack_canonical(pr, status); in float16_mul()
2132 soft_f32_mul(float32 a, float32 b, float_status *status) in soft_f32_mul() argument
2136 float32_unpack_canonical(&pa, a, status); in soft_f32_mul()
2137 float32_unpack_canonical(&pb, b, status); in soft_f32_mul()
2138 pr = parts_mul(&pa, &pb, status); in soft_f32_mul()
2140 return float32_round_pack_canonical(pr, status); in soft_f32_mul()
2144 soft_f64_mul(float64 a, float64 b, float_status *status) in soft_f64_mul() argument
2148 float64_unpack_canonical(&pa, a, status); in soft_f64_mul()
2149 float64_unpack_canonical(&pb, b, status); in soft_f64_mul()
2150 pr = parts_mul(&pa, &pb, status); in soft_f64_mul()
2152 return float64_round_pack_canonical(pr, status); in soft_f64_mul()
2179 float64 float64r32_mul(float64 a, float64 b, float_status *status) in float64r32_mul() argument
2183 float64_unpack_canonical(&pa, a, status); in float64r32_mul()
2184 float64_unpack_canonical(&pb, b, status); in float64r32_mul()
2185 pr = parts_mul(&pa, &pb, status); in float64r32_mul()
2187 return float64r32_round_pack_canonical(pr, status); in float64r32_mul()
2191 bfloat16_mul(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_mul() argument
2195 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_mul()
2196 bfloat16_unpack_canonical(&pb, b, status); in bfloat16_mul()
2197 pr = parts_mul(&pa, &pb, status); in bfloat16_mul()
2199 return bfloat16_round_pack_canonical(pr, status); in bfloat16_mul()
2203 float128_mul(float128 a, float128 b, float_status *status) in float128_mul() argument
2207 float128_unpack_canonical(&pa, a, status); in float128_mul()
2208 float128_unpack_canonical(&pb, b, status); in float128_mul()
2209 pr = parts_mul(&pa, &pb, status); in float128_mul()
2211 return float128_round_pack_canonical(pr, status); in float128_mul()
2215 floatx80_mul(floatx80 a, floatx80 b, float_status *status) in floatx80_mul() argument
2219 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_mul()
2220 !floatx80_unpack_canonical(&pb, b, status)) { in floatx80_mul()
2221 return floatx80_default_nan(status); in floatx80_mul()
2224 pr = parts_mul(&pa, &pb, status); in floatx80_mul()
2225 return floatx80_round_pack_canonical(pr, status); in floatx80_mul()
2234 int scale, int flags, float_status *status) in float16_muladd_scalbn() argument
2238 float16_unpack_canonical(&pa, a, status); in float16_muladd_scalbn()
2239 float16_unpack_canonical(&pb, b, status); in float16_muladd_scalbn()
2240 float16_unpack_canonical(&pc, c, status); in float16_muladd_scalbn()
2241 pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); in float16_muladd_scalbn()
2243 return float16_round_pack_canonical(pr, status); in float16_muladd_scalbn()
2247 int flags, float_status *status) in float16_muladd() argument
2249 return float16_muladd_scalbn(a, b, c, 0, flags, status); in float16_muladd()
2254 int scale, int flags, float_status *status) in float32_muladd_scalbn() argument
2258 float32_unpack_canonical(&pa, a, status); in float32_muladd_scalbn()
2259 float32_unpack_canonical(&pb, b, status); in float32_muladd_scalbn()
2260 float32_unpack_canonical(&pc, c, status); in float32_muladd_scalbn()
2261 pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); in float32_muladd_scalbn()
2263 return float32_round_pack_canonical(pr, status); in float32_muladd_scalbn()
2268 int scale, int flags, float_status *status) in float64_muladd_scalbn() argument
2272 float64_unpack_canonical(&pa, a, status); in float64_muladd_scalbn()
2273 float64_unpack_canonical(&pb, b, status); in float64_muladd_scalbn()
2274 float64_unpack_canonical(&pc, c, status); in float64_muladd_scalbn()
2275 pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); in float64_muladd_scalbn()
2277 return float64_round_pack_canonical(pr, status); in float64_muladd_scalbn()
2422 int flags, float_status *status) in float64r32_muladd() argument
2426 float64_unpack_canonical(&pa, a, status); in float64r32_muladd()
2427 float64_unpack_canonical(&pb, b, status); in float64r32_muladd()
2428 float64_unpack_canonical(&pc, c, status); in float64r32_muladd()
2429 pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); in float64r32_muladd()
2431 return float64r32_round_pack_canonical(pr, status); in float64r32_muladd()
2435 int flags, float_status *status) in bfloat16_muladd() argument
2439 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_muladd()
2440 bfloat16_unpack_canonical(&pb, b, status); in bfloat16_muladd()
2441 bfloat16_unpack_canonical(&pc, c, status); in bfloat16_muladd()
2442 pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); in bfloat16_muladd()
2444 return bfloat16_round_pack_canonical(pr, status); in bfloat16_muladd()
2448 int flags, float_status *status) in float128_muladd() argument
2452 float128_unpack_canonical(&pa, a, status); in float128_muladd()
2453 float128_unpack_canonical(&pb, b, status); in float128_muladd()
2454 float128_unpack_canonical(&pc, c, status); in float128_muladd()
2455 pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); in float128_muladd()
2457 return float128_round_pack_canonical(pr, status); in float128_muladd()
2464 float16 float16_div(float16 a, float16 b, float_status *status) in float16_div() argument
2468 float16_unpack_canonical(&pa, a, status); in float16_div()
2469 float16_unpack_canonical(&pb, b, status); in float16_div()
2470 pr = parts_div(&pa, &pb, status); in float16_div()
2472 return float16_round_pack_canonical(pr, status); in float16_div()
2476 soft_f32_div(float32 a, float32 b, float_status *status) in soft_f32_div() argument
2480 float32_unpack_canonical(&pa, a, status); in soft_f32_div()
2481 float32_unpack_canonical(&pb, b, status); in soft_f32_div()
2482 pr = parts_div(&pa, &pb, status); in soft_f32_div()
2484 return float32_round_pack_canonical(pr, status); in soft_f32_div()
2488 soft_f64_div(float64 a, float64 b, float_status *status) in soft_f64_div() argument
2492 float64_unpack_canonical(&pa, a, status); in soft_f64_div()
2493 float64_unpack_canonical(&pb, b, status); in soft_f64_div()
2494 pr = parts_div(&pa, &pb, status); in soft_f64_div()
2496 return float64_round_pack_canonical(pr, status); in soft_f64_div()
2557 float64 float64r32_div(float64 a, float64 b, float_status *status) in float64r32_div() argument
2561 float64_unpack_canonical(&pa, a, status); in float64r32_div()
2562 float64_unpack_canonical(&pb, b, status); in float64r32_div()
2563 pr = parts_div(&pa, &pb, status); in float64r32_div()
2565 return float64r32_round_pack_canonical(pr, status); in float64r32_div()
2569 bfloat16_div(bfloat16 a, bfloat16 b, float_status *status) in bfloat16_div() argument
2573 bfloat16_unpack_canonical(&pa, a, status); in bfloat16_div()
2574 bfloat16_unpack_canonical(&pb, b, status); in bfloat16_div()
2575 pr = parts_div(&pa, &pb, status); in bfloat16_div()
2577 return bfloat16_round_pack_canonical(pr, status); in bfloat16_div()
2581 float128_div(float128 a, float128 b, float_status *status) in float128_div() argument
2585 float128_unpack_canonical(&pa, a, status); in float128_div()
2586 float128_unpack_canonical(&pb, b, status); in float128_div()
2587 pr = parts_div(&pa, &pb, status); in float128_div()
2589 return float128_round_pack_canonical(pr, status); in float128_div()
2592 floatx80 floatx80_div(floatx80 a, floatx80 b, float_status *status) in floatx80_div() argument
2596 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_div()
2597 !floatx80_unpack_canonical(&pb, b, status)) { in floatx80_div()
2598 return floatx80_default_nan(status); in floatx80_div()
2601 pr = parts_div(&pa, &pb, status); in floatx80_div()
2602 return floatx80_round_pack_canonical(pr, status); in floatx80_div()
2609 float32 float32_rem(float32 a, float32 b, float_status *status) in float32_rem() argument
2613 float32_unpack_canonical(&pa, a, status); in float32_rem()
2614 float32_unpack_canonical(&pb, b, status); in float32_rem()
2615 pr = parts_modrem(&pa, &pb, NULL, status); in float32_rem()
2617 return float32_round_pack_canonical(pr, status); in float32_rem()
2620 float64 float64_rem(float64 a, float64 b, float_status *status) in float64_rem() argument
2624 float64_unpack_canonical(&pa, a, status); in float64_rem()
2625 float64_unpack_canonical(&pb, b, status); in float64_rem()
2626 pr = parts_modrem(&pa, &pb, NULL, status); in float64_rem()
2628 return float64_round_pack_canonical(pr, status); in float64_rem()
2631 float128 float128_rem(float128 a, float128 b, float_status *status) in float128_rem() argument
2635 float128_unpack_canonical(&pa, a, status); in float128_rem()
2636 float128_unpack_canonical(&pb, b, status); in float128_rem()
2637 pr = parts_modrem(&pa, &pb, NULL, status); in float128_rem()
2639 return float128_round_pack_canonical(pr, status); in float128_rem()
2652 uint64_t *quotient, float_status *status) in floatx80_modrem() argument
2657 if (!floatx80_unpack_canonical(&pa, a, status) || in floatx80_modrem()
2658 !floatx80_unpack_canonical(&pb, b, status)) { in floatx80_modrem()
2659 return floatx80_default_nan(status); in floatx80_modrem()
2661 pr = parts_modrem(&pa, &pb, mod ? quotient : NULL, status); in floatx80_modrem()
2663 return floatx80_round_pack_canonical(pr, status); in floatx80_modrem()
2666 floatx80 floatx80_rem(floatx80 a, floatx80 b, float_status *status) in floatx80_rem() argument
2669 return floatx80_modrem(a, b, false, "ient, status); in floatx80_rem()
2672 floatx80 floatx80_mod(floatx80 a, floatx80 b, float_status *status) in floatx80_mod() argument
2675 return floatx80_modrem(a, b, true, "ient, status); in floatx80_mod()
3071 floatx80 floatx80_round_to_int(floatx80 a, float_status *status) in floatx80_round_to_int() argument
3075 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_round_to_int()
3076 return floatx80_default_nan(status); in floatx80_round_to_int()
3079 parts_round_to_int(&p, status->float_rounding_mode, 0, status, in floatx80_round_to_int()
3080 &floatx80_params[status->floatx80_rounding_precision]); in floatx80_round_to_int()
3081 return floatx80_round_pack_canonical(&p, status); in floatx80_round_to_int()
3885 float16 int64_to_float16_scalbn(int64_t a, int scale, float_status *status) in int64_to_float16_scalbn() argument
3889 parts_sint_to_float(&p, a, scale, status); in int64_to_float16_scalbn()
3890 return float16_round_pack_canonical(&p, status); in int64_to_float16_scalbn()
3893 float16 int32_to_float16_scalbn(int32_t a, int scale, float_status *status) in int32_to_float16_scalbn() argument
3895 return int64_to_float16_scalbn(a, scale, status); in int32_to_float16_scalbn()
3898 float16 int16_to_float16_scalbn(int16_t a, int scale, float_status *status) in int16_to_float16_scalbn() argument
3900 return int64_to_float16_scalbn(a, scale, status); in int16_to_float16_scalbn()
3903 float16 int64_to_float16(int64_t a, float_status *status) in int64_to_float16() argument
3905 return int64_to_float16_scalbn(a, 0, status); in int64_to_float16()
3908 float16 int32_to_float16(int32_t a, float_status *status) in int32_to_float16() argument
3910 return int64_to_float16_scalbn(a, 0, status); in int32_to_float16()
3913 float16 int16_to_float16(int16_t a, float_status *status) in int16_to_float16() argument
3915 return int64_to_float16_scalbn(a, 0, status); in int16_to_float16()
3918 float16 int8_to_float16(int8_t a, float_status *status) in int8_to_float16() argument
3920 return int64_to_float16_scalbn(a, 0, status); in int8_to_float16()
3923 float32 int64_to_float32_scalbn(int64_t a, int scale, float_status *status) in int64_to_float32_scalbn() argument
3928 if (likely(scale == 0) && can_use_fpu(status)) { in int64_to_float32_scalbn()
3934 parts64_sint_to_float(&p, a, scale, status); in int64_to_float32_scalbn()
3935 return float32_round_pack_canonical(&p, status); in int64_to_float32_scalbn()
3938 float32 int32_to_float32_scalbn(int32_t a, int scale, float_status *status) in int32_to_float32_scalbn() argument
3940 return int64_to_float32_scalbn(a, scale, status); in int32_to_float32_scalbn()
3943 float32 int16_to_float32_scalbn(int16_t a, int scale, float_status *status) in int16_to_float32_scalbn() argument
3945 return int64_to_float32_scalbn(a, scale, status); in int16_to_float32_scalbn()
3948 float32 int64_to_float32(int64_t a, float_status *status) in int64_to_float32() argument
3950 return int64_to_float32_scalbn(a, 0, status); in int64_to_float32()
3953 float32 int32_to_float32(int32_t a, float_status *status) in int32_to_float32() argument
3955 return int64_to_float32_scalbn(a, 0, status); in int32_to_float32()
3958 float32 int16_to_float32(int16_t a, float_status *status) in int16_to_float32() argument
3960 return int64_to_float32_scalbn(a, 0, status); in int16_to_float32()
3963 float64 int64_to_float64_scalbn(int64_t a, int scale, float_status *status) in int64_to_float64_scalbn() argument
3968 if (likely(scale == 0) && can_use_fpu(status)) { in int64_to_float64_scalbn()
3974 parts_sint_to_float(&p, a, scale, status); in int64_to_float64_scalbn()
3975 return float64_round_pack_canonical(&p, status); in int64_to_float64_scalbn()
3978 float64 int32_to_float64_scalbn(int32_t a, int scale, float_status *status) in int32_to_float64_scalbn() argument
3980 return int64_to_float64_scalbn(a, scale, status); in int32_to_float64_scalbn()
3983 float64 int16_to_float64_scalbn(int16_t a, int scale, float_status *status) in int16_to_float64_scalbn() argument
3985 return int64_to_float64_scalbn(a, scale, status); in int16_to_float64_scalbn()
3988 float64 int64_to_float64(int64_t a, float_status *status) in int64_to_float64() argument
3990 return int64_to_float64_scalbn(a, 0, status); in int64_to_float64()
3993 float64 int32_to_float64(int32_t a, float_status *status) in int32_to_float64() argument
3995 return int64_to_float64_scalbn(a, 0, status); in int32_to_float64()
3998 float64 int16_to_float64(int16_t a, float_status *status) in int16_to_float64() argument
4000 return int64_to_float64_scalbn(a, 0, status); in int16_to_float64()
4003 bfloat16 int64_to_bfloat16_scalbn(int64_t a, int scale, float_status *status) in int64_to_bfloat16_scalbn() argument
4007 parts_sint_to_float(&p, a, scale, status); in int64_to_bfloat16_scalbn()
4008 return bfloat16_round_pack_canonical(&p, status); in int64_to_bfloat16_scalbn()
4011 bfloat16 int32_to_bfloat16_scalbn(int32_t a, int scale, float_status *status) in int32_to_bfloat16_scalbn() argument
4013 return int64_to_bfloat16_scalbn(a, scale, status); in int32_to_bfloat16_scalbn()
4016 bfloat16 int16_to_bfloat16_scalbn(int16_t a, int scale, float_status *status) in int16_to_bfloat16_scalbn() argument
4018 return int64_to_bfloat16_scalbn(a, scale, status); in int16_to_bfloat16_scalbn()
4021 bfloat16 int8_to_bfloat16_scalbn(int8_t a, int scale, float_status *status) in int8_to_bfloat16_scalbn() argument
4023 return int64_to_bfloat16_scalbn(a, scale, status); in int8_to_bfloat16_scalbn()
4026 bfloat16 int64_to_bfloat16(int64_t a, float_status *status) in int64_to_bfloat16() argument
4028 return int64_to_bfloat16_scalbn(a, 0, status); in int64_to_bfloat16()
4031 bfloat16 int32_to_bfloat16(int32_t a, float_status *status) in int32_to_bfloat16() argument
4033 return int64_to_bfloat16_scalbn(a, 0, status); in int32_to_bfloat16()
4036 bfloat16 int16_to_bfloat16(int16_t a, float_status *status) in int16_to_bfloat16() argument
4038 return int64_to_bfloat16_scalbn(a, 0, status); in int16_to_bfloat16()
4041 bfloat16 int8_to_bfloat16(int8_t a, float_status *status) in int8_to_bfloat16() argument
4043 return int64_to_bfloat16_scalbn(a, 0, status); in int8_to_bfloat16()
4046 float128 int128_to_float128(Int128 a, float_status *status) in int128_to_float128() argument
4072 return float128_round_pack_canonical(&p, status); in int128_to_float128()
4075 float128 int64_to_float128(int64_t a, float_status *status) in int64_to_float128() argument
4079 parts_sint_to_float(&p, a, 0, status); in int64_to_float128()
4080 return float128_round_pack_canonical(&p, status); in int64_to_float128()
4083 float128 int32_to_float128(int32_t a, float_status *status) in int32_to_float128() argument
4085 return int64_to_float128(a, status); in int32_to_float128()
4088 floatx80 int64_to_floatx80(int64_t a, float_status *status) in int64_to_floatx80() argument
4092 parts_sint_to_float(&p, a, 0, status); in int64_to_floatx80()
4093 return floatx80_round_pack_canonical(&p, status); in int64_to_floatx80()
4096 floatx80 int32_to_floatx80(int32_t a, float_status *status) in int32_to_floatx80() argument
4098 return int64_to_floatx80(a, status); in int32_to_floatx80()
4105 float16 uint64_to_float16_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float16_scalbn() argument
4109 parts_uint_to_float(&p, a, scale, status); in uint64_to_float16_scalbn()
4110 return float16_round_pack_canonical(&p, status); in uint64_to_float16_scalbn()
4113 float16 uint32_to_float16_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float16_scalbn() argument
4115 return uint64_to_float16_scalbn(a, scale, status); in uint32_to_float16_scalbn()
4118 float16 uint16_to_float16_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float16_scalbn() argument
4120 return uint64_to_float16_scalbn(a, scale, status); in uint16_to_float16_scalbn()
4123 float16 uint64_to_float16(uint64_t a, float_status *status) in uint64_to_float16() argument
4125 return uint64_to_float16_scalbn(a, 0, status); in uint64_to_float16()
4128 float16 uint32_to_float16(uint32_t a, float_status *status) in uint32_to_float16() argument
4130 return uint64_to_float16_scalbn(a, 0, status); in uint32_to_float16()
4133 float16 uint16_to_float16(uint16_t a, float_status *status) in uint16_to_float16() argument
4135 return uint64_to_float16_scalbn(a, 0, status); in uint16_to_float16()
4138 float16 uint8_to_float16(uint8_t a, float_status *status) in uint8_to_float16() argument
4140 return uint64_to_float16_scalbn(a, 0, status); in uint8_to_float16()
4143 float32 uint64_to_float32_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float32_scalbn() argument
4148 if (likely(scale == 0) && can_use_fpu(status)) { in uint64_to_float32_scalbn()
4154 parts_uint_to_float(&p, a, scale, status); in uint64_to_float32_scalbn()
4155 return float32_round_pack_canonical(&p, status); in uint64_to_float32_scalbn()
4158 float32 uint32_to_float32_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float32_scalbn() argument
4160 return uint64_to_float32_scalbn(a, scale, status); in uint32_to_float32_scalbn()
4163 float32 uint16_to_float32_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float32_scalbn() argument
4165 return uint64_to_float32_scalbn(a, scale, status); in uint16_to_float32_scalbn()
4168 float32 uint64_to_float32(uint64_t a, float_status *status) in uint64_to_float32() argument
4170 return uint64_to_float32_scalbn(a, 0, status); in uint64_to_float32()
4173 float32 uint32_to_float32(uint32_t a, float_status *status) in uint32_to_float32() argument
4175 return uint64_to_float32_scalbn(a, 0, status); in uint32_to_float32()
4178 float32 uint16_to_float32(uint16_t a, float_status *status) in uint16_to_float32() argument
4180 return uint64_to_float32_scalbn(a, 0, status); in uint16_to_float32()
4183 float64 uint64_to_float64_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_float64_scalbn() argument
4188 if (likely(scale == 0) && can_use_fpu(status)) { in uint64_to_float64_scalbn()
4194 parts_uint_to_float(&p, a, scale, status); in uint64_to_float64_scalbn()
4195 return float64_round_pack_canonical(&p, status); in uint64_to_float64_scalbn()
4198 float64 uint32_to_float64_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_float64_scalbn() argument
4200 return uint64_to_float64_scalbn(a, scale, status); in uint32_to_float64_scalbn()
4203 float64 uint16_to_float64_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_float64_scalbn() argument
4205 return uint64_to_float64_scalbn(a, scale, status); in uint16_to_float64_scalbn()
4208 float64 uint64_to_float64(uint64_t a, float_status *status) in uint64_to_float64() argument
4210 return uint64_to_float64_scalbn(a, 0, status); in uint64_to_float64()
4213 float64 uint32_to_float64(uint32_t a, float_status *status) in uint32_to_float64() argument
4215 return uint64_to_float64_scalbn(a, 0, status); in uint32_to_float64()
4218 float64 uint16_to_float64(uint16_t a, float_status *status) in uint16_to_float64() argument
4220 return uint64_to_float64_scalbn(a, 0, status); in uint16_to_float64()
4223 bfloat16 uint64_to_bfloat16_scalbn(uint64_t a, int scale, float_status *status) in uint64_to_bfloat16_scalbn() argument
4227 parts_uint_to_float(&p, a, scale, status); in uint64_to_bfloat16_scalbn()
4228 return bfloat16_round_pack_canonical(&p, status); in uint64_to_bfloat16_scalbn()
4231 bfloat16 uint32_to_bfloat16_scalbn(uint32_t a, int scale, float_status *status) in uint32_to_bfloat16_scalbn() argument
4233 return uint64_to_bfloat16_scalbn(a, scale, status); in uint32_to_bfloat16_scalbn()
4236 bfloat16 uint16_to_bfloat16_scalbn(uint16_t a, int scale, float_status *status) in uint16_to_bfloat16_scalbn() argument
4238 return uint64_to_bfloat16_scalbn(a, scale, status); in uint16_to_bfloat16_scalbn()
4241 bfloat16 uint8_to_bfloat16_scalbn(uint8_t a, int scale, float_status *status) in uint8_to_bfloat16_scalbn() argument
4243 return uint64_to_bfloat16_scalbn(a, scale, status); in uint8_to_bfloat16_scalbn()
4246 bfloat16 uint64_to_bfloat16(uint64_t a, float_status *status) in uint64_to_bfloat16() argument
4248 return uint64_to_bfloat16_scalbn(a, 0, status); in uint64_to_bfloat16()
4251 bfloat16 uint32_to_bfloat16(uint32_t a, float_status *status) in uint32_to_bfloat16() argument
4253 return uint64_to_bfloat16_scalbn(a, 0, status); in uint32_to_bfloat16()
4256 bfloat16 uint16_to_bfloat16(uint16_t a, float_status *status) in uint16_to_bfloat16() argument
4258 return uint64_to_bfloat16_scalbn(a, 0, status); in uint16_to_bfloat16()
4261 bfloat16 uint8_to_bfloat16(uint8_t a, float_status *status) in uint8_to_bfloat16() argument
4263 return uint64_to_bfloat16_scalbn(a, 0, status); in uint8_to_bfloat16()
4266 float128 uint64_to_float128(uint64_t a, float_status *status) in uint64_to_float128() argument
4270 parts_uint_to_float(&p, a, 0, status); in uint64_to_float128()
4271 return float128_round_pack_canonical(&p, status); in uint64_to_float128()
4274 float128 uint128_to_float128(Int128 a, float_status *status) in uint128_to_float128() argument
4296 return float128_round_pack_canonical(&p, status); in uint128_to_float128()
4581 float16 float16_scalbn(float16 a, int n, float_status *status) in float16_scalbn() argument
4585 float16_unpack_canonical(&p, a, status); in float16_scalbn()
4586 parts_scalbn(&p, n, status); in float16_scalbn()
4587 return float16_round_pack_canonical(&p, status); in float16_scalbn()
4590 float32 float32_scalbn(float32 a, int n, float_status *status) in float32_scalbn() argument
4594 float32_unpack_canonical(&p, a, status); in float32_scalbn()
4595 parts_scalbn(&p, n, status); in float32_scalbn()
4596 return float32_round_pack_canonical(&p, status); in float32_scalbn()
4599 float64 float64_scalbn(float64 a, int n, float_status *status) in float64_scalbn() argument
4603 float64_unpack_canonical(&p, a, status); in float64_scalbn()
4604 parts_scalbn(&p, n, status); in float64_scalbn()
4605 return float64_round_pack_canonical(&p, status); in float64_scalbn()
4608 bfloat16 bfloat16_scalbn(bfloat16 a, int n, float_status *status) in bfloat16_scalbn() argument
4612 bfloat16_unpack_canonical(&p, a, status); in bfloat16_scalbn()
4613 parts_scalbn(&p, n, status); in bfloat16_scalbn()
4614 return bfloat16_round_pack_canonical(&p, status); in bfloat16_scalbn()
4617 float128 float128_scalbn(float128 a, int n, float_status *status) in float128_scalbn() argument
4621 float128_unpack_canonical(&p, a, status); in float128_scalbn()
4622 parts_scalbn(&p, n, status); in float128_scalbn()
4623 return float128_round_pack_canonical(&p, status); in float128_scalbn()
4626 floatx80 floatx80_scalbn(floatx80 a, int n, float_status *status) in floatx80_scalbn() argument
4630 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_scalbn()
4631 return floatx80_default_nan(status); in floatx80_scalbn()
4633 parts_scalbn(&p, n, status); in floatx80_scalbn()
4634 return floatx80_round_pack_canonical(&p, status); in floatx80_scalbn()
4641 float16 QEMU_FLATTEN float16_sqrt(float16 a, float_status *status) in float16_sqrt() argument
4645 float16_unpack_canonical(&p, a, status); in float16_sqrt()
4646 parts_sqrt(&p, status, &float16_params); in float16_sqrt()
4647 return float16_round_pack_canonical(&p, status); in float16_sqrt()
4651 soft_f32_sqrt(float32 a, float_status *status) in soft_f32_sqrt() argument
4655 float32_unpack_canonical(&p, a, status); in soft_f32_sqrt()
4656 parts_sqrt(&p, status, &float32_params); in soft_f32_sqrt()
4657 return float32_round_pack_canonical(&p, status); in soft_f32_sqrt()
4661 soft_f64_sqrt(float64 a, float_status *status) in soft_f64_sqrt() argument
4665 float64_unpack_canonical(&p, a, status); in soft_f64_sqrt()
4666 parts_sqrt(&p, status, &float64_params); in soft_f64_sqrt()
4667 return float64_round_pack_canonical(&p, status); in soft_f64_sqrt()
4724 float64 float64r32_sqrt(float64 a, float_status *status) in float64r32_sqrt() argument
4728 float64_unpack_canonical(&p, a, status); in float64r32_sqrt()
4729 parts_sqrt(&p, status, &float64_params); in float64r32_sqrt()
4730 return float64r32_round_pack_canonical(&p, status); in float64r32_sqrt()
4733 bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float_status *status) in bfloat16_sqrt() argument
4737 bfloat16_unpack_canonical(&p, a, status); in bfloat16_sqrt()
4738 parts_sqrt(&p, status, &bfloat16_params); in bfloat16_sqrt()
4739 return bfloat16_round_pack_canonical(&p, status); in bfloat16_sqrt()
4742 float128 QEMU_FLATTEN float128_sqrt(float128 a, float_status *status) in float128_sqrt() argument
4746 float128_unpack_canonical(&p, a, status); in float128_sqrt()
4747 parts_sqrt(&p, status, &float128_params); in float128_sqrt()
4748 return float128_round_pack_canonical(&p, status); in float128_sqrt()
4765 float32 float32_log2(float32 a, float_status *status) in float32_log2() argument
4769 float32_unpack_canonical(&p, a, status); in float32_log2()
4770 parts_log2(&p, status, &float32_params); in float32_log2()
4771 return float32_round_pack_canonical(&p, status); in float32_log2()
4774 float64 float64_log2(float64 a, float_status *status) in float64_log2() argument
4778 float64_unpack_canonical(&p, a, status); in float64_log2()
4779 parts_log2(&p, status, &float64_params); in float64_log2()
4780 return float64_round_pack_canonical(&p, status); in float64_log2()
4787 float16 float16_default_nan(float_status *status) in float16_default_nan() argument
4791 parts_default_nan(&p, status); in float16_default_nan()
4796 float32 float32_default_nan(float_status *status) in float32_default_nan() argument
4800 parts_default_nan(&p, status); in float32_default_nan()
4805 float64 float64_default_nan(float_status *status) in float64_default_nan() argument
4809 parts_default_nan(&p, status); in float64_default_nan()
4814 float128 float128_default_nan(float_status *status) in float128_default_nan() argument
4818 parts_default_nan(&p, status); in float128_default_nan()
4823 bfloat16 bfloat16_default_nan(float_status *status) in bfloat16_default_nan() argument
4827 parts_default_nan(&p, status); in bfloat16_default_nan()
4836 float16 float16_silence_nan(float16 a, float_status *status) in float16_silence_nan() argument
4842 parts_silence_nan(&p, status); in float16_silence_nan()
4847 float32 float32_silence_nan(float32 a, float_status *status) in float32_silence_nan() argument
4853 parts_silence_nan(&p, status); in float32_silence_nan()
4858 float64 float64_silence_nan(float64 a, float_status *status) in float64_silence_nan() argument
4864 parts_silence_nan(&p, status); in float64_silence_nan()
4869 bfloat16 bfloat16_silence_nan(bfloat16 a, float_status *status) in bfloat16_silence_nan() argument
4875 parts_silence_nan(&p, status); in bfloat16_silence_nan()
4880 float128 float128_silence_nan(float128 a, float_status *status) in float128_silence_nan() argument
4886 parts_silence_nan(&p, status); in float128_silence_nan()
4896 static bool parts_squash_denormal(FloatParts64 p, float_status *status) in parts_squash_denormal() argument
4899 float_raise(float_flag_input_denormal_flushed, status); in parts_squash_denormal()
4906 float16 float16_squash_input_denormal(float16 a, float_status *status) in float16_squash_input_denormal() argument
4908 if (status->flush_inputs_to_zero) { in float16_squash_input_denormal()
4912 if (parts_squash_denormal(p, status)) { in float16_squash_input_denormal()
4919 float32 float32_squash_input_denormal(float32 a, float_status *status) in float32_squash_input_denormal() argument
4921 if (status->flush_inputs_to_zero) { in float32_squash_input_denormal()
4925 if (parts_squash_denormal(p, status)) { in float32_squash_input_denormal()
4932 float64 float64_squash_input_denormal(float64 a, float_status *status) in float64_squash_input_denormal() argument
4934 if (status->flush_inputs_to_zero) { in float64_squash_input_denormal()
4938 if (parts_squash_denormal(p, status)) { in float64_squash_input_denormal()
4945 bfloat16 bfloat16_squash_input_denormal(bfloat16 a, float_status *status) in bfloat16_squash_input_denormal() argument
4947 if (status->flush_inputs_to_zero) { in bfloat16_squash_input_denormal()
4951 if (parts_squash_denormal(p, status)) { in bfloat16_squash_input_denormal()
4981 floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b, float_status *status) in propagateFloatx80NaN() argument
4985 if (!floatx80_unpack_canonical(&pa, a, status) || in propagateFloatx80NaN()
4986 !floatx80_unpack_canonical(&pb, b, status)) { in propagateFloatx80NaN()
4987 return floatx80_default_nan(status); in propagateFloatx80NaN()
4990 pr = parts_pick_nan(&pa, &pb, status); in propagateFloatx80NaN()
4991 return floatx80_round_pack_canonical(pr, status); in propagateFloatx80NaN()
5020 float_status *status) in roundAndPackFloatx80() argument
5026 roundingMode = status->float_rounding_mode; in roundAndPackFloatx80()
5067 if (status->flush_to_zero) { in roundAndPackFloatx80()
5068 float_raise(float_flag_output_denormal_flushed, status); in roundAndPackFloatx80()
5071 isTiny = status->tininess_before_rounding in roundAndPackFloatx80()
5078 float_raise(float_flag_underflow, status); in roundAndPackFloatx80()
5081 float_raise(float_flag_inexact, status); in roundAndPackFloatx80()
5094 float_raise(float_flag_inexact, status); in roundAndPackFloatx80()
5135 float_raise(float_flag_overflow | float_flag_inexact, status); in roundAndPackFloatx80()
5142 return floatx80_default_inf(zSign, status); in roundAndPackFloatx80()
5145 isTiny = status->tininess_before_rounding in roundAndPackFloatx80()
5152 float_raise(float_flag_underflow, status); in roundAndPackFloatx80()
5155 float_raise(float_flag_inexact, status); in roundAndPackFloatx80()
5185 float_raise(float_flag_inexact, status); in roundAndPackFloatx80()
5218 float_status *status) in normalizeRoundAndPackFloatx80() argument
5231 zSig0, zSig1, status); in normalizeRoundAndPackFloatx80()
5272 float32 float32_exp2(float32 a, float_status *status) in float32_exp2() argument
5277 float32_unpack_canonical(&xp, a, status); in float32_exp2()
5284 parts_return_nan(&xp, status); in float32_exp2()
5285 return float32_round_pack_canonical(&xp, status); in float32_exp2()
5295 float_raise(float_flag_inexact, status); in float32_exp2()
5297 float64_unpack_canonical(&tp, float64_ln2, status); in float32_exp2()
5298 xp = *parts_mul(&xp, &tp, status); in float32_exp2()
5301 float64_unpack_canonical(&rp, float64_one, status); in float32_exp2()
5304 float64_unpack_canonical(&tp, float32_exp2_coefficients[i], status); in float32_exp2()
5305 rp = *parts_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status); in float32_exp2()
5306 xnp = *parts_mul(&xnp, &xp, status); in float32_exp2()
5309 return float32_round_pack_canonical(&rp, status); in float32_exp2()
5320 floatx80 floatx80_round(floatx80 a, float_status *status) in floatx80_round() argument
5324 if (!floatx80_unpack_canonical(&p, a, status)) { in floatx80_round()
5325 return floatx80_default_nan(status); in floatx80_round()
5327 return floatx80_round_pack_canonical(&p, status); in floatx80_round()