Move INIT_ARCH_EXT call from libm-test-support to libm-test-driver.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 14 Feb 2017 00:15:48 +0000 (00:15 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 14 Feb 2017 00:15:48 +0000 (00:15 +0000)
libmvec tests involve calling INIT_ARCH_EXT during initialization then
CHECK_ARCH_EXT before testing each function to see if the processor
being used for testing supports the required instruction set
extensions.

After my refactoring of libm-test infrastructure, the INIT_ARCH_EXT
call is in libm-test-support.c, built only once per floating-point
type.  Now, in fact all definitions of this macro are empty, but given
that the definitions in sysdeps/x86_64/fpu/math-tests-arch.h are
conditional on REQUIRE_* macros defined in particular vector tests, it
seems more correct for the INIT_ARCH_EXT call to go instead in
libm-test-driver.c which gets built separately with those REQUIRE_*
macros properly defined.  This patch moves the call there.

Tested for x86_64 and x86.

* math/libm-test-support.h: Do not include <math-tests-arch.h>
here.
* math/libm-test-support.c (libm_test_init): Do not call
INIT_ARCH_EXT here.
* math/libm-test-driver.c: Include <math-tests-arch.h>.
(main): Call INIT_ARCH_EXT.

ChangeLog
math/libm-test-driver.c
math/libm-test-support.c
math/libm-test-support.h

index 27f41f7ad043c28a5a46a233795d6e65c3fc5b45..f83f37ad7c982a0ce67a99cc88d556a86d58bb28 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-02-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * math/libm-test-support.h: Do not include <math-tests-arch.h>
+       here.
+       * math/libm-test-support.c (libm_test_init): Do not call
+       INIT_ARCH_EXT here.
+       * math/libm-test-driver.c: Include <math-tests-arch.h>.
+       (main): Call INIT_ARCH_EXT.
+
 2017-02-12  Gabriel F. T. Gomes  <gftg@linux.vnet.ibm.com>
 
        [BZ #21130]
index 1539cd7e4d3af08b2f5f26138835857adf1d7224..d24c5aadaf0a5aa719ca8f5f56d1cef132538399 100644 (file)
@@ -18,6 +18,8 @@
 
 #include "libm-test-support.h"
 
+#include <math-tests-arch.h>
+
 /* Flags set by the including file.  */
 const int flag_test_errno = TEST_ERRNO;
 const int flag_test_exceptions = TEST_EXCEPTIONS;
@@ -1010,6 +1012,7 @@ int
 main (int argc, char **argv)
 {
   libm_test_init (argc, argv);
+  INIT_ARCH_EXT;
   do_test ();
   return libm_test_finish ();
 }
index d387f813d0f3cc7e110bb7894976832af52b0299..8890c1cbdda4ac7211cff2c948c7c7bf2eedfa48 100644 (file)
@@ -1182,8 +1182,6 @@ libm_test_init (int argc, char **argv)
   initialize ();
   fputs (test_msg, stdout);
 
-  INIT_ARCH_EXT;
-
   check_ulp ();
 }
 
index 5c9af04f1a68f6a5f31e6f58675c13b86d14ae0c..2b9549714814e6c93ac2c0b5044c7285505dd7b9 100644 (file)
@@ -30,7 +30,6 @@
 #include <stdio.h>
 #include <tininess.h>
 #include <math-tests.h>
-#include <math-tests-arch.h>
 #include <nan-high-order-bit.h>
 
 extern const int flag_test_errno;