On 1/13/20 10:05 AM, Kyrill Tkachov wrote: > Hi Stam, > > On 1/10/20 6:45 PM, Stam Markianos-Wright wrote: >> Hi all, >> >> This is a respin of patch: >> >> https://gcc.gnu.org/ml/gcc-patches/2019-12/msg01448.html >> >> which has now been split into two (similar to the Aarch64 version). >> >> This is patch 1 of 2 and adds Bfloat type support to the ARM back-end. >> It also adds a new machine_mode (BFmode) for this type and accompanying >> Vector >> modes V4BFmode and V8BFmode. >> >> The second patch in this series uses existing target hooks to restrict type >> use. >> >> Regression testing on arm-none-eabi passed successfully. >> >> This patch depends on: >> >> https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00857.html >> >> for test suite effective_target update. >> >> Ok for trunk? > > This is ok, thanks. > > You can commit it once the git conversion goes through :)
Committed as r10-6020-g2e87b2f4121fe1d39edb76f4e492dfe327be6a1b Thank you! Stam > > Kyrill > > >> >> Cheers, >> Stam >> >> >> ACLE documents are at https://developer.arm.com/docs/101028/latest >> ISA documents are at https://developer.arm.com/docs/ddi0596/latest >> >> Details on ARM Bfloat can be found here: >> https://community.arm.com/developer/ip-products/processors/b/ml-ip-blog/posts/bfloat16-processing-for-neural-networks-on-armv8_2d00_a >> >> >> >> >> >> gcc/ChangeLog: >> >> 2020-01-10 Stam Markianos-Wright <stam.markianos-wri...@arm.com> >> >> * config.gcc: Add arm_bf16.h. >> * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment. >> (arm_simd_builtin_std_type): Add BFmode. >> (arm_init_simd_builtin_types): Define element types for vector types. >> (arm_init_bf16_types): New function. >> (arm_init_builtins): Add arm_init_bf16_types function call. >> * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes. >> * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF. >> * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode. >> (arm_hard_regno_mode_ok): Add BFmode and tidy up statements. >> (arm_vector_mode_supported_p): Add V4BF, V8BF. >> (arm_mangle_type): >> * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE, >> VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node, >> arm_bf16_ptr_type_node. >> * config/arm/arm.md: New enabled_for_bfmode_scalar, >> enabled_for_bfmode_vector attributes. Add BFmode to movhf expand. >> pattern and define_split between ARM registers. >> * config/arm/arm_bf16.h: New file. >> * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types. >> * config/arm/iterators.md (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): >> New. >> (VQXMOV): Add V8BF. >> * config/arm/neon.md: Add BF vector types to NEON move patterns. >> * config/arm/vfp.md: Add BFmode to movhf patterns. >> >> gcc/testsuite/ChangeLog: >> >> 2020-01-10 Stam Markianos-Wright <stam.markianos-wri...@arm.com> >> >> * g++.dg/abi/mangle-neon.C: Add Bfloat vector types. >> * g++.dg/ext/arm-bf16/bf16-mangle-1.C: New test. >> * gcc.target/arm/bfloat16_scalar_1_1.c: New test. >> * gcc.target/arm/bfloat16_scalar_1_2.c: New test. >> * gcc.target/arm/bfloat16_scalar_2_1.c: New test. >> * gcc.target/arm/bfloat16_scalar_2_2.c: New test. >> * gcc.target/arm/bfloat16_scalar_3_1.c: New test. >> * gcc.target/arm/bfloat16_scalar_3_2.c: New test. >> * gcc.target/arm/bfloat16_scalar_4.c: New test. >> * gcc.target/arm/bfloat16_simd_1_1.c: New test. >> * gcc.target/arm/bfloat16_simd_1_2.c: New test. >> * gcc.target/arm/bfloat16_simd_2_1.c: New test. >> * gcc.target/arm/bfloat16_simd_2_2.c: New test. >> * gcc.target/arm/bfloat16_simd_3_1.c: New test. >> * gcc.target/arm/bfloat16_simd_3_2.c: New test. >> >> >>