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 14/06/17 09:29, Christophe Lyon wrote:
On 14 June 2017 at 10:25, Thomas Preudhomme
<thomas.preudhomme@foss.arm.com> wrote:


On 13/06/17 20:22, Christophe Lyon wrote:

Hi Thomas,

On 13 June 2017 at 11:08, 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).


That's strange, my testing detects a syntax error:

  Executed from: gcc.dg/vect/vect.exp
    gcc.dg/vect/slp-9.c: error executing dg-final: unbalanced close paren


Indeed, I can see the missing parenthesis. I've checked again with the sum
file and even with -v -v -v -v dg-cmp-results does not show any regression.
compare_tests does though but is often more noisy (saying some tests having
disappeared and appeared).
This sounds like dg-cmp-results needs to be improved here. I'll do that
first then test a fixed version of the patch.


I did patch compare_tests a while ago such that it catches ERROR message from
dejagnu (r240288)

So dg-cmp-results assume there is only one tool tested in the .sum file (it throws everything before "^Running" and everything after "^[[:space:]]+===" which it assumes is the summary. Gosh, I've used it countless time in that way...

Will provide a patch to make it work also in that setup.

Best regards,

Thomas


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