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]

[Committed] S/390: Add arch12 support


This patch series adds support for a new architecture level of S/390.

The most important feature of the new instruction set is the support
of single and extended precision floating point vector operations.

Binutils support is part of the 2.28 release:
https://sourceware.org/ml/binutils/2017-02/msg00301.html

Note: arch12 is NOT the official name of the new CPU.  It just
continues the series of archXX options supported as alternate names.
The archXX terminology refers to the edition number of the Principle
of Operations manual.  The official CPU name will be added later while
keeping support of the arch12 for backwards compatibility.

Andreas Krebbel (16):
  S/390: Rename cpu facility vec to vx.
  S/390: Improve support of 128 bit vectors in GPRs
  S/390: vec_init improvements
  S/390: movsf/sd pattern fixes.
  S/390: movdf improvements
  S/390: Move and rename vector check.
  S/390: Use wfc for scalar vector compares
  S/390: Rearrange fixuns_trunc pattern definitions.
  S/390: arch12: Add arch12 option.
  S/390: arch12: Add support for new vector bit operations.
  S/390: arch12: New vector popcount variants
  S/390: arch12: Add vllezlf instruction.
  S/390: arch12: Add indirect branch pattern
  S/390: arch12: Support the mul/add/subtract instructions.
  S/390: arch12: Support new vector floating point modes.
  S/390: arch12: New builtins.

 gcc/ChangeLog                                      |  223 ++
 gcc/common/config/s390/s390-common.c               |    5 +-
 gcc/config.gcc                                     |    2 +-
 gcc/config/s390/2964.md                            |    8 +-
 gcc/config/s390/constraints.md                     |   10 +-
 gcc/config/s390/driver-native.c                    |    3 +
 gcc/config/s390/s390-builtin-types.def             |  129 +-
 gcc/config/s390/s390-builtins.def                  | 3504 +++++++++++---------
 gcc/config/s390/s390-builtins.h                    |    2 +
 gcc/config/s390/s390-c.c                           |   41 +-
 gcc/config/s390/s390-opts.h                        |    1 +
 gcc/config/s390/s390.c                             |  206 +-
 gcc/config/s390/s390.h                             |   25 +-
 gcc/config/s390/s390.md                            |  663 ++--
 gcc/config/s390/s390.opt                           |    3 +
 gcc/config/s390/vecintrin.h                        |  125 +-
 gcc/config/s390/vector.md                          |  522 ++-
 gcc/config/s390/vx-builtins.md                     |  547 +--
 gcc/testsuite/ChangeLog                            |   62 +
 gcc/testsuite/gcc.target/s390/arch12/aghsghmgh-1.c |   23 +
 gcc/testsuite/gcc.target/s390/arch12/mul-1.c       |   30 +
 gcc/testsuite/gcc.target/s390/arch12/mul-2.c       |   16 +
 gcc/testsuite/gcc.target/s390/htm-builtins-z13-1.c |    2 +-
 gcc/testsuite/gcc.target/s390/s390.exp             |   22 +-
 .../gcc.target/s390/target-attribute/tattr-3.c     |    3 +-
 .../gcc.target/s390/target-attribute/tattr-4.c     |    6 +-
 .../s390/target-attribute/tpragma-struct-vx-1.c    |    2 +-
 .../s390/target-attribute/tpragma-struct-vx-2.c    |    2 +-
 gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c    |    2 +-
 .../gcc.target/s390/vector/vec-abi-vararg-1.c      |    2 +-
 .../gcc.target/s390/vector/vec-clobber-1.c         |    2 +-
 .../gcc.target/s390/vector/vec-genbytemask-1.c     |    2 +-
 .../gcc.target/s390/vector/vec-genmask-1.c         |    2 +-
 gcc/testsuite/gcc.target/s390/vector/vec-init-2.c  |   48 +
 .../gcc.target/s390/vector/vec-nopeel-1.c          |    2 +-
 .../gcc.target/s390/vector/vec-scalar-cmp-1.c      |   31 +-
 gcc/testsuite/gcc.target/s390/vector/vec-vrepi-1.c |    2 +-
 gcc/testsuite/gcc.target/s390/vxe/bitops-1.c       |   52 +
 gcc/testsuite/gcc.target/s390/vxe/negfma-1.c       |   49 +
 gcc/testsuite/gcc.target/s390/vxe/popcount-1.c     |   88 +
 gcc/testsuite/gcc.target/s390/vxe/vllezlf-1.c      |   30 +
 gcc/testsuite/lib/target-supports.exp              |   35 +
 42 files changed, 4083 insertions(+), 2451 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/s390/arch12/aghsghmgh-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/arch12/mul-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/arch12/mul-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-init-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vxe/bitops-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vxe/negfma-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vxe/popcount-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vxe/vllezlf-1.c

-- 
2.9.1


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