Commit 536b9f42 by Matthew Wahab Committed by Matthew Wahab

[PATCH 4/17][ARM] Define feature macros for FP16.

2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-c.c (arm_cpu_builtins): Define
	"__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
	"__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".

testsuite/
2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc.target/arm/attr-fp16-arith-1.c: New.

From-SVN: r240402
parent 1b9e31cf
2016-09-23 Matthew Wahab <matthew.wahab@arm.com> 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* config/arm/arm-c.c (arm_cpu_builtins): Define
"__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
"__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* doc/sourcebuild.texi (ARM-specific attributes): Add anchor for * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok, arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
......
...@@ -142,6 +142,11 @@ arm_cpu_builtins (struct cpp_reader* pfile) ...@@ -142,6 +142,11 @@ arm_cpu_builtins (struct cpp_reader* pfile)
def_or_undef_macro (pfile, "__ARM_FP16_ARGS", def_or_undef_macro (pfile, "__ARM_FP16_ARGS",
arm_fp16_format != ARM_FP16_FORMAT_NONE); arm_fp16_format != ARM_FP16_FORMAT_NONE);
def_or_undef_macro (pfile, "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC",
TARGET_VFP_FP16INST);
def_or_undef_macro (pfile, "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC",
TARGET_NEON_FP16INST);
def_or_undef_macro (pfile, "__ARM_FEATURE_FMA", TARGET_FMA); def_or_undef_macro (pfile, "__ARM_FEATURE_FMA", TARGET_FMA);
def_or_undef_macro (pfile, "__ARM_NEON__", TARGET_NEON); def_or_undef_macro (pfile, "__ARM_NEON__", TARGET_NEON);
def_or_undef_macro (pfile, "__ARM_NEON", TARGET_NEON); def_or_undef_macro (pfile, "__ARM_NEON", TARGET_NEON);
......
2016-09-23 Matthew Wahab <matthew.wahab@arm.com> 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* gcc.target/arm/attr-fp16-arith-1.c: New.
2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* lib/target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar): * lib/target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar):
New. New.
(add_options_for_arm_v8_2a_fp16_neon): New. (add_options_for_arm_v8_2a_fp16_neon): New.
......
/* { dg-do compile } */
/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */
/* { dg-options "-O2" } */
/* { dg-add-options arm_v8_2a_fp16_scalar } */
/* Reset fpu to a value compatible with the next pragmas. */
#pragma GCC target ("fpu=vfp")
#pragma GCC push_options
#pragma GCC target ("fpu=fp-armv8")
#ifndef __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
#error __ARM_FEATURE_FP16_SCALAR_ARITHMETIC not defined.
#endif
#pragma GCC push_options
#pragma GCC target ("fpu=neon-fp-armv8")
#ifndef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
#error __ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined.
#endif
#ifndef __ARM_NEON
#error __ARM_NEON not defined.
#endif
#if !defined (__ARM_FP) || !(__ARM_FP & 0x2)
#error Invalid value for __ARM_FP
#endif
#pragma GCC pop_options
/* Check that the FP version is correctly reset to mfpu=fp-armv8. */
#if !defined (__ARM_FP) || !(__ARM_FP & 0x2)
#error __ARM_FP should record FP16 support.
#endif
#pragma GCC pop_options
/* Check that the FP version is correctly reset to mfpu=vfp. */
#if !defined (__ARM_FP) || (__ARM_FP & 0x2)
#error Unexpected value for __ARM_FP.
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment