Re: [PATCH][AArch64] Specify fp16 support for Cortex-A55 and Cortex-A75

2017-12-12 Thread James Greenhalgh
On Mon, Dec 11, 2017 at 01:44:23PM +, Kyrill Tkachov wrote:
> Hi all,
> 
> The Cortex-A55 and Cortex-A75 processors support the fp16 extension.
> We already specify them as such in the arm port.
> This patch makes aarch64 consistent on this front.
> 
> Bootstrapped and tested on aarch64-none-linux-gnu.
> Manually checked that compiling with aarch64-none-linux-gnu-gcc 
> -mcpu=cortex-a55 -dM -E - < /dev/null
> shows __ARM_FEATURE_FP16_VECTOR_ARITHMETIC and 
> __ARM_FEATURE_FP16_SCALAR_ARITHMETIC being specified
> as expected whereas they were not before this patch.
> 
> Ok for trunk?

OK.

Sorry for the oversight when I added this support earlier in the year.

James

> 2017-12-11  Kyrylo Tkachov  
> 
>  * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
>  cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.



[PATCH][AArch64] Specify fp16 support for Cortex-A55 and Cortex-A75

2017-12-11 Thread Kyrill Tkachov

Hi all,

The Cortex-A55 and Cortex-A75 processors support the fp16 extension.
We already specify them as such in the arm port.
This patch makes aarch64 consistent on this front.

Bootstrapped and tested on aarch64-none-linux-gnu.
Manually checked that compiling with aarch64-none-linux-gnu-gcc 
-mcpu=cortex-a55 -dM -E - < /dev/null
shows __ARM_FEATURE_FP16_VECTOR_ARITHMETIC and 
__ARM_FEATURE_FP16_SCALAR_ARITHMETIC being specified

as expected whereas they were not before this patch.

Ok for trunk?

Thanks,
Kyrill

2017-12-11  Kyrylo Tkachov  

* config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
commit e9148d4af145bcd094dddf1b23fdaa3b4c1a95b5
Author: Kyrylo Tkachov 
Date:   Wed Dec 6 16:07:05 2017 +

[AArch64] Specify fp16 support for Cortex-A55 and Cortex-A75

diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index cdf047c..fa08cdf 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -83,8 +83,8 @@ AARCH64_CORE("thunderx2t99",  thunderx2t99,  thunderx2t99, 8_1A,  AARCH64_FL_FOR
 /* ARMv8.2-A Architecture Processors.  */
 
 /* ARM ('A') cores. */
-AARCH64_CORE("cortex-a55",  cortexa55, cortexa53, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa53, 0x41, 0xd05, -1)
-AARCH64_CORE("cortex-a75",  cortexa75, cortexa57, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa73, 0x41, 0xd0a, -1)
+AARCH64_CORE("cortex-a55",  cortexa55, cortexa53, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa53, 0x41, 0xd05, -1)
+AARCH64_CORE("cortex-a75",  cortexa75, cortexa57, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa73, 0x41, 0xd0a, -1)
 
 /* ARMv8.3-A Architecture Processors.  */
 
@@ -100,6 +100,6 @@ AARCH64_CORE("cortex-a73.cortex-a53",  cortexa73cortexa53, cortexa53, 8A,  AARCH
 
 /* ARM DynamIQ big.LITTLE configurations.  */
 
-AARCH64_CORE("cortex-a75.cortex-a55",  cortexa75cortexa55, cortexa53, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa73, 0x41, AARCH64_BIG_LITTLE (0xd0a, 0xd05), -1)
+AARCH64_CORE("cortex-a75.cortex-a55",  cortexa75cortexa55, cortexa53, 8_2A,  AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa73, 0x41, AARCH64_BIG_LITTLE (0xd0a, 0xd05), -1)
 
 #undef AARCH64_CORE