[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16
authorDennis Zhang <dennis.zhang@arm.com>
Fri, 13 Dec 2019 10:22:39 +0000 (10:22 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 13 Dec 2019 10:22:39 +0000 (10:22 +0000)
commita93e1d5c70abe9fba3522318131a352fad0a4f48
tree6ee68ea1866198572dd441aed5848e5fef0e1db9
parent1a4c0446c0b38d86e7385a114cd99af591eece05
[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16

2019-12-13  Dennis Zhang  <dennis.zhang@arm.com>

gcc/
* config/aarch64/aarch64-arches.def (armv8.6-a): New.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and
__ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled.
* config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New.
(fp): Disabling fp also disables i8mm and bf16.
(simd): Disabling simd also disables i8mm.
* config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro.
(AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise.
(AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise.
(TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
* doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options
and add a new table to list permissible values for ARCH.

gcc/testsuite/
* gcc.target/aarch64/pragma_cpp_predefs_2.c: Add tests for i8mm
and bf16 features.

From-SVN: r279370
gcc/ChangeLog
gcc/config/aarch64/aarch64-arches.def
gcc/config/aarch64/aarch64-c.c
gcc/config/aarch64/aarch64-option-extensions.def
gcc/config/aarch64/aarch64.h
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c