While looking at enabling vld1x?.c and vst1x?.c tests on arm, I
noticed several inconsistencies in testcases under advsimd-intrinsics
and related effective-targets.

1- The dg-do-what action is computed by advsimd-intrinsics.exp
   depending on the actual target, so there normally should be no
   'dg-do' directive except if we want to make sure we never try to
   run or compile a given testcase.

2- Similarly, advsimd-intrinsics.exp makes use of the torture
   framework, so we should not use dg-options.

3- When an effective target tries to detect which flags to use to
   enable an architectural feature, the current first option "" does
   not work when the testsuite is executed with overridden flags
   (e.g. forcing an M-profile target).  It has to use -mfpu=auto to
   achieve the intended effect.

4- Such effective targets also use -mcpu=unset which is not supported
   on aarch64, resulting in many testcases being UNSUPPORTED when they
   used to PASS.

Patch 1 is obvious, it fixes a probable typo.
Patches 2-5 address points 1 and 2 above.
Patches 6 and 8-10 address points 3 and 4.
Patch 7 actually enables vld1x?.c and vst1x.c tests on arm.

The series globally extends testing coverage, especially on aarch64
where many tests had inadvertently become unsupported.

Christophe Lyon (10):
  testsuite: arm: remove duplicate -mcpu=unset in arm_v8_1_lob_ok
  testsuite: aarch64: arm: move saturating_arithmetic_autovect tests to
    simd/
  testsuite: aarch64: restore torture options in bf16_dup.c
  testsuite: aarch64: restore torture options in
    vml[as]_float_not_used.c
  testsuite: aarch64: arm: Remove redundant dg-do run in
    advsimd-intrinsics tests
  testsuite: aarch64: arm: Add -mfpu=auto to arm_v8_2a_bf16_neon_ok
  testsuite: aarch64: arm: Enable vld1x?.c and vst1x?.c on arm [PR71233]
  testsuite: aarch64: arm: Fix -mcpu=unset support in some effective
    targets
  testsuite: aarch64: arm: Fix -mfpu=auto support in fp16_neon_ok
  testsuite: aarch64: arm: Fix -mcpu=unset -mfpu=auto support in more
    effective targets

 .../aarch64/advsimd-intrinsics/bf16_dup.c     |   2 +-
 .../aarch64/advsimd-intrinsics/vabdh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vabsh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vaddh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vcageh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcagth_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcaleh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcalth_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vceqh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vceqzh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcgeh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vcgezh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcgth_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vcgtzh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vcleh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vclezh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vclth_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vcltzh_f16_1.c |   1 -
 .../advsimd-intrinsics/vcvtah_s16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtah_s32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtah_s64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtah_u16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtah_u32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtah_u64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvth_f16_s16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_f16_s32_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_f16_s64_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_f16_u16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_f16_u32_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_f16_u64_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_s16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_s32_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_s64_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_u16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_u32_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_f16_u64_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_s16_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_s32_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_s64_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_u16_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_u32_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_n_u64_f16_1.c    |   1 -
 .../advsimd-intrinsics/vcvth_s16_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_s32_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_s64_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_u16_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_u32_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvth_u64_f16_1.c      |   1 -
 .../advsimd-intrinsics/vcvtmh_s16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtmh_s32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtmh_s64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtmh_u16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtmh_u32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtmh_u64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_s16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_s32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_s64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_u16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_u32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtnh_u64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_s16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_s32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_s64_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_u16_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_u32_f16_1.c     |   1 -
 .../advsimd-intrinsics/vcvtph_u64_f16_1.c     |   1 -
 .../aarch64/advsimd-intrinsics/vdiv_f16_1.c   |   1 -
 .../aarch64/advsimd-intrinsics/vdivh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vduph_lane.c   |   1 -
 .../aarch64/advsimd-intrinsics/vfmah_f16_1.c  |   1 -
 .../advsimd-intrinsics/vfmas_lane_f16_1.c     |   1 -
 .../advsimd-intrinsics/vfmas_n_f16_1.c        |   1 -
 .../advsimd-intrinsics/vfmash_lane_f16_1.c    |   1 -
 .../aarch64/advsimd-intrinsics/vfmsh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vld1x2.c       |  23 ++--
 .../aarch64/advsimd-intrinsics/vld1x3.c       |  23 ++--
 .../aarch64/advsimd-intrinsics/vld1x4.c       |  25 ++--
 .../aarch64/advsimd-intrinsics/vmaxh_f16_1.c  |   1 -
 .../advsimd-intrinsics/vmaxnmh_f16_1.c        |   1 -
 .../advsimd-intrinsics/vmaxnmv_f16_1.c        |   1 -
 .../aarch64/advsimd-intrinsics/vmaxv_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vminh_f16_1.c  |   1 -
 .../advsimd-intrinsics/vminnmh_f16_1.c        |   1 -
 .../advsimd-intrinsics/vminnmv_f16_1.c        |   1 -
 .../aarch64/advsimd-intrinsics/vminv_f16_1.c  |   1 -
 .../advsimd-intrinsics/vmla_float_not_fused.c |   2 -
 .../advsimd-intrinsics/vmls_float_not_fused.c |   2 -
 .../advsimd-intrinsics/vmul_lane_f16_1.c      |   1 -
 .../aarch64/advsimd-intrinsics/vmulh_f16_1.c  |   1 -
 .../advsimd-intrinsics/vmulh_lane_f16_1.c     |   1 -
 .../aarch64/advsimd-intrinsics/vmulx_f16_1.c  |   1 -
 .../advsimd-intrinsics/vmulx_lane_f16_1.c     |   1 -
 .../advsimd-intrinsics/vmulx_n_f16_1.c        |   1 -
 .../aarch64/advsimd-intrinsics/vmulxh_f16_1.c |   1 -
 .../advsimd-intrinsics/vmulxh_lane_f16_1.c    |   1 -
 .../aarch64/advsimd-intrinsics/vnegh_f16_1.c  |   1 -
 .../advsimd-intrinsics/vpminmaxnm_f16_1.c     |   1 -
 .../advsimd-intrinsics/vqrshrn_high_n.c       |   1 -
 .../advsimd-intrinsics/vqrshrun_high_n.c      |   1 -
 .../advsimd-intrinsics/vqshrn_high_n.c        |   1 -
 .../advsimd-intrinsics/vqshrun_high_n.c       |   1 -
 .../advsimd-intrinsics/vrecpeh_f16_1.c        |   1 -
 .../advsimd-intrinsics/vrecpsh_f16_1.c        |   1 -
 .../advsimd-intrinsics/vrecpxh_f16_1.c        |   1 -
 .../aarch64/advsimd-intrinsics/vrndah_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vrndh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vrndi_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vrndih_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vrndmh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vrndnh_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vrndph_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vrndxh_f16_1.c |   1 -
 .../advsimd-intrinsics/vrsqrteh_f16_1.c       |   1 -
 .../advsimd-intrinsics/vrsqrtsh_f16_1.c       |   1 -
 .../aarch64/advsimd-intrinsics/vsqrt_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vsqrth_f16_1.c |   1 -
 .../aarch64/advsimd-intrinsics/vst1x2.c       |  23 ++--
 .../aarch64/advsimd-intrinsics/vst1x3.c       |  23 ++--
 .../aarch64/advsimd-intrinsics/vst1x4.c       |  25 ++--
 .../aarch64/advsimd-intrinsics/vsubh_f16_1.c  |   1 -
 .../aarch64/advsimd-intrinsics/vtrn_half.c    |   1 -
 .../aarch64/advsimd-intrinsics/vuzp_half.c    |   1 -
 .../aarch64/advsimd-intrinsics/vzip_half.c    |   1 -
 .../saturating_arithmetic_autovect.inc        |   0
 .../saturating_arithmetic_autovect_1.c        |   0
 .../saturating_arithmetic_autovect_2.c        |   0
 .../saturating_arithmetic_autovect_3.c        |   0
 .../saturating_arithmetic_autovect_4.c        |   0
 gcc/testsuite/lib/target-supports.exp         | 127 ++++++++++++++----
 129 files changed, 191 insertions(+), 198 deletions(-)
 rename gcc/testsuite/gcc.target/aarch64/{advsimd-intrinsics => 
simd}/saturating_arithmetic_autovect.inc (100%)
 rename gcc/testsuite/gcc.target/aarch64/{advsimd-intrinsics => 
simd}/saturating_arithmetic_autovect_1.c (100%)
 rename gcc/testsuite/gcc.target/aarch64/{advsimd-intrinsics => 
simd}/saturating_arithmetic_autovect_2.c (100%)
 rename gcc/testsuite/gcc.target/aarch64/{advsimd-intrinsics => 
simd}/saturating_arithmetic_autovect_3.c (100%)
 rename gcc/testsuite/gcc.target/aarch64/{advsimd-intrinsics => 
simd}/saturating_arithmetic_autovect_4.c (100%)

-- 
2.34.1

Reply via email to