https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83846

--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
Author: rsandifo
Date: Thu Feb  1 11:04:58 2018
New Revision: 257290

URL: https://gcc.gnu.org/viewcvs?rev=257290&root=gcc&view=rev
Log:
[AArch64] Fix SVE testsuite failures for ILP32 (PR 83846)

The SVE tests are split into code-quality compile tests and runtime
tests.  A lot of the former are geared towards LP64.  It would be
possible (but tedious!) to mark up every line that is expected to work
only for LP64, but I think it would be a constant source of problems.

Since the code has not been tuned for ILP32 yet, I think the best
thing is to select only the runtime tests for that combination.
They all pass on aarch64-elf and aarch64_be-elf except vec-cond-[34].c,
which are unsupported due to the lack of fenv support.

The patch also replaces uses of built-in types with stdint.h types
where possible.  (This excludes tests that change the endianness,
since we can't assume that system header files work in that case.)

2018-02-01  Richard Sandiford  <richard.sandif...@linaro.org>

gcc/testsuite/
        PR testsuite/83846
        * gcc.target/aarch64/sve/aarch64-sve.exp: Only do *_run tests
        for ILP32.
        * gcc.target/aarch64/sve/clastb_2_run.c (main): Use TYPE instead
        of hard-coding the choice.
        * gcc.target/aarch64/sve/clastb_4_run.c (main): Likewise.
        * gcc.target/aarch64/sve/clastb_5_run.c (main): Likewise.
        * gcc.target/aarch64/sve/clastb_3_run.c (main): Likewise.  Generalize
        memset call.
        * gcc.target/aarch64/sve/const_pred_1.C: Include stdint.h and use
        stdint.h types.
        * gcc.target/aarch64/sve/const_pred_2.C: Likewise.
        * gcc.target/aarch64/sve/const_pred_3.C: Likewise.
        * gcc.target/aarch64/sve/const_pred_4.C: Likewise.
        * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise.
        * gcc.target/aarch64/sve/logical_1.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise.
        * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_1.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_2.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_3.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_4.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_7.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_8.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_9.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_10.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_11.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_12.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_13.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_14.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_18.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_19.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_20.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_21.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_22.c: Likewise.
        * gcc.target/aarch64/sve/struct_vect_23.c: Likewise.
        * gcc.target/aarch64/sve/popcount_1.c (popcount_64): Use
        __builtin_popcountll rather than __builtin_popcountl.

Reviewed-by: James Greenhalgh <james.greenha...@arm.com>

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
    trunk/gcc/testsuite/gcc.target/aarch64/sve/clastb_2_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/clastb_3_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/clastb_4_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/clastb_5_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/const_pred_1.C
    trunk/gcc/testsuite/gcc.target/aarch64/sve/const_pred_2.C
    trunk/gcc/testsuite/gcc.target/aarch64/sve/const_pred_3.C
    trunk/gcc/testsuite/gcc.target/aarch64/sve/const_pred_4.C
    trunk/gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/logical_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_7.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_8.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_4.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/popcount_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_14.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_18.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_19.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_20.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_21.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_22.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_7.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9_run.c

Reply via email to