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]

[patch, ARM] Make 128 bits the default vector size for NEON


Hi,

This patch changes NEON's default vector size from 64 to 128 bits.

The patch doesn't touch mvectorize-with-neon-quad, but removes the
uses of TARGET_NEON_VECTORIZE_QUAD.
Following Julian's suggestion I added a param preferred-vector-size
for testing and debugging purposes.

I tested a slightly different version of the patch on
arm-linux-gnueabi with --with-arch=armv7-a --with-float=softfp
--with-fpu=neon. I am now retesting the final version. Also
bootstrapped and tested testsuite changes on powerpc64-suse-linux.

OK for trunk once the testing completes?

Thanks,
Ira

ChangeLog:

      * doc/invoke.texi (preferred-vector-size): Document.
      * params.h (PREFERRED_VECTOR_SIZE): Define.
      * config/arm/arm.c (arm_preferred_simd_mode): Use param
      PREFERRED_VECTOR_SIZE instead of
      TARGET_NEON_VECTORIZE_QUAD. Make 128 bits the default.
      (arm_autovectorize_vector_sizes): Likewise.
      * params.def (PARAM_PREFERRED_VECTOR_SIZE): Define.

testsuite/ChangeLog:

      * lib/target-supports.exp (check_effective_target_vect_multiple_sizes):
      New procedure.
      (add_options_for_quad_vectors): Replace with ...
      (add_options_for_double_vectors): ... this.
      * gfortran.dg/vect/pr19049.f90: Expect more printings on targets that
      support multiple vector sizes since the vectorizer attempts to
      vectorize with both vector sizes.
      * gcc.dg/vect/slp-reduc-6.c, gcc.dg/vect/no-vfa-vect-79.c,
      gcc.dg/vect/no-vfa-vect-102a.c, gcc.dg/vect/vect-outer-1a.c,
      gcc.dg/vect/vect-outer-1b.c, gcc.dg/vect/vect-outer-2b.c,
      gcc.dg/vect/vect-outer-3a.c, gcc.dg/vect/no-vfa-vect-37.c,
      gcc.dg/vect/vect-outer-3b.c, gcc.dg/vect/no-vfa-vect-101.c,
      gcc.dg/vect/no-vfa-vect-102.c, gcc.dg/vect/vect-reduc-dot-s8b.c,
      gcc.dg/vect/vect-outer-1.c, gcc.dg/vect/vect-104.c: Likewise.
      * gcc.dg/vect/vect-16.c: Rename to...
      * gcc.dg/vect/no-fast-math-vect-16.c: ... this to ensure that it runs
      without -ffast-math.
      * gcc.dg/vect/vect-42.c: Run with 64 bit vectors if applicable.
      * gcc.dg/vect/vect-multitypes-6.c, gcc.dg/vect/vect-52.c,
      gcc.dg/vect/vect-54.c, gcc.dg/vect/vect-46.c, gcc.dg/vect/vect-48.c,
      gcc.dg/vect/vect-96.c, gcc.dg/vect/vect-multitypes-3.c,
      gcc.dg/vect/vect-40.c: Likewise.
      * gcc.dg/vect/vect-outer-5.c: Remove quad-vectors option as
      redundant.
      * gcc.dg/vect/vect-109.c, gcc.dg/vect/vect-peel-1.c,
      gcc.dg/vect/vect-peel-2.c, gcc.dg/vect/slp-25.c,
      gcc.dg/vect/vect-multitypes-1.c, gcc.dg/vect/slp-3.c,
      gcc.dg/vect/no-vfa-pr29145.c, gcc.dg/vect/vect-multitypes-4.c:
      Likewise.
      * gcc.dg/vect/vect.exp: Run no-fast-math-vect*.c tests with
      -fno-fast-math.

Attachment: patch.txt
Description: Text document

Attachment: tests.txt
Description: Text document


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