[ARM] Fix, add tests for FP16 aapcs.

Christophe Lyon christophe.lyon@linaro.org
Wed Jun 29 08:36:00 GMT 2016


On 27 June 2016 at 11:58, Matthew Wahab <matthew.wahab@foss.arm.com> wrote:
> 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.
>

I have run validations with the 2 patches applied, and the result
looks OK to me, FWIW.

Thanks,

Christophe.

> 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.
>



More information about the Gcc-patches mailing list