The attached patchset adds support for the IBM z13 machine to the
GCC S/390 backend.

The machine has been announced recently:
http://www-03.ibm.com/press/us/en/pressrelease/45808.wss

IBM z/Architecture Principles of Operation
http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr010.pdf

The required Binutils support is upstream since January:
https://sourceware.org/ml/binutils/2015-01/msg00197.html

Highlights from a toolchain perspective are:

- 32 128 bit vector registers (overlapping with the existing 16 64 bit
  floating point registers)
- vector double instructions
- vector integer instructions
- scalar vector instructions (allowing to have more floating point
  registers for scalar operations)
- vector string instructions

I would like to commit this patchset also to GCC 5 branch in order to
enable distros to pick it up more easily.

Andreas Krebbel (13):
  recog: Increased max number of alternatives.
  optabs: Fix vec_perm -> V16QI middle end lowering.
  S/390 Fix secondary reload issue with store/load relative operands.
  S/390 Add -march/-mtune=z13 option.
  S/390 Vector base support.
  Vector base support - testcases
  S/390 Add vector scalar instruction support.
  S/390 zvector builtin support.
  S/390 Add zvector testcases.
  Testsuite These testcases require disabling hardware vector support
    on S/390.
  Testsuite S/390 vector types are only 8 byte aligned.
  S/390 Vector ABI GNU Attribute.
  S/390 Invalid vector binary ops

 gcc/common/config/s390/s390-common.c               |    3 +
 gcc/config.gcc                                     |   26 +-
 gcc/config/s390/constraints.md                     |   28 +
 gcc/config/s390/predicates.md                      |   12 +-
 gcc/config/s390/s390-builtin-types.def             |  747 ++++++
 gcc/config/s390/s390-builtins.def                  | 2486 ++++++++++++++++++++
 gcc/config/s390/s390-builtins.h                    |  160 ++
 gcc/config/s390/s390-c.c                           |  907 +++++++
 gcc/config/s390/s390-modes.def                     |   61 +
 gcc/config/s390/s390-opts.h                        |    1 +
 gcc/config/s390/s390-protos.h                      |   17 +
 gcc/config/s390/s390.c                             | 2314 +++++++++++++++---
 gcc/config/s390/s390.h                             |  220 +-
 gcc/config/s390/s390.md                            |  800 +++++--
 gcc/config/s390/s390.opt                           |   11 +
 gcc/config/s390/s390intrin.h                       |    3 +
 gcc/config/s390/t-s390                             |   27 +
 gcc/config/s390/vecintrin.h                        |  311 +++
 gcc/config/s390/vector.md                          | 1228 ++++++++++
 gcc/config/s390/vx-builtins.md                     | 2081 ++++++++++++++++
 gcc/configure                                      |   36 +
 gcc/configure.ac                                   |    7 +
 gcc/optabs.c                                       |   18 +-
 gcc/recog.h                                        |    2 +-
 gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c       |    1 +
 gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c       |    1 +
 gcc/testsuite/gcc.target/s390/s390.exp             |   18 +
 gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c   |   18 +
 gcc/testsuite/gcc.target/s390/vector/vec-abi-2.c   |   15 +
 gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c   |  101 +
 gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c   |   19 +
 .../gcc.target/s390/vector/vec-abi-align-1.c       |   48 +
 .../gcc.target/s390/vector/vec-abi-attr-1.c        |   18 +
 .../gcc.target/s390/vector/vec-abi-attr-2.c        |   53 +
 .../gcc.target/s390/vector/vec-abi-attr-3.c        |   18 +
 .../gcc.target/s390/vector/vec-abi-attr-4.c        |   17 +
 .../gcc.target/s390/vector/vec-abi-attr-5.c        |   19 +
 .../gcc.target/s390/vector/vec-abi-attr-6.c        |   24 +
 .../gcc.target/s390/vector/vec-abi-single-1.c      |   24 +
 .../gcc.target/s390/vector/vec-abi-single-2.c      |   12 +
 .../gcc.target/s390/vector/vec-abi-struct-1.c      |   37 +
 .../gcc.target/s390/vector/vec-abi-vararg-1.c      |   60 +
 .../gcc.target/s390/vector/vec-abi-vararg-2.c      |   18 +
 .../gcc.target/s390/vector/vec-clobber-1.c         |   38 +
 gcc/testsuite/gcc.target/s390/vector/vec-cmp-1.c   |   45 +
 gcc/testsuite/gcc.target/s390/vector/vec-cmp-2.c   |   38 +
 .../s390/vector/vec-dbl-math-compile-1.c           |   48 +
 .../gcc.target/s390/vector/vec-genbytemask-1.c     |   70 +
 .../gcc.target/s390/vector/vec-genbytemask-2.c     |   46 +
 .../gcc.target/s390/vector/vec-genmask-1.c         |   70 +
 .../gcc.target/s390/vector/vec-genmask-2.c         |   46 +
 gcc/testsuite/gcc.target/s390/vector/vec-init-1.c  |   68 +
 .../s390/vector/vec-int-math-compile-1.c           |   40 +
 .../gcc.target/s390/vector/vec-scalar-cmp-1.c      |   49 +
 gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c |  108 +
 gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c   |   51 +
 .../s390/zvector/vec-dbl-math-compile-1.c          |   67 +
 gcc/testsuite/gcc.target/s390/zvector/vec-elem-1.c |   11 +
 .../gcc.target/s390/zvector/vec-genbytemask-1.c    |   21 +
 .../gcc.target/s390/zvector/vec-genmask-1.c        |   24 +
 gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c |   31 +
 .../gcc.target/s390/zvector/vec-overloading-1.c    |   77 +
 .../gcc.target/s390/zvector/vec-overloading-2.c    |   54 +
 .../gcc.target/s390/zvector/vec-overloading-3.c    |   19 +
 .../gcc.target/s390/zvector/vec-overloading-4.c    |   18 +
 .../gcc.target/s390/zvector/vec-test-mask-1.c      |   25 +
 gcc/testsuite/lib/target-supports.exp              |    3 +-
 67 files changed, 12449 insertions(+), 645 deletions(-)
 create mode 100644 gcc/config/s390/s390-builtin-types.def
 create mode 100644 gcc/config/s390/s390-builtins.def
 create mode 100644 gcc/config/s390/s390-builtins.h
 create mode 100644 gcc/config/s390/s390-c.c
 create mode 100644 gcc/config/s390/t-s390
 create mode 100644 gcc/config/s390/vecintrin.h
 create mode 100644 gcc/config/s390/vector.md
 create mode 100644 gcc/config/s390/vx-builtins.md
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-align-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-3.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-4.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-5.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-attr-6.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-single-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-single-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-struct-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-clobber-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-cmp-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-cmp-2.c
 create mode 100644 
gcc/testsuite/gcc.target/s390/vector/vec-dbl-math-compile-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-genmask-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-genmask-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-init-1.c
 create mode 100644 
gcc/testsuite/gcc.target/s390/vector/vec-int-math-compile-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c
 create mode 100644 
gcc/testsuite/gcc.target/s390/zvector/vec-dbl-math-compile-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-elem-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-genbytemask-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-overloading-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-overloading-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-overloading-3.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-overloading-4.c
 create mode 100644 gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c

-- 
1.7.9.5

Reply via email to