On 10/06/16 09:32, Christophe Lyon wrote:
On 9 June 2016 at 17:21, Matthew Wahab <matthew.wa...@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

Reply via email to