* [PATCH] x86-64: Add test-vector-abi.h for vector ABI test
@ 2021-10-14 3:54 H.J. Lu
2021-10-14 4:23 ` Noah Goldstein
0 siblings, 1 reply; 7+ messages in thread
From: H.J. Lu @ 2021-10-14 3:54 UTC (permalink / raw)
To: libc-alpha
Add a template for vector ABI test and use it for vector sincos/sincosf
ABI tests.
---
sysdeps/x86_64/fpu/Makefile | 6 ---
.../fpu/test-double-libmvec-sincos-avx.c | 1 +
.../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
.../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
.../fpu/test-double-libmvec-sincos-main.c | 2 +-
.../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
.../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
.../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
.../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
.../fpu/test-float-libmvec-sincosf-main.c | 2 +-
.../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
12 files changed, 56 insertions(+), 101 deletions(-)
create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
index 1b4406380d..6643f77c5d 100644
--- a/sysdeps/x86_64/fpu/Makefile
+++ b/sysdeps/x86_64/fpu/Makefile
@@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
-CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
-CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
-CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
endif
endif
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
index 896f1bcbaf..fbc0dbe3d9 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
@@ -1 +1,2 @@
+#define REQUIRE_AVX
#include "test-double-libmvec-sincos.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
index 896f1bcbaf..8725907915 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
@@ -1 +1,2 @@
-#include "test-double-libmvec-sincos.c"
+#define REQUIRE_AVX2
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
index 896f1bcbaf..c0f24ceaee 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
@@ -1 +1,2 @@
-#include "test-double-libmvec-sincos.c"
+#define REQUIRE_AVX512F
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
index 0fe2369099..48fade87c3 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
@@ -24,7 +24,7 @@ double* s_ptrs[N];
double* c_ptrs[N];
int
-test_sincos_abi (void)
+test_vector_abi (void)
{
int i;
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
index 5f9eb4914f..60261f83b8 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
@@ -1,44 +1 @@
-/* Test for vector sincos ABI.
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <math-tests-arch.h>
-
-extern int test_sincos_abi (void);
-
-int arch_check = 1;
-
-static void
-check_arch (void)
-{
- CHECK_ARCH_EXT;
- arch_check = 0;
-}
-
-static int
-do_test (void)
-{
- check_arch ();
-
- if (arch_check)
- return 77;
-
- return test_sincos_abi ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
index 5b45f0a055..8e0fb492d7 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
@@ -1 +1,2 @@
-#include "test-float-libmvec-sincosf.c"
+#define REQUIRE_AVX
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
index 5b45f0a055..8725907915 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
@@ -1 +1,2 @@
-#include "test-float-libmvec-sincosf.c"
+#define REQUIRE_AVX2
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
index 5b45f0a055..c0f24ceaee 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
@@ -1 +1,2 @@
-#include "test-float-libmvec-sincosf.c"
+#define REQUIRE_AVX512F
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
index c7246cffc3..5166583194 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
@@ -24,7 +24,7 @@ float *s_ptrs[N];
float *c_ptrs[N];
int
-test_sincosf_abi (void)
+test_vector_abi (void)
{
int i;
for(i = 0; i < N; i++)
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
index 4538003e9c..60261f83b8 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
@@ -1,44 +1 @@
-/* Test for vector sincosf ABI.
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <math-tests-arch.h>
-
-extern int test_sincosf_abi (void);
-
-int arch_check = 1;
-
-static void
-check_arch (void)
-{
- CHECK_ARCH_EXT;
- arch_check = 0;
-}
-
-static int
-do_test (void)
-{
- check_arch ();
-
- if (arch_check)
- return 77;
-
- return test_sincosf_abi ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-vector-abi.h b/sysdeps/x86_64/fpu/test-vector-abi.h
new file mode 100644
index 0000000000..cde24e6021
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-vector-abi.h
@@ -0,0 +1,41 @@
+/* Test for vector ABI.
+ Copyright (C) 2016-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/platform/x86.h>
+#include <support/test-driver.h>
+
+extern int test_vector_abi (void);
+
+static int
+do_test (void)
+{
+#if defined REQUIRE_AVX
+ if (!CPU_FEATURE_ACTIVE (AVX))
+ return EXIT_UNSUPPORTED;
+#elif defined REQUIRE_AVX2
+ if (!CPU_FEATURE_ACTIVE (AVX2))
+ return EXIT_UNSUPPORTED;
+#elif defined REQUIRE_AVX512F
+ if (!CPU_FEATURE_ACTIVE (AVX512F))
+ return EXIT_UNSUPPORTED;
+#endif
+
+ return test_vector_abi ();
+}
+
+#include <support/test-driver.c>
--
2.31.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] x86-64: Add test-vector-abi.h for vector ABI test
2021-10-14 3:54 [PATCH] x86-64: Add test-vector-abi.h for vector ABI test H.J. Lu
@ 2021-10-14 4:23 ` Noah Goldstein
2021-10-14 13:32 ` [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h H.J. Lu
0 siblings, 1 reply; 7+ messages in thread
From: Noah Goldstein @ 2021-10-14 4:23 UTC (permalink / raw)
To: H.J. Lu; +Cc: GNU C Library
On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> Add a template for vector ABI test and use it for vector sincos/sincosf
> ABI tests.
> ---
> sysdeps/x86_64/fpu/Makefile | 6 ---
> .../fpu/test-double-libmvec-sincos-avx.c | 1 +
> .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
> .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
> .../fpu/test-double-libmvec-sincos-main.c | 2 +-
> .../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
> .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
> .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
> .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
> .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
> .../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
> sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
> 12 files changed, 56 insertions(+), 101 deletions(-)
> create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
>
> diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
> index 1b4406380d..6643f77c5d 100644
> --- a/sysdeps/x86_64/fpu/Makefile
> +++ b/sysdeps/x86_64/fpu/Makefile
> @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
> CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
>
> CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
> -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
> CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
> -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
> CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
> -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
> CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
>
> CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
> -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
> CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
> -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
> CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
> -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
> CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
> endif
> endif
> diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> index 896f1bcbaf..fbc0dbe3d9 100644
> --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> @@ -1 +1,2 @@
> +#define REQUIRE_AVX
> #include "test-double-libmvec-sincos.c"
Should this be: #include "test-vector-abi.h"?
If so can test-double-libmvec-sincos.c be deleted?
> diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
> index 896f1bcbaf..8725907915 100644
> --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
> +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2.c
> @@ -1 +1,2 @@
> -#include "test-double-libmvec-sincos.c"
> +#define REQUIRE_AVX2
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
> index 896f1bcbaf..c0f24ceaee 100644
> --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
> +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
> @@ -1 +1,2 @@
> -#include "test-double-libmvec-sincos.c"
> +#define REQUIRE_AVX512F
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
> index 0fe2369099..48fade87c3 100644
> --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
> +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
> @@ -24,7 +24,7 @@ double* s_ptrs[N];
> double* c_ptrs[N];
>
> int
> -test_sincos_abi (void)
> +test_vector_abi (void)
> {
> int i;
>
> diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
> index 5f9eb4914f..60261f83b8 100644
> --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
> +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
> @@ -1,44 +1 @@
> -/* Test for vector sincos ABI.
> - Copyright (C) 2016-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; if not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <math-tests-arch.h>
> -
> -extern int test_sincos_abi (void);
> -
> -int arch_check = 1;
> -
> -static void
> -check_arch (void)
> -{
> - CHECK_ARCH_EXT;
> - arch_check = 0;
> -}
> -
> -static int
> -do_test (void)
> -{
> - check_arch ();
> -
> - if (arch_check)
> - return 77;
> -
> - return test_sincos_abi ();
> -}
> -
> -#define TEST_FUNCTION do_test ()
> -#include "../../../test-skeleton.c"
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
> index 5b45f0a055..8e0fb492d7 100644
> --- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
> +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx.c
> @@ -1 +1,2 @@
> -#include "test-float-libmvec-sincosf.c"
> +#define REQUIRE_AVX
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
> index 5b45f0a055..8725907915 100644
> --- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
> +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2.c
> @@ -1 +1,2 @@
> -#include "test-float-libmvec-sincosf.c"
> +#define REQUIRE_AVX2
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
> index 5b45f0a055..c0f24ceaee 100644
> --- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
> +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
> @@ -1 +1,2 @@
> -#include "test-float-libmvec-sincosf.c"
> +#define REQUIRE_AVX512F
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
> index c7246cffc3..5166583194 100644
> --- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
> +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
> @@ -24,7 +24,7 @@ float *s_ptrs[N];
> float *c_ptrs[N];
>
> int
> -test_sincosf_abi (void)
> +test_vector_abi (void)
> {
> int i;
> for(i = 0; i < N; i++)
> diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
> index 4538003e9c..60261f83b8 100644
> --- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
> +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
> @@ -1,44 +1 @@
> -/* Test for vector sincosf ABI.
> - Copyright (C) 2016-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; if not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <math-tests-arch.h>
> -
> -extern int test_sincosf_abi (void);
> -
> -int arch_check = 1;
> -
> -static void
> -check_arch (void)
> -{
> - CHECK_ARCH_EXT;
> - arch_check = 0;
> -}
> -
> -static int
> -do_test (void)
> -{
> - check_arch ();
> -
> - if (arch_check)
> - return 77;
> -
> - return test_sincosf_abi ();
> -}
> -
> -#define TEST_FUNCTION do_test ()
> -#include "../../../test-skeleton.c"
> +#include "test-vector-abi.h"
> diff --git a/sysdeps/x86_64/fpu/test-vector-abi.h b/sysdeps/x86_64/fpu/test-vector-abi.h
> new file mode 100644
> index 0000000000..cde24e6021
> --- /dev/null
> +++ b/sysdeps/x86_64/fpu/test-vector-abi.h
> @@ -0,0 +1,41 @@
> +/* Test for vector ABI.
> + Copyright (C) 2016-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#include <sys/platform/x86.h>
> +#include <support/test-driver.h>
> +
> +extern int test_vector_abi (void);
> +
> +static int
> +do_test (void)
> +{
> +#if defined REQUIRE_AVX
> + if (!CPU_FEATURE_ACTIVE (AVX))
> + return EXIT_UNSUPPORTED;
> +#elif defined REQUIRE_AVX2
> + if (!CPU_FEATURE_ACTIVE (AVX2))
> + return EXIT_UNSUPPORTED;
> +#elif defined REQUIRE_AVX512F
> + if (!CPU_FEATURE_ACTIVE (AVX512F))
> + return EXIT_UNSUPPORTED;
> +#endif
> +
> + return test_vector_abi ();
> +}
> +
> +#include <support/test-driver.c>
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
2021-10-14 4:23 ` Noah Goldstein
@ 2021-10-14 13:32 ` H.J. Lu
2021-10-14 16:12 ` Noah Goldstein
0 siblings, 1 reply; 7+ messages in thread
From: H.J. Lu @ 2021-10-14 13:32 UTC (permalink / raw)
To: Noah Goldstein, Pandey, Sunil K; +Cc: GNU C Library
[-- Attachment #1: Type: text/plain, Size: 3478 bytes --]
On Wed, Oct 13, 2021 at 9:23 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
> <libc-alpha@sourceware.org> wrote:
> >
> > Add a template for vector ABI test and use it for vector sincos/sincosf
> > ABI tests.
> > ---
> > sysdeps/x86_64/fpu/Makefile | 6 ---
> > .../fpu/test-double-libmvec-sincos-avx.c | 1 +
> > .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
> > .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
> > .../fpu/test-double-libmvec-sincos-main.c | 2 +-
> > .../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
> > .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
> > .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
> > .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
> > .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
> > .../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
> > sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
> > 12 files changed, 56 insertions(+), 101 deletions(-)
> > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
> >
> > diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
> > index 1b4406380d..6643f77c5d 100644
> > --- a/sysdeps/x86_64/fpu/Makefile
> > +++ b/sysdeps/x86_64/fpu/Makefile
> > @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
> > CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
> >
> > CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
> > -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
> > CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
> > -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
> > CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
> > -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
> > CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
> >
> > CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
> > -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
> > CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
> > -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
> > CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
> > -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
> > CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
> > endif
> > endif
> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > index 896f1bcbaf..fbc0dbe3d9 100644
> > --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > @@ -1 +1,2 @@
> > +#define REQUIRE_AVX
> > #include "test-double-libmvec-sincos.c"
>
> Should this be: #include "test-vector-abi.h"?
Yes.
> If so can test-double-libmvec-sincos.c be deleted?
No. We need it to build test-double-libmvec-sincos.
Here is the v2 patch. The main changes are
1. Rename all test-XXX-main.c files to test-XXX.c.
2. Use test-libmvec*.c to run the libmvec ABI tests.
OK for master?
Thanks.
--
H.J.
[-- Attachment #2: v2-0001-x86-64-Add-test-vector-abi.h-test-vector-abi-sinc.patch --]
[-- Type: text/x-patch, Size: 17976 bytes --]
From ac3c3de1e8576cf4cee093d3d465f033a7c6070f Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 13 Oct 2021 13:46:52 -0700
Subject: [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
Add templates for vector ABI test and use them for vector sincos/sincosf
ABI tests.
---
sysdeps/x86_64/fpu/Makefile | 74 ++++++++-----------
.../fpu/test-double-libmvec-sincos-avx-main.c | 1 -
.../test-double-libmvec-sincos-avx2-main.c | 1 -
.../test-double-libmvec-sincos-avx512-main.c | 1 -
...c => test-double-libmvec-sincos-avx512f.c} | 0
.../x86_64/fpu/test-double-libmvec-sincos.c | 47 +-----------
.../fpu/test-float-libmvec-sincosf-avx-main.c | 1 -
.../test-float-libmvec-sincosf-avx2-main.c | 1 -
.../test-float-libmvec-sincosf-avx512-main.c | 1 -
...c => test-float-libmvec-sincosf-avx512f.c} | 0
.../x86_64/fpu/test-float-libmvec-sincosf.c | 47 +-----------
sysdeps/x86_64/fpu/test-libmvec-avx.c | 2 +
sysdeps/x86_64/fpu/test-libmvec-avx2.c | 2 +
sysdeps/x86_64/fpu/test-libmvec-avx512f.c | 2 +
sysdeps/x86_64/fpu/test-libmvec.c | 1 +
...sincos-main.c => test-vector-abi-sincos.h} | 30 +++++---
...bmvec-sincosf-main.c => test-vector-abi.h} | 41 +++++-----
17 files changed, 80 insertions(+), 172 deletions(-)
delete mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx-main.c
delete mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2-main.c
delete mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512-main.c
rename sysdeps/x86_64/fpu/{test-double-libmvec-sincos-avx512.c => test-double-libmvec-sincos-avx512f.c} (100%)
delete mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx-main.c
delete mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2-main.c
delete mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512-main.c
rename sysdeps/x86_64/fpu/{test-float-libmvec-sincosf-avx512.c => test-float-libmvec-sincosf-avx512f.c} (100%)
create mode 100644 sysdeps/x86_64/fpu/test-libmvec-avx.c
create mode 100644 sysdeps/x86_64/fpu/test-libmvec-avx2.c
create mode 100644 sysdeps/x86_64/fpu/test-libmvec-avx512f.c
create mode 100644 sysdeps/x86_64/fpu/test-libmvec.c
rename sysdeps/x86_64/fpu/{test-double-libmvec-sincos-main.c => test-vector-abi-sincos.h} (58%)
rename sysdeps/x86_64/fpu/{test-float-libmvec-sincosf-main.c => test-vector-abi.h} (62%)
diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
index 1b4406380d..e5a65750c0 100644
--- a/sysdeps/x86_64/fpu/Makefile
+++ b/sysdeps/x86_64/fpu/Makefile
@@ -31,58 +31,48 @@ libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \
tests += test-double-libmvec-sincos test-double-libmvec-sincos-avx \
test-double-libmvec-sincos-avx2 test-float-libmvec-sincosf \
test-float-libmvec-sincosf-avx test-float-libmvec-sincosf-avx2
-test-extras += test-double-libmvec-sincos-avx-main \
- test-double-libmvec-sincos-avx2-main \
- test-double-libmvec-sincos-main \
- test-float-libmvec-sincosf-avx-main \
- test-float-libmvec-sincosf-avx2-main \
- test-float-libmvec-sincosf-main
-extra-test-objs += test-double-libmvec-sincos-avx-main.o \
- test-double-libmvec-sincos-avx2-main.o \
- test-double-libmvec-sincos-main.o \
- test-float-libmvec-sincosf-avx-main.o \
- test-float-libmvec-sincosf-avx2-main.o\
- test-float-libmvec-sincosf-main.o
+test-extras += test-libmvec test-libmvec-avx \
+ test-libmvec-avx2 test-libmvec-avx512f
+extra-test-objs += test-libmvec.o test-libmvec-avx.o \
+ test-libmvec-avx2.o test-libmvec-avx512f.o
$(objpfx)test-double-libmvec-sincos: \
$(objpfx)test-double-libmvec-sincos.o \
- $(objpfx)test-double-libmvec-sincos-main.o $(libmvec)
+ $(objpfx)test-libmvec.o $(libmvec)
$(objpfx)test-double-libmvec-sincos-avx: \
$(objpfx)test-double-libmvec-sincos-avx.o \
- $(objpfx)test-double-libmvec-sincos-avx-main.o $(libmvec)
+ $(objpfx)test-libmvec-avx.o $(libmvec)
$(objpfx)test-double-libmvec-sincos-avx2: \
$(objpfx)test-double-libmvec-sincos-avx2.o \
- $(objpfx)test-double-libmvec-sincos-avx2-main.o $(libmvec)
+ $(objpfx)test-libmvec-avx2.o $(libmvec)
$(objpfx)test-float-libmvec-sincosf: \
$(objpfx)test-float-libmvec-sincosf.o \
- $(objpfx)test-float-libmvec-sincosf-main.o $(libmvec)
+ $(objpfx)test-libmvec.o $(libmvec)
$(objpfx)test-float-libmvec-sincosf-avx: \
$(objpfx)test-float-libmvec-sincosf-avx.o \
- $(objpfx)test-float-libmvec-sincosf-avx-main.o $(libmvec)
+ $(objpfx)test-libmvec-avx.o $(libmvec)
$(objpfx)test-float-libmvec-sincosf-avx2: \
$(objpfx)test-float-libmvec-sincosf-avx2.o \
- $(objpfx)test-float-libmvec-sincosf-avx2-main.o $(libmvec)
+ $(objpfx)test-libmvec-avx2.o $(libmvec)
libmvec-tests += double-vlen8 float-vlen16
-tests += test-double-libmvec-sincos-avx512 \
- test-float-libmvec-sincosf-avx512
-test-extras += test-double-libmvec-sincos-avx512-main \
- test-float-libmvec-sincosf-avx512-main
-extra-test-objs += test-double-libmvec-sincos-avx512-main.o \
- test-float-libmvec-sincosf-avx512-main.o
+tests += test-double-libmvec-sincos-avx512f \
+ test-float-libmvec-sincosf-avx512f
+test-extras += test-libmvec-avx512f
+extra-test-objs += test-libmvec-avx512f.o
-$(objpfx)test-double-libmvec-sincos-avx512: \
- $(objpfx)test-double-libmvec-sincos-avx512.o \
- $(objpfx)test-double-libmvec-sincos-avx512-main.o $(libmvec)
+$(objpfx)test-double-libmvec-sincos-avx512f: \
+ $(objpfx)test-double-libmvec-sincos-avx512f.o \
+ $(objpfx)test-libmvec-avx512f.o $(libmvec)
-$(objpfx)test-float-libmvec-sincosf-avx512: \
- $(objpfx)test-float-libmvec-sincosf-avx512.o \
- $(objpfx)test-float-libmvec-sincosf-avx512-main.o $(libmvec)
+$(objpfx)test-float-libmvec-sincosf-avx512f: \
+ $(objpfx)test-float-libmvec-sincosf-avx512f.o \
+ $(objpfx)test-libmvec-avx512f.o $(libmvec)
double-vlen2-funcs = cos exp log pow sin sincos
double-vlen4-funcs = cos exp log pow sin sincos
@@ -107,21 +97,15 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
-CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
-CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
-CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
-CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
-CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
-CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
-CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
-
-CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
-CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
-CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
-CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
-CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
+CFLAGS-test-double-libmvec-sincos.c = $(libmvec-sincos-cflags)
+CFLAGS-test-double-libmvec-sincos-avx.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
+CFLAGS-test-double-libmvec-sincos-avx2.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
+CFLAGS-test-double-libmvec-sincos-avx512f.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
+
+CFLAGS-test-float-libmvec-sincosf.c = $(libmvec-sincos-cflags)
+CFLAGS-test-float-libmvec-sincosf-avx.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
+CFLAGS-test-float-libmvec-sincosf-avx2.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
+CFLAGS-test-float-libmvec-sincosf-avx512f.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
endif
endif
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx-main.c
deleted file mode 100644
index fc2ffea314..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-sincos-main.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2-main.c
deleted file mode 100644
index fc2ffea314..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx2-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-sincos-main.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512-main.c
deleted file mode 100644
index fc2ffea314..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-sincos-main.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512f.c
similarity index 100%
rename from sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
rename to sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512f.c
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
index 5f9eb4914f..9ccdbd6d6e 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
@@ -1,44 +1,3 @@
-/* Test for vector sincos ABI.
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <math-tests-arch.h>
-
-extern int test_sincos_abi (void);
-
-int arch_check = 1;
-
-static void
-check_arch (void)
-{
- CHECK_ARCH_EXT;
- arch_check = 0;
-}
-
-static int
-do_test (void)
-{
- check_arch ();
-
- if (arch_check)
- return 77;
-
- return test_sincos_abi ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
+#define LIBMVEC_TYPE double
+#define LIBMVEC_SINCOS sincos
+#include "test-vector-abi-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx-main.c
deleted file mode 100644
index 558e2ac649..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-sincosf-main.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2-main.c
deleted file mode 100644
index 558e2ac649..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx2-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-sincosf-main.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512-main.c
deleted file mode 100644
index 558e2ac649..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-sincosf-main.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512f.c
similarity index 100%
rename from sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
rename to sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512f.c
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
index 4538003e9c..2b77f25db1 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
@@ -1,44 +1,3 @@
-/* Test for vector sincosf ABI.
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <math-tests-arch.h>
-
-extern int test_sincosf_abi (void);
-
-int arch_check = 1;
-
-static void
-check_arch (void)
-{
- CHECK_ARCH_EXT;
- arch_check = 0;
-}
-
-static int
-do_test (void)
-{
- check_arch ();
-
- if (arch_check)
- return 77;
-
- return test_sincosf_abi ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
+#define LIBMVEC_TYPE float
+#define LIBMVEC_SINCOS sincosf
+#include "test-vector-abi-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-libmvec-avx.c b/sysdeps/x86_64/fpu/test-libmvec-avx.c
new file mode 100644
index 0000000000..8e0fb492d7
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-libmvec-avx.c
@@ -0,0 +1,2 @@
+#define REQUIRE_AVX
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-libmvec-avx2.c b/sysdeps/x86_64/fpu/test-libmvec-avx2.c
new file mode 100644
index 0000000000..8725907915
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-libmvec-avx2.c
@@ -0,0 +1,2 @@
+#define REQUIRE_AVX2
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-libmvec-avx512f.c b/sysdeps/x86_64/fpu/test-libmvec-avx512f.c
new file mode 100644
index 0000000000..c0f24ceaee
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-libmvec-avx512f.c
@@ -0,0 +1,2 @@
+#define REQUIRE_AVX512F
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-libmvec.c b/sysdeps/x86_64/fpu/test-libmvec.c
new file mode 100644
index 0000000000..60261f83b8
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-libmvec.c
@@ -0,0 +1 @@
+#include "test-vector-abi.h"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c b/sysdeps/x86_64/fpu/test-vector-abi-sincos.h
similarity index 58%
rename from sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
rename to sysdeps/x86_64/fpu/test-vector-abi-sincos.h
index 0fe2369099..8863677a69 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
+++ b/sysdeps/x86_64/fpu/test-vector-abi-sincos.h
@@ -1,4 +1,4 @@
-/* Test for vector sincos ABI.
+/* Test for vector sincos/sincosf ABI.
Copyright (C) 2016-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -17,27 +17,33 @@
<https://www.gnu.org/licenses/>. */
#include <math.h>
+#include <support/test-driver.h>
+
+/* Since libsupport_nonshared.a is placed before test-libmvec*.o, which
+ defines do_test, reference support_test_main here to include it to
+ avoid undefined reference to support_test_main. The libmvec ABI test
+ doesn't need other symbols in libsupport_nonshared.a. */
+__typeof (support_test_main) *support_test_main_p = support_test_main;
#define N 1000
-double x[N], s[N], c[N];
-double* s_ptrs[N];
-double* c_ptrs[N];
+LIBMVEC_TYPE x[N], s[N], c[N];
+LIBMVEC_TYPE *s_ptrs[N];
+LIBMVEC_TYPE *c_ptrs[N];
int
-test_sincos_abi (void)
+test_vector_abi (void)
{
int i;
-
for(i = 0; i < N; i++)
- {
- x[i] = i / 3;
- s_ptrs[i] = &s[i];
- c_ptrs[i] = &c[i];
- }
+ {
+ x[i] = i / 3;
+ s_ptrs[i] = &s[i];
+ c_ptrs[i] = &c[i];
+ }
#pragma omp simd
for(i = 0; i < N; i++)
- sincos (x[i], s_ptrs[i], c_ptrs[i]);
+ LIBMVEC_SINCOS (x[i], s_ptrs[i], c_ptrs[i]);
return 0;
}
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c b/sysdeps/x86_64/fpu/test-vector-abi.h
similarity index 62%
rename from sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
rename to sysdeps/x86_64/fpu/test-vector-abi.h
index c7246cffc3..cde24e6021 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
+++ b/sysdeps/x86_64/fpu/test-vector-abi.h
@@ -1,4 +1,4 @@
-/* Test for vector sincosf ABI.
+/* Test for vector ABI.
Copyright (C) 2016-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -16,27 +16,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <math.h>
+#include <sys/platform/x86.h>
+#include <support/test-driver.h>
-#define N 1000
-float x[N], s[N], c[N];
-float *s_ptrs[N];
-float *c_ptrs[N];
+extern int test_vector_abi (void);
-int
-test_sincosf_abi (void)
+static int
+do_test (void)
{
- int i;
- for(i = 0; i < N; i++)
- {
- x[i] = i / 3;
- s_ptrs[i] = &s[i];
- c_ptrs[i] = &c[i];
- }
-
-#pragma omp simd
- for(i = 0; i < N; i++)
- sincosf (x[i], s_ptrs[i], c_ptrs[i]);
-
- return 0;
+#if defined REQUIRE_AVX
+ if (!CPU_FEATURE_ACTIVE (AVX))
+ return EXIT_UNSUPPORTED;
+#elif defined REQUIRE_AVX2
+ if (!CPU_FEATURE_ACTIVE (AVX2))
+ return EXIT_UNSUPPORTED;
+#elif defined REQUIRE_AVX512F
+ if (!CPU_FEATURE_ACTIVE (AVX512F))
+ return EXIT_UNSUPPORTED;
+#endif
+
+ return test_vector_abi ();
}
+
+#include <support/test-driver.c>
--
2.31.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
2021-10-14 13:32 ` [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h H.J. Lu
@ 2021-10-14 16:12 ` Noah Goldstein
2021-10-14 16:36 ` Sunil Pandey
2021-10-14 18:43 ` H.J. Lu
0 siblings, 2 replies; 7+ messages in thread
From: Noah Goldstein @ 2021-10-14 16:12 UTC (permalink / raw)
To: H.J. Lu; +Cc: Pandey, Sunil K, GNU C Library
On Thu, Oct 14, 2021 at 8:32 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Wed, Oct 13, 2021 at 9:23 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
> > <libc-alpha@sourceware.org> wrote:
> > >
> > > Add a template for vector ABI test and use it for vector sincos/sincosf
> > > ABI tests.
> > > ---
> > > sysdeps/x86_64/fpu/Makefile | 6 ---
> > > .../fpu/test-double-libmvec-sincos-avx.c | 1 +
> > > .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
> > > .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
> > > .../fpu/test-double-libmvec-sincos-main.c | 2 +-
> > > .../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
> > > .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
> > > .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
> > > .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
> > > .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
> > > .../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
> > > sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
> > > 12 files changed, 56 insertions(+), 101 deletions(-)
> > > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
> > >
> > > diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
> > > index 1b4406380d..6643f77c5d 100644
> > > --- a/sysdeps/x86_64/fpu/Makefile
> > > +++ b/sysdeps/x86_64/fpu/Makefile
> > > @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
> > > CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
> > >
> > > CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
> > > -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
> > > CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
> > > -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
> > > CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
> > > -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
> > > CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
> > >
> > > CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
> > > -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
> > > CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
> > > -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
> > > CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
> > > -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
> > > CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
> > > endif
> > > endif
> > > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > index 896f1bcbaf..fbc0dbe3d9 100644
> > > --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > @@ -1 +1,2 @@
> > > +#define REQUIRE_AVX
> > > #include "test-double-libmvec-sincos.c"
> >
> > Should this be: #include "test-vector-abi.h"?
>
> Yes.
>
> > If so can test-double-libmvec-sincos.c be deleted?
>
> No. We need it to build test-double-libmvec-sincos.
>
> Here is the v2 patch. The main changes are
>
> 1. Rename all test-XXX-main.c files to test-XXX.c.
> 2. Use test-libmvec*.c to run the libmvec ABI tests.
>
> OK for master?
Should "mathvec/check-abi-libmvec'' be the only test in mathvec?
If so then LGTM.
>
> Thanks.
>
> --
> H.J.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
2021-10-14 16:12 ` Noah Goldstein
@ 2021-10-14 16:36 ` Sunil Pandey
2021-10-14 18:45 ` H.J. Lu
2021-10-14 18:43 ` H.J. Lu
1 sibling, 1 reply; 7+ messages in thread
From: Sunil Pandey @ 2021-10-14 16:36 UTC (permalink / raw)
To: Noah Goldstein; +Cc: H.J. Lu, GNU C Library, Pandey, Sunil K
On Thu, Oct 14, 2021 at 9:13 AM Noah Goldstein via Libc-alpha <
libc-alpha@sourceware.org> wrote:
> On Thu, Oct 14, 2021 at 8:32 AM H.J. Lu <hjl.tools@gmail.com> wrote:
> >
> > On Wed, Oct 13, 2021 at 9:23 PM Noah Goldstein <goldstein.w.n@gmail.com>
> wrote:
> > >
> > > On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
> > > <libc-alpha@sourceware.org> wrote:
> > > >
> > > > Add a template for vector ABI test and use it for vector
> sincos/sincosf
> > > > ABI tests.
> > > > ---
> > > > sysdeps/x86_64/fpu/Makefile | 6 ---
> > > > .../fpu/test-double-libmvec-sincos-avx.c | 1 +
> > > > .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
> > > > .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
> > > > .../fpu/test-double-libmvec-sincos-main.c | 2 +-
> > > > .../x86_64/fpu/test-double-libmvec-sincos.c | 45
> +------------------
> > > > .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
> > > > .../x86_64/fpu/test-float-libmvec-sincosf.c | 45
> +------------------
> > > > sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
> > > > 12 files changed, 56 insertions(+), 101 deletions(-)
> > > > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
> > > >
> > > > diff --git a/sysdeps/x86_64/fpu/Makefile
> b/sysdeps/x86_64/fpu/Makefile
> > > > index 1b4406380d..6643f77c5d 100644
> > > > --- a/sysdeps/x86_64/fpu/Makefile
> > > > +++ b/sysdeps/x86_64/fpu/Makefile
> > > > @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c =
> $(double-vlen4-arch-ext2-cflags)
> > > > CFLAGS-test-float-vlen8-avx2-wrappers.c =
> $(float-vlen8-arch-ext2-cflags)
> > > >
> > > > CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
> > > > CFLAGS-test-double-libmvec-sincos-avx-main.c =
> $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
> > > > CFLAGS-test-double-libmvec-sincos-avx2-main.c =
> $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
> > > > CFLAGS-test-double-libmvec-sincos-avx512-main.c =
> $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
> > > >
> > > > CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
> > > > CFLAGS-test-float-libmvec-sincosf-avx-main.c =
> $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
> > > > CFLAGS-test-float-libmvec-sincosf-avx2-main.c =
> $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
> > > > CFLAGS-test-float-libmvec-sincosf-avx512-main.c =
> $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
> > > > endif
> > > > endif
> > > > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > index 896f1bcbaf..fbc0dbe3d9 100644
> > > > --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > @@ -1 +1,2 @@
> > > > +#define REQUIRE_AVX
> > > > #include "test-double-libmvec-sincos.c"
> > >
> > > Should this be: #include "test-vector-abi.h"?
> >
> > Yes.
> >
> > > If so can test-double-libmvec-sincos.c be deleted?
> >
> > No. We need it to build test-double-libmvec-sincos.
> >
> > Here is the v2 patch. The main changes are
> >
> > 1. Rename all test-XXX-main.c files to test-XXX.c.
> > 2. Use test-libmvec*.c to run the libmvec ABI tests.
> >
> > OK for master?
>
> Should "mathvec/check-abi-libmvec'' be the only test in mathvec?
>
> If so then LGTM.
>
> >
> > Thanks.
> >
> > --
> > H.J.
>
v2 patch, file name looks inconsistent.
sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512f.c
sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512f.c
sysdeps/x86_64/fpu/test-libmvec-avx512f.c
Should these file named as
sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
sysdeps/x86_64/fpu/test-libmvec-avx512.c
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
2021-10-14 16:12 ` Noah Goldstein
2021-10-14 16:36 ` Sunil Pandey
@ 2021-10-14 18:43 ` H.J. Lu
1 sibling, 0 replies; 7+ messages in thread
From: H.J. Lu @ 2021-10-14 18:43 UTC (permalink / raw)
To: Noah Goldstein; +Cc: Pandey, Sunil K, GNU C Library
On Thu, Oct 14, 2021 at 9:12 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> On Thu, Oct 14, 2021 at 8:32 AM H.J. Lu <hjl.tools@gmail.com> wrote:
> >
> > On Wed, Oct 13, 2021 at 9:23 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> > >
> > > On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
> > > <libc-alpha@sourceware.org> wrote:
> > > >
> > > > Add a template for vector ABI test and use it for vector sincos/sincosf
> > > > ABI tests.
> > > > ---
> > > > sysdeps/x86_64/fpu/Makefile | 6 ---
> > > > .../fpu/test-double-libmvec-sincos-avx.c | 1 +
> > > > .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
> > > > .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
> > > > .../fpu/test-double-libmvec-sincos-main.c | 2 +-
> > > > .../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
> > > > .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
> > > > .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
> > > > .../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
> > > > sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
> > > > 12 files changed, 56 insertions(+), 101 deletions(-)
> > > > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
> > > >
> > > > diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
> > > > index 1b4406380d..6643f77c5d 100644
> > > > --- a/sysdeps/x86_64/fpu/Makefile
> > > > +++ b/sysdeps/x86_64/fpu/Makefile
> > > > @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
> > > > CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
> > > >
> > > > CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
> > > > CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
> > > > CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
> > > > -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
> > > > CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
> > > >
> > > > CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
> > > > CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
> > > > CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
> > > > -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
> > > > CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
> > > > endif
> > > > endif
> > > > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > index 896f1bcbaf..fbc0dbe3d9 100644
> > > > --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
> > > > @@ -1 +1,2 @@
> > > > +#define REQUIRE_AVX
> > > > #include "test-double-libmvec-sincos.c"
> > >
> > > Should this be: #include "test-vector-abi.h"?
> >
> > Yes.
> >
> > > If so can test-double-libmvec-sincos.c be deleted?
> >
> > No. We need it to build test-double-libmvec-sincos.
> >
> > Here is the v2 patch. The main changes are
> >
> > 1. Rename all test-XXX-main.c files to test-XXX.c.
> > 2. Use test-libmvec*.c to run the libmvec ABI tests.
> >
> > OK for master?
>
> Should "mathvec/check-abi-libmvec'' be the only test in mathvec?
Yes. It checks:
sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
This ABI test checks if libmvec can be used by GCC.
> If so then LGTM.
>
> >
> > Thanks.
> >
> > --
> > H.J.
--
H.J.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h
2021-10-14 16:36 ` Sunil Pandey
@ 2021-10-14 18:45 ` H.J. Lu
0 siblings, 0 replies; 7+ messages in thread
From: H.J. Lu @ 2021-10-14 18:45 UTC (permalink / raw)
To: Sunil Pandey; +Cc: Noah Goldstein, GNU C Library, Pandey, Sunil K
On Thu, Oct 14, 2021 at 9:36 AM Sunil Pandey <skpgkp2@gmail.com> wrote:
>
>
>
> On Thu, Oct 14, 2021 at 9:13 AM Noah Goldstein via Libc-alpha <libc-alpha@sourceware.org> wrote:
>>
>> On Thu, Oct 14, 2021 at 8:32 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>> >
>> > On Wed, Oct 13, 2021 at 9:23 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>> > >
>> > > On Wed, Oct 13, 2021 at 11:54 PM H.J. Lu via Libc-alpha
>> > > <libc-alpha@sourceware.org> wrote:
>> > > >
>> > > > Add a template for vector ABI test and use it for vector sincos/sincosf
>> > > > ABI tests.
>> > > > ---
>> > > > sysdeps/x86_64/fpu/Makefile | 6 ---
>> > > > .../fpu/test-double-libmvec-sincos-avx.c | 1 +
>> > > > .../fpu/test-double-libmvec-sincos-avx2.c | 3 +-
>> > > > .../fpu/test-double-libmvec-sincos-avx512.c | 3 +-
>> > > > .../fpu/test-double-libmvec-sincos-main.c | 2 +-
>> > > > .../x86_64/fpu/test-double-libmvec-sincos.c | 45 +------------------
>> > > > .../fpu/test-float-libmvec-sincosf-avx.c | 3 +-
>> > > > .../fpu/test-float-libmvec-sincosf-avx2.c | 3 +-
>> > > > .../fpu/test-float-libmvec-sincosf-avx512.c | 3 +-
>> > > > .../fpu/test-float-libmvec-sincosf-main.c | 2 +-
>> > > > .../x86_64/fpu/test-float-libmvec-sincosf.c | 45 +------------------
>> > > > sysdeps/x86_64/fpu/test-vector-abi.h | 41 +++++++++++++++++
>> > > > 12 files changed, 56 insertions(+), 101 deletions(-)
>> > > > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi.h
>> > > >
>> > > > diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
>> > > > index 1b4406380d..6643f77c5d 100644
>> > > > --- a/sysdeps/x86_64/fpu/Makefile
>> > > > +++ b/sysdeps/x86_64/fpu/Makefile
>> > > > @@ -108,19 +108,13 @@ CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
>> > > > CFLAGS-test-float-vlen8-avx2-wrappers.c = $(float-vlen8-arch-ext2-cflags)
>> > > >
>> > > > CFLAGS-test-double-libmvec-sincos-main.c = $(libmvec-sincos-cflags)
>> > > > -CFLAGS-test-double-libmvec-sincos-avx.c = -DREQUIRE_AVX
>> > > > CFLAGS-test-double-libmvec-sincos-avx-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext-cflags)
>> > > > -CFLAGS-test-double-libmvec-sincos-avx2.c = -DREQUIRE_AVX2
>> > > > CFLAGS-test-double-libmvec-sincos-avx2-main.c = $(libmvec-sincos-cflags) $(double-vlen4-arch-ext2-cflags)
>> > > > -CFLAGS-test-double-libmvec-sincos-avx512.c = -DREQUIRE_AVX512F
>> > > > CFLAGS-test-double-libmvec-sincos-avx512-main.c = $(libmvec-sincos-cflags) $(double-vlen8-arch-ext-cflags)
>> > > >
>> > > > CFLAGS-test-float-libmvec-sincosf-main.c = $(libmvec-sincos-cflags)
>> > > > -CFLAGS-test-float-libmvec-sincosf-avx.c = -DREQUIRE_AVX
>> > > > CFLAGS-test-float-libmvec-sincosf-avx-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext-cflags)
>> > > > -CFLAGS-test-float-libmvec-sincosf-avx2.c = -DREQUIRE_AVX2
>> > > > CFLAGS-test-float-libmvec-sincosf-avx2-main.c = $(libmvec-sincos-cflags) $(float-vlen8-arch-ext2-cflags)
>> > > > -CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
>> > > > CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
>> > > > endif
>> > > > endif
>> > > > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
>> > > > index 896f1bcbaf..fbc0dbe3d9 100644
>> > > > --- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
>> > > > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx.c
>> > > > @@ -1 +1,2 @@
>> > > > +#define REQUIRE_AVX
>> > > > #include "test-double-libmvec-sincos.c"
>> > >
>> > > Should this be: #include "test-vector-abi.h"?
>> >
>> > Yes.
>> >
>> > > If so can test-double-libmvec-sincos.c be deleted?
>> >
>> > No. We need it to build test-double-libmvec-sincos.
>> >
>> > Here is the v2 patch. The main changes are
>> >
>> > 1. Rename all test-XXX-main.c files to test-XXX.c.
>> > 2. Use test-libmvec*.c to run the libmvec ABI tests.
>> >
>> > OK for master?
>>
>> Should "mathvec/check-abi-libmvec'' be the only test in mathvec?
>>
>> If so then LGTM.
>>
>> >
>> > Thanks.
>> >
>> > --
>> > H.J.
>
>
> v2 patch, file name looks inconsistent.
>
> sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512f.c
> sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512f.c
> sysdeps/x86_64/fpu/test-libmvec-avx512f.c
>
> Should these file named as
>
> sysdeps/x86_64/fpu/test-double-libmvec-sincos-avx512.c
> sysdeps/x86_64/fpu/test-float-libmvec-sincosf-avx512.c
> sysdeps/x86_64/fpu/test-libmvec-avx512.c
>
There is no AVX512 ISA. These libmvec functions work with
AVX512F. I will check in the v2 patch ASIS.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-10-14 18:46 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-14 3:54 [PATCH] x86-64: Add test-vector-abi.h for vector ABI test H.J. Lu
2021-10-14 4:23 ` Noah Goldstein
2021-10-14 13:32 ` [PATCH v2] x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h H.J. Lu
2021-10-14 16:12 ` Noah Goldstein
2021-10-14 16:36 ` Sunil Pandey
2021-10-14 18:45 ` H.J. Lu
2021-10-14 18:43 ` H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).