On 9/17/19 2:41 PM, Alex Bennée wrote:
> + /* From https://bugs.launchpad.net/qemu/+bug/1841491 */
> + add_f32_const(0x1.ffffffffffffcp-1022);
> + add_f32_const(0x1.0000000000001p-1);
> + add_f32_const(0x0.0000000000001p-1022);
These three constants do not fit in float32.
> + add_f32_const(0x8p-152);
> + add_f32_const(0x8p-152);
> + add_f32_const(0x8p-152);
Why are you adding 3 of the same?
> + for (j = 0; j < nums; j++) {
> + for (k = 0; k < 3; k++) {
> + a = get_f32(j + ((k)%3));
> + b = get_f32(j + ((k+1)%3));
> + c = get_f32(j + ((k+2)%3));
How does this not overflow nums?
There does not appear to be an assert on overflow in get_f<N>.
> +#if defined(__arm__)
> + r = __builtin_fmaf(a, b, c);
> +#else
> + r = __builtin_fmaf(a, b, c);
> +#endif
Eh?
> +/* Number of constants in each table */
> +int get_num_f16();
> +int get_num_f32();
> +int get_num_f64();
This is not c++; you want (void) to indicate no arguments.
r~