]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Use helper functions to print double +/- inf/nan for x86 fxtract testcase
authorPaul Floyd <pjfloyd@wanadoo.fr>
Fri, 22 May 2026 19:06:53 +0000 (21:06 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Fri, 22 May 2026 19:06:53 +0000 (21:06 +0200)
Similar to recent commit for sse4 testcases

none/tests/x86/Makefile.am
none/tests/x86/filter_inf_nan [deleted file]
none/tests/x86/fxtract.c
none/tests/x86/fxtract.stdout.exp
none/tests/x86/fxtract.stdout.exp-older-glibc [deleted file]
none/tests/x86/fxtract.vgtest

index da72d3e4959df32799a353c1d32dc12108b10b55..eb43883e9579d18f8b653b8486b935b796188a4d 100644 (file)
@@ -1,7 +1,7 @@
 
 include $(top_srcdir)/Makefile.tool-tests.am
 
-dist_noinst_SCRIPTS = filter_cpuid filter_inf_nan filter_stderr gen_insn_test.pl
+dist_noinst_SCRIPTS = filter_cpuid filter_stderr gen_insn_test.pl
 
 # Used by fb_test_i386.c
 noinst_HEADERS = fb_test_i386.h \
@@ -56,7 +56,6 @@ EXTRA_DIST = \
        fpu_lazy_eflags.stderr.exp fpu_lazy_eflags.stdout.exp \
        fpu_lazy_eflags.vgtest \
        fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \
-       fxtract.stdout.exp-older-glibc \
        getseg.stdout.exp getseg.stderr.exp getseg.vgtest \
        gnu_binutils_nop.vgtest \
        incdec_alt.stdout.exp incdec_alt.stderr.exp incdec_alt.vgtest \
diff --git a/none/tests/x86/filter_inf_nan b/none/tests/x86/filter_inf_nan
deleted file mode 100755 (executable)
index f70958c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-
-# Solaris libc prints 'Infinity' or 'infinity' instead of 'inf' and 'NaN' instead of 'nan'.
-# Filter these differences here.
-sed "s/-[Ii]nfinity/     -inf/g" |
-sed "s/[Ii]nfinity/     inf/g"   |
-sed "s/NaN/nan/g"
-
-exit 0
-
index f8c9bc41a32bbc5ff60822dbb255e34d461891db..aab51aa4f00375d2619b359ee290c9464fdf7820 100644 (file)
@@ -1,6 +1,7 @@
 #include "tests/asm.h"
 #include <stdio.h>
 #include <math.h>
+#include <stdbool.h>
 
 double arg, res1, res2;
 
@@ -17,12 +18,41 @@ VG_SYM(do_fxtract) ":\n"
 ".previous\n"
 );
 
+static inline void print_double (double d, bool first)
+{
+   int width = first ? 17 : 14;
+   if (isnan(d)) {
+      if (signbit(d)) {
+         printf("%*s", width, "-nan");
+      } else {
+         printf("%*s", width, "nan");
+      }
+   } else if (isinf(d)) {
+      if (signbit(d)) {
+         printf("%*s", width, "-inf");
+      } else {
+         printf("%*s", width, "inf");
+      }
+   } else {
+      if (first) {
+         printf ("%*.10e", width, d);
+      } else {
+         printf ("%*.10f", width, d);
+      }
+   }
+}
+
 void try ( double x )
 {
   arg = x * 1.414213562373049;
   res1 = res2 = 0.0;
   do_fxtract();
-  printf("%17.10e  -> %14.10f %14.10f\n", arg, res1, res2);
+  print_double(arg, true);
+  printf("  -> ");
+  print_double(res1, false);
+  printf(" ");
+  print_double(res2, false);
+  printf("\n");
 }
 
 int main ( void )
@@ -35,8 +65,8 @@ int main ( void )
      try( 1.27 + (double)(i*10 - 200) );
 
   try(+0.0);
-  try(1.0 / 0.0);
-  try(sqrt(-1.0));
+  try(__builtin_inf());
+  try(__builtin_nan(""));
 
   try(5.1e-308);
   try(4.1e-308);
@@ -69,8 +99,8 @@ int main ( void )
      try( - (1.27 + (double)(i*10 - 200)) );
 
   try(-0.0);
-  try(-(1.0 / 0.0));
-  try(-sqrt(-1.0));
+  try(-__builtin_inf());
+  try(-__builtin_nan(""));
 
   try(-5.1e-308);
   try(-4.1e-308);
index b82f306b04779dc4b503a5008288d6fd97bf38e6..13863dbf75b82cf005fcc9b1ecd737818b8da9a7 100644 (file)
@@ -40,7 +40,7 @@
  2.7049662808e+02  ->   1.0566274534   8.0000000000
  0.0000000000e+00  ->   0.0000000000           -inf
               inf  ->            inf            inf
-             -nan  ->           -nan           -nan
+              nan  ->            nan            nan
 7.2124891681e-308  ->   1.6207302828 -1021.0000000000
 5.7982756057e-308  ->   1.3029400313 -1021.0000000000
 4.3840620434e-308  ->   1.9702995595 -1022.0000000000
 -2.7049662808e+02  ->  -1.0566274534   8.0000000000
 -0.0000000000e+00  ->  -0.0000000000           -inf
              -inf  ->           -inf            inf
-              nan  ->            nan            nan
+             -nan  ->           -nan           -nan
 -7.2124891681e-308  ->  -1.6207302828 -1021.0000000000
 -5.7982756057e-308  ->  -1.3029400313 -1021.0000000000
 -4.3840620434e-308  ->  -1.9702995595 -1022.0000000000
diff --git a/none/tests/x86/fxtract.stdout.exp-older-glibc b/none/tests/x86/fxtract.stdout.exp-older-glibc
deleted file mode 100644 (file)
index 4508fd6..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
--2.8104666125e+02  ->  -1.0978385205   8.0000000000
--2.6690452563e+02  ->  -1.0425958032   8.0000000000
--2.5276239000e+02  ->  -1.9747061719   7.0000000000
--2.3862025438e+02  ->  -1.8642207373   7.0000000000
--2.2447811876e+02  ->  -1.7537353028   7.0000000000
--2.1033598313e+02  ->  -1.6432498682   7.0000000000
--1.9619384751e+02  ->  -1.5327644337   7.0000000000
--1.8205171188e+02  ->  -1.4222789991   7.0000000000
--1.6790957626e+02  ->  -1.3117935645   7.0000000000
--1.5376744064e+02  ->  -1.2013081300   7.0000000000
--1.3962530501e+02  ->  -1.0908226954   7.0000000000
--1.2548316939e+02  ->  -1.9606745217   6.0000000000
--1.1134103377e+02  ->  -1.7397036526   6.0000000000
--9.7198898142e+01  ->  -1.5187327835   6.0000000000
--8.3056762518e+01  ->  -1.2977619143   6.0000000000
--6.8914626894e+01  ->  -1.0767910452   6.0000000000
--5.4772491271e+01  ->  -1.7116403522   5.0000000000
--4.0630355647e+01  ->  -1.2696986140   5.0000000000
--2.6488220023e+01  ->  -1.6555137515   4.0000000000
--1.2346084400e+01  ->  -1.5432605499   3.0000000000
- 1.7960512242e+00  ->   1.7960512242   0.0000000000
- 1.5938186848e+01  ->   1.9922733560   3.0000000000
- 3.0080322472e+01  ->   1.8800201545   4.0000000000
- 4.4222458095e+01  ->   1.3819518155   5.0000000000
- 5.8364593719e+01  ->   1.8238935537   5.0000000000
- 7.2506729343e+01  ->   1.1329176460   6.0000000000
- 8.6648864967e+01  ->   1.3538885151   6.0000000000
- 1.0079100059e+02  ->   1.5748593842   6.0000000000
- 1.1493313621e+02  ->   1.7958302533   6.0000000000
- 1.2907527184e+02  ->   1.0084005612   7.0000000000
- 1.4321740746e+02  ->   1.1188859958   7.0000000000
- 1.5735954309e+02  ->   1.2293714304   7.0000000000
- 1.7150167871e+02  ->   1.3398568649   7.0000000000
- 1.8564381433e+02  ->   1.4503422995   7.0000000000
- 1.9978594996e+02  ->   1.5608277340   7.0000000000
- 2.1392808558e+02  ->   1.6713131686   7.0000000000
- 2.2807022120e+02  ->   1.7817986032   7.0000000000
- 2.4221235683e+02  ->   1.8922840377   7.0000000000
- 2.5635449245e+02  ->   1.0013847361   8.0000000000
- 2.7049662808e+02  ->   1.0566274534   8.0000000000
- 0.0000000000e+00  ->   0.0000000000           -inf
-              inf  ->            inf            inf
-              nan  ->            nan            nan
-7.2124891681e-308  ->   1.6207302828 -1021.0000000000
-5.7982756057e-308  ->   1.3029400313 -1021.0000000000
-4.3840620434e-308  ->   1.9702995595 -1022.0000000000
-2.9698484810e-308  ->   1.3347190565 -1022.0000000000
-1.5556349186e-308  ->   1.3982771068 -1023.0000000000
-1.2727922061e-308  ->   1.1440449055 -1023.0000000000
-9.8994949366e-309  ->   1.7796254086 -1024.0000000000
-8.4852813742e-309  ->   1.5253932074 -1024.0000000000
-7.0710678119e-309  ->   1.2711610062 -1024.0000000000
-5.6568542495e-309  ->   1.0169288049 -1024.0000000000
-4.2426406871e-309  ->   1.5253932074 -1025.0000000000
-1.4142135624e-309  ->   1.0169288049 -1026.0000000000
-1.8384182682e-320  ->   1.8168945312 -1063.0000000000
-1.8379242025e-321  ->   1.4531250000 -1066.0000000000
-1.8280428896e-322  ->   1.1562500000 -1069.0000000000
-1.9762625834e-323  ->   1.0000000000 -1072.0000000000
-1.4821969375e-323  ->   1.5000000000 -1073.0000000000
-4.9406564584e-324  ->   1.0000000000 -1074.0000000000
-4.9406564584e-324  ->   1.0000000000 -1074.0000000000
-4.9406564584e-324  ->   1.0000000000 -1074.0000000000
- 0.0000000000e+00  ->   0.0000000000           -inf
- 0.0000000000e+00  ->   0.0000000000           -inf
-
- 2.8104666125e+02  ->   1.0978385205   8.0000000000
- 2.6690452563e+02  ->   1.0425958032   8.0000000000
- 2.5276239000e+02  ->   1.9747061719   7.0000000000
- 2.3862025438e+02  ->   1.8642207373   7.0000000000
- 2.2447811876e+02  ->   1.7537353028   7.0000000000
- 2.1033598313e+02  ->   1.6432498682   7.0000000000
- 1.9619384751e+02  ->   1.5327644337   7.0000000000
- 1.8205171188e+02  ->   1.4222789991   7.0000000000
- 1.6790957626e+02  ->   1.3117935645   7.0000000000
- 1.5376744064e+02  ->   1.2013081300   7.0000000000
- 1.3962530501e+02  ->   1.0908226954   7.0000000000
- 1.2548316939e+02  ->   1.9606745217   6.0000000000
- 1.1134103377e+02  ->   1.7397036526   6.0000000000
- 9.7198898142e+01  ->   1.5187327835   6.0000000000
- 8.3056762518e+01  ->   1.2977619143   6.0000000000
- 6.8914626894e+01  ->   1.0767910452   6.0000000000
- 5.4772491271e+01  ->   1.7116403522   5.0000000000
- 4.0630355647e+01  ->   1.2696986140   5.0000000000
- 2.6488220023e+01  ->   1.6555137515   4.0000000000
- 1.2346084400e+01  ->   1.5432605499   3.0000000000
--1.7960512242e+00  ->  -1.7960512242   0.0000000000
--1.5938186848e+01  ->  -1.9922733560   3.0000000000
--3.0080322472e+01  ->  -1.8800201545   4.0000000000
--4.4222458095e+01  ->  -1.3819518155   5.0000000000
--5.8364593719e+01  ->  -1.8238935537   5.0000000000
--7.2506729343e+01  ->  -1.1329176460   6.0000000000
--8.6648864967e+01  ->  -1.3538885151   6.0000000000
--1.0079100059e+02  ->  -1.5748593842   6.0000000000
--1.1493313621e+02  ->  -1.7958302533   6.0000000000
--1.2907527184e+02  ->  -1.0084005612   7.0000000000
--1.4321740746e+02  ->  -1.1188859958   7.0000000000
--1.5735954309e+02  ->  -1.2293714304   7.0000000000
--1.7150167871e+02  ->  -1.3398568649   7.0000000000
--1.8564381433e+02  ->  -1.4503422995   7.0000000000
--1.9978594996e+02  ->  -1.5608277340   7.0000000000
--2.1392808558e+02  ->  -1.6713131686   7.0000000000
--2.2807022120e+02  ->  -1.7817986032   7.0000000000
--2.4221235683e+02  ->  -1.8922840377   7.0000000000
--2.5635449245e+02  ->  -1.0013847361   8.0000000000
--2.7049662808e+02  ->  -1.0566274534   8.0000000000
--0.0000000000e+00  ->  -0.0000000000           -inf
-             -inf  ->           -inf            inf
-              nan  ->            nan            nan
--7.2124891681e-308  ->  -1.6207302828 -1021.0000000000
--5.7982756057e-308  ->  -1.3029400313 -1021.0000000000
--4.3840620434e-308  ->  -1.9702995595 -1022.0000000000
--2.9698484810e-308  ->  -1.3347190565 -1022.0000000000
--1.5556349186e-308  ->  -1.3982771068 -1023.0000000000
--1.2727922061e-308  ->  -1.1440449055 -1023.0000000000
--9.8994949366e-309  ->  -1.7796254086 -1024.0000000000
--8.4852813742e-309  ->  -1.5253932074 -1024.0000000000
--7.0710678119e-309  ->  -1.2711610062 -1024.0000000000
--5.6568542495e-309  ->  -1.0169288049 -1024.0000000000
--4.2426406871e-309  ->  -1.5253932074 -1025.0000000000
--1.4142135624e-309  ->  -1.0169288049 -1026.0000000000
--1.8384182682e-320  ->  -1.8168945312 -1063.0000000000
--1.8379242025e-321  ->  -1.4531250000 -1066.0000000000
--1.8280428896e-322  ->  -1.1562500000 -1069.0000000000
--1.9762625834e-323  ->  -1.0000000000 -1072.0000000000
--1.4821969375e-323  ->  -1.5000000000 -1073.0000000000
--4.9406564584e-324  ->  -1.0000000000 -1074.0000000000
--4.9406564584e-324  ->  -1.0000000000 -1074.0000000000
--4.9406564584e-324  ->  -1.0000000000 -1074.0000000000
--0.0000000000e+00  ->  -0.0000000000           -inf
--0.0000000000e+00  ->  -0.0000000000           -inf
index 4b5efc5bf96dbc039220b47d49ca67d3ac8a75a5..341b15a41f5055db033ac37a63af49b3e516f4cd 100644 (file)
@@ -1,2 +1 @@
 prog: fxtract
-stdout_filter: filter_inf_nan