[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 7/9] tests/tcg: add float_madds test to multi
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v1 7/9] tests/tcg: add float_madds test to multiarch |
Date: |
Tue, 17 Sep 2019 22:00:44 +0100 |
User-agent: |
mu4e 1.3.4; emacs 27.0.50 |
Richard Henderson <address@hidden> writes:
> 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?
To replicate the 1841491 test case where the same number is used for
a/b/c
>
>> + 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>.
get_f<N> wraps the index with a mod op.
>
>> +#if defined(__arm__)
>> + r = __builtin_fmaf(a, b, c);
>> +#else
>> + r = __builtin_fmaf(a, b, c);
>> +#endif
>
> Eh?
Ahh I was going to hardcode the arm madd instruction in as the builtin
wasn't expanding. I tried setting -march in the CFLAGS but that didn't
trigger it either on my buster arm-hf compiler. Any ideas how to get the
compiler to do the right thing?
>
>> +/* 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.
ok.
>
>
> r~
--
Alex Bennée
[Qemu-devel] [PATCH v1 9/9] tests/tcg: add refs for PPC float_[convs|madds] tests (FAILS TESTS), Alex Bennée, 2019/09/17
Re: [Qemu-devel] [PATCH v1 0/9] testing/next (docker, podman, float), no-reply, 2019/09/18