[ARM] Fix, add tests for FP16 aapcs.

Matthew Wahab matthew.wahab@foss.arm.com
Fri Jun 10 13:56:00 GMT 2016


On 10/06/16 09:32, Christophe Lyon wrote:
> On 9 June 2016 at 17:21, Matthew Wahab <matthew.wahab@foss.arm.com> wrote:
>> A number of tests were added to check for FP16 arguments and return
>> values being passed in registers. These require mfloat-abi=hard to be
>> selected but in some test configurations they were run with
>> -mfloat-abi=soft or -mfloat-abi=softfp.
>>
> 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
>
> on non-hf targets, the effective-target arm_neon_fp16_hw will want to
> add -mfloat-abi=softfp, but you actually force -mfloat-abi=hard.
> So, the dg-skip directive doesn't match, and the test fails to link because
> the dejagnu glue code is compiled in soft mode, and conflicts
> with the hard mode from vfpXX.o

Thanks for testing this.

I'm not sure why the skip-if is failing, it's intended to skip the test if 
float-abi={soft,softfp} appears anywhere in the command line. That's needed 
because, in some configurations, the directives add an -mfloat-abi=softfp 
after the -mfloat-abi=hard from dg-options, making the test fail.

The require-effective-target arm_neon_fp16_hw was intended to select a 
hard-float target with FP16 support. I don't think that dg-add-options 
arm_neon_fp16 is right because that could also force soft-fp.

It may be better to not use arm_neon_fp16_hw. The existing aapc/vfp* tests have 
a list of require-effective-target directives to filter out invalid boards. 
I'll see if that can be made to work with arm_hard_vfp_ok and a selector for 
vfp-fp16 hardware.

Matthew



More information about the Gcc-patches mailing list