qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 35/35] test/tcg/ppc64le: Add float reference files


From: Richard Henderson
Subject: Re: [PATCH 35/35] test/tcg/ppc64le: Add float reference files
Date: Mon, 22 Nov 2021 12:16:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 11/22/21 10:43 AM, Richard Henderson wrote:
On 11/21/21 6:47 PM, Cédric Le Goater wrote:
I am getting an error with this test. See below.
...
  ### Rounding to nearest
  from single: f32(-nan:0xffa00000)
-  to double: f64(-nan:0x00fff4000000000000) (INVALID)
+  to double: f64(-nan:0x00fff4000000000000) (OK)

Well that's disconcerting.

I can replicate this failure on an x86_64 host, but do not see the same error on a power9 ppc64le host.

Bah.  The test case is buggy.

It reads the fpscr for the flags *after* having gone through the printf for the result, at which point you are at the mercy of whatever other fp arithmetic libc chooses to do.

Fixed with

--- a/tests/tcg/multiarch/float_convs.c
+++ b/tests/tcg/multiarch/float_convs.c
@@ -51,8 +51,8 @@ static void convert_single_to_double(float input)

     output = input;

-    out_fmt = fmt_f64(output);
     flag_fmt = fmt_flags();
+    out_fmt = fmt_f64(output);
     printf("  to double: %s (%s)\n", out_fmt, flag_fmt);
     free(out_fmt);
     free(flag_fmt);

But this alone of course causes other "failures", because we've got some incorrect reference files.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]