1 /* Runtime architecture check for math tests. x86_64 version.
2    Copyright (C) 2014-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #include <sys/platform/x86.h>
20 
21 #if defined REQUIRE_AVX
22 
23 # define INIT_ARCH_EXT
24 # define CHECK_ARCH_EXT                                        \
25   do                                                           \
26     {                                                          \
27       if (!CPU_FEATURE_ACTIVE (AVX)) return;                   \
28     }                                                          \
29   while (0)
30 
31 #elif defined REQUIRE_AVX2
32 
33 # define INIT_ARCH_EXT
34 # define CHECK_ARCH_EXT                                        \
35   do                                                           \
36     {                                                          \
37       if (!CPU_FEATURE_ACTIVE (AVX2)) return;                  \
38     }                                                          \
39   while (0)
40 
41 #elif defined REQUIRE_AVX512F
42 
43 # define INIT_ARCH_EXT
44 # define CHECK_ARCH_EXT                                        \
45   do                                                           \
46     {                                                          \
47       if (!CPU_FEATURE_ACTIVE (AVX512F)) return;               \
48     }                                                          \
49   while (0)
50 
51 #else
52 # include <sysdeps/generic/math-tests-arch.h>
53 #endif
54