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.
>>
>>
>>

Reply via email to