This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets




On 19/06/17 08:41, Christophe Lyon wrote:
Hi Thomas,


On 15 June 2017 at 18:18, Thomas Preudhomme
<thomas.preudhomme@foss.arm.com> wrote:
Hi,

Conditions checked for ARM targets in vector-related effective targets
are inconsistent:

* sometimes arm*-*-* is checked
* sometimes Neon is checked
* sometimes arm_neon_ok and sometimes arm_neon is used for neon check
* sometimes check_effective_target_* is used, sometimes is-effective-target

This patch consolidate all of these check into using is-effective-target
arm_neon and when little endian was checked, the check is kept.

ChangeLog entry is as follows:

*** gcc/testsuite/ChangeLog ***

2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * lib/target-supports.exp (check_effective_target_vect_int): Replace
        current ARM check by ARM NEON's availability check.
        (check_effective_target_vect_intfloat_cvt): Likewise.
        (check_effective_target_vect_uintfloat_cvt): Likewise.
        (check_effective_target_vect_floatint_cvt): Likewise.
        (check_effective_target_vect_floatuint_cvt): Likewise.
        (check_effective_target_vect_shift): Likewise.
        (check_effective_target_whole_vector_shift): Likewise.
        (check_effective_target_vect_bswap): Likewise.
        (check_effective_target_vect_shift_char): Likewise.
        (check_effective_target_vect_long): Likewise.
        (check_effective_target_vect_float): Likewise.
        (check_effective_target_vect_perm): Likewise.
        (check_effective_target_vect_perm_byte): Likewise.
        (check_effective_target_vect_perm_short): Likewise.
        (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
        (check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
        (check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
        (check_effective_target_vect_widen_mult_hi_to_si): Likewise.
        (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
        (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
        (check_effective_target_vect_widen_shift): Likewise.
        (check_effective_target_vect_extract_even_odd): Likewise.
        (check_effective_target_vect_interleave): Likewise.
        (check_effective_target_vect_multiple_sizes): Likewise.
        (check_effective_target_vect64): Likewise.
        (check_effective_target_vect_max_reduc): Likewise.

Testing: Testsuite shows no regression when targeting ARMv7-A with
-mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with
default FPU and float ABI (soft). Testing was done with both compare_tests
and the updated dg-cmp-results proposed in
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html

Is this ok for trunk?


I applied your patch on top of r249233, and noticed quite a few changes:
http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html

Note that "Big-Regression" cases are caused by the fact that there a
are PASS->XPASS and XFAILs disappear with your patch, and many
(3000-4000) PASS disappear.
In that intended?

It certainly is not. I'd like to investigate this but the link to results for rev 249233 is broken. Could you provide me with the results you have for that so that I can compare manually?

Best regards,

Thomas


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]