summaryrefslogtreecommitdiff
path: root/gcc/config/arm/t-multilib
diff options
context:
space:
mode:
authorDennis Zhang <dennis.zhang@arm.com>2020-01-02 17:22:53 +0000
committerDennis Zhang <xczhang@gcc.gnu.org>2020-01-02 17:22:53 +0000
commitf782b66765c9fccc894fff71a843343ee26ccd50 (patch)
treec386d06ab7f5a17c2ee315adfeebe91d1566c0ec /gcc/config/arm/t-multilib
parentb1b727413010b8243f8a18cc9cc0ef268741b1f0 (diff)
downloadgcc-f782b66765c9fccc894fff71a843343ee26ccd50.tar.gz
[Arm] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16.
2020-01-02 Dennis Zhang <dennis.zhang@arm.com> * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC, __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and __ARM_BF16_FORMAT_ALTERNATIVE when enabled. * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features. * config/arm/arm-tables.opt: Regenerated. * config/arm/arm.c (arm_option_reconfigure_globals): Initialize arm_arch_i8mm and arm_arch_bf16 when enabled. * config/arm/arm.h (TARGET_I8MM): New macro. (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a. * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a. * config/arm/t-multilib: Add matching rules for -march=armv8.6-a. (v8_6_a_simd_variants): New. (v8_*_a_simd_variants): Add i8mm and bf16. * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options. 2020-01-02 Dennis Zhang <dennis.zhang@arm.com> * gcc.target/arm/multilib.exp: Add combination tests for armv8.6-a. From-SVN: r279839
Diffstat (limited to 'gcc/config/arm/t-multilib')
-rw-r--r--gcc/config/arm/t-multilib14
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib
index 1bd33ea78fa..0e16340557d 100644
--- a/gcc/config/arm/t-multilib
+++ b/gcc/config/arm/t-multilib
@@ -73,9 +73,10 @@ v7ve_vfpv4_simd_variants := +simd
v8_a_nosimd_variants := +crc
v8_a_simd_variants := $(call all_feat_combs, simd crypto)
v8_1_a_simd_variants := $(call all_feat_combs, simd crypto)
-v8_2_a_simd_variants := $(call all_feat_combs, simd fp16 fp16fml crypto dotprod)
-v8_4_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
-v8_5_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
+v8_2_a_simd_variants := $(call all_feat_combs, simd fp16 fp16fml crypto dotprod i8mm bf16)
+v8_4_a_simd_variants := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
+v8_5_a_simd_variants := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
+v8_6_a_simd_variants := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
v8_r_nosimd_variants := +crc
ifneq (,$(HAS_APROFILE))
@@ -185,6 +186,13 @@ MULTILIB_MATCHES += march?armv7=march?armv8.5-a
MULTILIB_MATCHES += $(foreach ARCH, $(v8_5_a_simd_variants), \
march?armv7+fp=march?armv8.5-a$(ARCH))
+# Baseline v8.6-a: map down to baseline v8-a
+MULTILIB_MATCHES += march?armv7=march?armv8.6-a
+
+# Map all v8.6-a SIMD variants
+MULTILIB_MATCHES += $(foreach ARCH, $(v8_6_a_simd_variants), \
+ march?armv7+fp=march?armv8.6-a$(ARCH))
+
endif # Not APROFILE.
# Use Thumb libraries for everything.