[AArch64] Fix SVE testsuite failures for ILP32 (PR 83846)
authorRichard Sandiford <richard.sandiford@linaro.org>
Thu, 1 Feb 2018 11:04:58 +0000 (11:04 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 1 Feb 2018 11:04:58 +0000 (11:04 +0000)
commit0c64497d6eae75b9f87aef777f9beb5184ecaa64
treea8a51730f29186c0ba73725362bf62ec2f16b6ba
parent002092be4027b1fd667178e9bbe99fa6ecee2e10
[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.sandiford@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.greenhalgh@arm.com>
From-SVN: r257290
52 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
gcc/testsuite/gcc.target/aarch64/sve/clastb_2_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_3_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_4_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_5_run.c
gcc/testsuite/gcc.target/aarch64/sve/const_pred_1.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_2.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_3.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_4.C
gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
gcc/testsuite/gcc.target/aarch64/sve/logical_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_7.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_8.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_4.c
gcc/testsuite/gcc.target/aarch64/sve/popcount_1.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_14.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_18.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_19.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_20.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_21.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_22.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_7.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9_run.c