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: Cédric Le Goater
Subject: Re: [PATCH 35/35] test/tcg/ppc64le: Add float reference files
Date: Mon, 22 Nov 2021 14:04:34 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0

On 11/22/21 12:16, Richard Henderson wrote:
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.

Looks fine. Will you send this patch independently ?

The patchset doesn't seem to break anything.

Thanks,

C.



reply via email to

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