config.gcc: Add arm_bf16.h.
authorStam Markianos-Wright <stam.markianos-wright@arm.com>
Fri, 10 Jan 2020 19:23:41 +0000 (19:23 +0000)
committerStam Markianos-Wright <stammark@gcc.gnu.org>
Fri, 10 Jan 2020 19:23:41 +0000 (19:23 +0000)
commitabbe1ed27355178223cd099fb73227f392416ea6
tree48d44a41894a46d1897b6b55956de9f942fa6171
parent337ea6b216afd412b85f3fda78a36467ffe4a817
config.gcc: Add arm_bf16.h.

2020-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

* config.gcc: Add arm_bf16.h.
* config/aarch64/aarch64-builtins.c
(aarch64_simd_builtin_std_type): Add BFmode.
(aarch64_init_simd_builtin_types): Define element types for vector
types.
(aarch64_init_bf16_types): New function.
(aarch64_general_init_builtins): Add arm_init_bf16_types function call.
* config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
modes.
* config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
* config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
patterns.
* config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
(AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
* config/aarch64/aarch64.c
(aarch64_classify_vector_mode): Add support for BF types.
(aarch64_gimplify_va_arg_expr): Add support for BF types.
(aarch64_vq_mode): Add support for BF types.
(aarch64_simd_container_mode): Add support for BF types.
(aarch64_mangle_type): Add support for BF scalar type.
* config/aarch64/aarch64.md: Add BFmode to movhf pattern.
* config/aarch64/arm_bf16.h: New file.
* config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
* config/aarch64/iterators.md: Add BF types to mode attributes.
(HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.

2020-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

* g++.dg/abi/mangle-neon-aarch64.C: Add Bfloat SIMD types to test.
* g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C: New test.
* gcc.target/aarch64/bfloat16_scalar_1.c: New test.
* gcc.target/aarch64/bfloat16_scalar_2.c: New test.
* gcc.target/aarch64/bfloat16_scalar_3.c: New test.
* gcc.target/aarch64/bfloat16_scalar_4.c: New test.
* gcc.target/aarch64/bfloat16_simd_1.c: New test.
* gcc.target/aarch64/bfloat16_simd_2.c: New test.
* gcc.target/aarch64/bfloat16_simd_3.c: New test.

From-SVN: r280129
22 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-modes.def
gcc/config/aarch64/aarch64-simd-builtin-types.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.h
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/arm_bf16.h [new file with mode: 0644]
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_simd_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_simd_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bfloat16_simd_3.c [new file with mode: 0644]