[ARM] Fix, add tests for FP16 aapcs.

Matthew Wahab matthew.wahab@foss.arm.com
Mon Jun 27 10:09:00 GMT 2016


On 10/06/16 15:30, Matthew Wahab wrote:
 > On 10/06/16 15:22, Christophe Lyon wrote:
 >> On 10 June 2016 at 15:56, Matthew Wahab <matthew.wahab@foss.arm.com> wrote:
 >>> On 10/06/16 09:32, Christophe Lyon wrote:
 >>>>
 >>>> On 9 June 2016 at 17:21, Matthew Wahab <matthew.wahab@foss.arm.com> wrote:
 >>>>>
 >>>> It's an improvement, but I'm still seeing a few problems with this patch:
 >>>> the vfp* tests are still failing in some of the configurations I test,
 >>>> because
 >>>> * you force dg-options that contains -mfloat-abi=hard,
 >>>> * you check effective-target arm_neon_fp16_hw
 >>>> * but you don't call dg-add-options arm_neon_fp16
 >>>>
 > I understand now. I still think it would be better to use a list of
 > require-effective-targets so I'll try that first and use the arm_neon_fp16
 > options if that doesn't work.
 >

Sorry for the delay. I've added effective-target requirements to the
tests to check for hard-fp and for VFP (i.e. non-neon) FP16 support. The
directives for the VFP FP16 support are new. I've split them out to a
separate patch, both patches are attached.

The first patch adds:

- effective-target keywords arm_fp16_ok and arm_fp16_hw to check for
   compiler and hardware support for FP16.

- add-options features arm_fp16_ieee and arm_fp16_alternative, to
   enable FP16 IEEE format and FP16 ARM Alternative format support

Note that the existing add-options feature arm_fp16 enables the default
FP16 format (fp16-format=none).

The second patch updates the tests to use these directives. It also
reworks gcc.target/arm/fp16-aapcs-1.c test is also reworked to focus on
argument passing and return values adds a softfp variant as
fp16-aapcs-2.c.

As before, checked for arm-none-eabi with cross-compiled check-gcc and
arm-linux-gnueabihf with native make check. I also ran the tests for
cross-compiled arm-none-eabi with -mcpu=Cortex-M3.

Ok for trunk?
Matthew

PATCH 1/2 ChangeLog
gcc/
2016-06-27  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/sourcebuild.texi (Effective-Target keywords): Add entries
	for arm_fp16_ok and arm_fp16_hw.
	(Add Options): Add entries for arm_fp16, arm_fp16_ieee and
	arm_fp16_alternative.

testsuite/
2016-06-27  Matthew Wahab  <matthew.wahab@arm.com>

	* lib/target-supports.exp (add_options_for arm_fp16): Reword
	comment.
	(add_options_for_arm_fp16_ieee): New.
	(add_options_for_arm_fp16_alternative): New.
	(check_effective_target_arm_fp16_ok_nocache): Add to comment.  Fix a
	long-line.
	(check_effective_target_arm_fp16_hw): New.

PATCH 2/2 ChangeLog
testsuite/
2016-06-27  Matthew Wahab  <matthew.wahab@arm.com>

	* testsuite/gcc.target/arm/aapcs/neon-vect10.c: Require
	-mfloat-ab=hard.  Replace arm_neon_fp16_ok with arm_neon_fp16_hw.
	* testsuite/gcc.target/arm/aapcs/neon-vect9.c: Likewise.
	* testsuite/gcc.target/arm/aapcs/vfp18.c: Likewise.  Also add
	options for ARM FP16 IEEE format.
	* testsuite/gcc.target/arm/aapcs/vfp19.c: Likewise.
	* testsuite/gcc.target/arm/aapcs/vfp20.c: Likewise.
	* testsuite/gcc.target/arm/aapcs/vfp21.c: Likewise.
	* testsuite/gcc.target/arm/fp16-aapcs-1.c: Require
	-mfloat-ab=hard.  Also simplify the test.
	* testsuite/gcc.target/arm/fp16-aapcs-2.c: New.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Testsuite-Selectors-and-options-directives-for-ARM-V.patch
Type: text/x-patch
Size: 6868 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160627/40e70972/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-ARM-Fix-add-tests-for-FP16-aapcs.patch
Type: text/x-patch
Size: 7679 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160627/40e70972/attachment-0001.bin>


More information about the Gcc-patches mailing list