This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 13/15][ARM/AArch64 Testsuite] Add float16 tests to advsimd-intrinsics testsuite
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Alan Lawrence <alan dot lawrence at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 25 Aug 2015 15:25:35 +0200
- Subject: Re: [PATCH 13/15][ARM/AArch64 Testsuite] Add float16 tests to advsimd-intrinsics testsuite
- Authentication-results: sourceware.org; auth=none
- References: <55B765DF dot 4040706 at arm dot com> <55B766FA dot 6000608 at arm dot com>
On 28 July 2015 at 13:26, Alan Lawrence <alan.lawrence@arm.com> wrote:
> This is a respin of
> https://gcc.gnu.org/ml/gcc-patches/2015-07/msg00488.html, fixing up the
> testsuite for float16 vectors. Relative to the previous version, most of the
> additions to the tests are now within #if..#endif such that they are only
> compiled if we have a scalar __fp16 type (the exception is hfloat16_t: since
> this is actually an integer type, we can define and use it without any
> compiler fp16 support). Also we try to use add_options_for_arm_neon_fp16
> for all tests (on ARM targets), falling back to add_options_for_arm_neon if
> the previous fails.
>
> Cross-tested on many multilibs, including -march=armv6,
> -march=armv7-a{,-mfpu=neon-fp16}, -march=armv7-a/-mfpu=neon,
> -march=armv7-a/-mfp16-format=none{,/-mfpu=neon-fp16,/-mfpu=neon},
> -march=armv7-a/-mfp16-format=alternative .
>
Hi Alan,
It looks OK.
Did you also run the tests on AArch64?
> Note that on bigendian, this requires path at
> https://gcc.gnu.org/ml/gcc-patches/2015-07/msg00696.html , which I will
> commit at the same time.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
> Set additional_flags for neon-fp16 if supported, else fallback to
> neon.
>
> * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
> (hfloat16_t): New.
> (result, expected, clean_results, DECL_VARIABLE_64BITS_VARIANTS,
> DECL_VARIABLE_128BITS_VARIANTS): Add float16x4_t and float16x8_t
> cases
> if supported.
> (CHECK_RESULTS): Redefine using CHECK_RESULTS_NAMED.
> (CHECK_RESULTS_NAMED): Move body to CHECK_RESULTS_NAMED_NO_FP16;
> redefine in terms of CHECK_RESULTS_NAMED_NO_FP16 with float16
> variants
> when those are supported.
> (CHECK_RESULTS_NAMED_NO_FP16, CHECK_RESULTS_NO_FP16): New.
> (vdup_n_f16): New.
>
> * gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h (buffer,
> buffer_pad, buffer_dup, buffer_dup_pad): Add float16x4 and
> float16x8_t
> cases if supported.
>
> * gcc.target/aarch64/advsimd-intrinsics/vbsl.c (exec_vbsl):
> Use CHECK_RESULTS_NO_FP16 in place of CHECK_RESULTS.
> * gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c
> (exec_vdup_vmov):
> Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c
> (exec_vdup_lane):
> Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vext.c (exec_vext):
> Likewise.
>
> * gcc.target/aarch64/advsimd-intrinsics/vcombine.c (expected):
> Add float16x8_t case.
> (main, exec_vcombine): test float16x4_t -> float16x8_t, if
> supported.
> * gcc.target/aarch64/advsimd-intrinsics/vcreate.c (expected,
> main, exec_vcreate): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vget_high (expected,
> exec_vget_high): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vget_low.c (expected,
> exec_vget_low): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vld1.c (expected,
> exec_vld1):
> Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c (expected,
> exec_vld1_dup): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c (expected,
> exec_vld1_lane): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vldX.c (expected,
> exec_vldX):
> Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c (expected,
> exec_vldX_dup): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c (expected,
> exec_vldX_lane): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vset_lane.c (expected,
> exec_vset_lane): Likewise.
> * gcc.target/aarch64/advsimd-intrinsics/vst1_lane.c (expected,
> exec_vst1_lane): Likewise.