diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-05-21 03:54:32 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-05-21 03:54:47 -0700 |
commit | 8ebc2f5e05aa32bcad8cbfb02f8b50d92a469e66 (patch) | |
tree | 41e2ba782785299699ebf96e9298b85e1bf82d81 /libgfortran/m4 | |
parent | 9e02b45ffc60e0078bde3c56a14f00c54b7f8039 (diff) | |
download | gcc-8ebc2f5e05aa32bcad8cbfb02f8b50d92a469e66.zip gcc-8ebc2f5e05aa32bcad8cbfb02f8b50d92a469e66.tar.gz gcc-8ebc2f5e05aa32bcad8cbfb02f8b50d92a469e66.tar.bz2 |
libgfortran: Use __builtin_cpu_is/__builtin_cpu_supports
* m4/matmul.m4: Don't include <config/i386/cpuinfo.h>. Use
__builtin_cpu_is/__builtin_cpu_supports
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Likewise.
* generated/matmul_c4.c: Likewise.
* generated/matmul_c8.c: Likewise.
* generated/matmul_i1.c: Likewise.
* generated/matmul_i16.c: Likewise.
* generated/matmul_i2.c: Likewise.
* generated/matmul_i4.c: Likewise.
* generated/matmul_i8.c: Likewise.
* generated/matmul_r10.c: Likewise.
* generated/matmul_r16.c: Likewise.
* generated/matmul_r4.c: Likewise.
* generated/matmul_r8.c: Likewise.
Diffstat (limited to 'libgfortran/m4')
-rw-r--r-- | libgfortran/m4/matmul.m4 | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/libgfortran/m4/matmul.m4 b/libgfortran/m4/matmul.m4 index 83f4ae6..5acecf1 100644 --- a/libgfortran/m4/matmul.m4 +++ b/libgfortran/m4/matmul.m4 @@ -134,7 +134,6 @@ internal_proto('matmul_name`); /* Currently, this is i386 only. Adjust for other architectures. */ -#include <config/i386/cpuinfo.h> void matmul_'rtype_code` ('rtype` * const restrict retarray, 'rtype` * const restrict a, 'rtype` * const restrict b, int try_blas, int blas_limit, blas_call gemm) @@ -151,11 +150,11 @@ void matmul_'rtype_code` ('rtype` * const restrict retarray, if (matmul_fn == NULL) { matmul_fn = matmul_'rtype_code`_vanilla; - if (__cpu_model.__cpu_vendor == VENDOR_INTEL) + if (__builtin_cpu_is ("intel")) { /* Run down the available processors in order of preference. */ #ifdef HAVE_AVX512F - if (__cpu_model.__cpu_features[0] & (1 << FEATURE_AVX512F)) + if (__builtin_cpu_supports ("avx512f")) { matmul_fn = matmul_'rtype_code`_avx512f; goto store; @@ -164,8 +163,8 @@ void matmul_'rtype_code` ('rtype` * const restrict retarray, #endif /* HAVE_AVX512F */ #ifdef HAVE_AVX2 - if ((__cpu_model.__cpu_features[0] & (1 << FEATURE_AVX2)) - && (__cpu_model.__cpu_features[0] & (1 << FEATURE_FMA))) + if (__builtin_cpu_supports ("avx2") + && __builtin_cpu_supports ("fma")) { matmul_fn = matmul_'rtype_code`_avx2; goto store; @@ -174,26 +173,26 @@ void matmul_'rtype_code` ('rtype` * const restrict retarray, #endif #ifdef HAVE_AVX - if (__cpu_model.__cpu_features[0] & (1 << FEATURE_AVX)) + if (__builtin_cpu_supports ("avx")) { matmul_fn = matmul_'rtype_code`_avx; goto store; } #endif /* HAVE_AVX */ } - else if (__cpu_model.__cpu_vendor == VENDOR_AMD) + else if (__builtin_cpu_is ("amd")) { #if defined(HAVE_AVX) && defined(HAVE_FMA3) && defined(HAVE_AVX128) - if ((__cpu_model.__cpu_features[0] & (1 << FEATURE_AVX)) - && (__cpu_model.__cpu_features[0] & (1 << FEATURE_FMA))) + if (__builtin_cpu_supports ("avx") + && __builtin_cpu_supports ("fma")) { matmul_fn = matmul_'rtype_code`_avx128_fma3; goto store; } #endif #if defined(HAVE_AVX) && defined(HAVE_FMA4) && defined(HAVE_AVX128) - if ((__cpu_model.__cpu_features[0] & (1 << FEATURE_AVX)) - && (__cpu_model.__cpu_features[0] & (1 << FEATURE_FMA4))) + if (__builtin_cpu_supports ("avx") + && __builtin_cpu_supports ("fma4")) { matmul_fn = matmul_'rtype_code`_avx128_fma4; goto store; |