public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 00/13] S/390 Implement support for IBM z13
@ 2015-05-11 13:23 Andreas Krebbel
  2015-05-11 13:23 ` [PATCH 01/13] recog: Increased max number of alternatives Andreas Krebbel
                   ` (12 more replies)
  0 siblings, 13 replies; 37+ messages in thread
From: Andreas Krebbel @ 2015-05-11 13:23 UTC (permalink / raw)
  To: gcc-patches

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

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2015-07-02 11:52 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-11 13:23 [PATCH 00/13] S/390 Implement support for IBM z13 Andreas Krebbel
2015-05-11 13:23 ` [PATCH 01/13] recog: Increased max number of alternatives Andreas Krebbel
2015-05-11 14:01   ` Segher Boessenkool
2015-05-11 14:46     ` Andreas Krebbel
2015-05-11 17:03   ` Jeff Law
2015-05-18 13:47   ` [PATCH 01/13] recog: Increased max number of alternatives - v2 Andreas Krebbel
2015-05-18 14:39     ` Richard Biener
2015-05-19  8:41       ` Andreas Krebbel
2015-05-19 10:13         ` Richard Biener
2015-05-22  8:26         ` Andreas Krebbel
2015-06-01  8:22           ` Jakub Jelinek
2015-06-08 13:35             ` Andreas Krebbel
2015-06-08 13:40               ` Jakub Jelinek
2015-07-02 11:52                 ` Andreas Krebbel
2015-05-11 13:24 ` [PATCH 09/13] S/390 Add zvector testcases Andreas Krebbel
2015-05-11 13:24 ` [RFC 12/13] S/390 Vector ABI GNU Attribute Andreas Krebbel
2015-05-19 18:18   ` [PING] " Andreas Krebbel
2015-05-11 13:24 ` [PATCH 05/13] S/390 Vector base support Andreas Krebbel
2015-06-04 23:31   ` [BUILDROBOT] (was: [PATCH 05/13] S/390 Vector base support.) Jan-Benedict Glaw
2015-06-08 13:36     ` [BUILDROBOT] Andreas Krebbel
2015-05-11 13:24 ` [PATCH 03/13] S/390 Fix secondary reload issue with store/load relative operands Andreas Krebbel
2015-05-11 13:24 ` [PATCH 07/13] S/390 Add vector scalar instruction support Andreas Krebbel
2015-05-11 13:24 ` [PATCH 13/13] S/390 Invalid vector binary ops Andreas Krebbel
2015-05-11 13:24 ` [PATCH 10/13] Testsuite These testcases require disabling hardware vector support on S/390 Andreas Krebbel
2015-05-11 17:05   ` Jeff Law
2015-05-11 13:24 ` [PATCH 02/13] optabs: Fix vec_perm -> V16QI middle end lowering Andreas Krebbel
2015-05-11 17:20   ` Jeff Law
2015-05-18 17:36   ` Richard Henderson
2015-05-19  8:45     ` Andreas Krebbel
2015-05-19 15:02       ` Richard Henderson
2015-05-22  8:12         ` Andreas Krebbel
2015-05-11 13:24 ` [PATCH 04/13] S/390 Add -march/-mtune=z13 option Andreas Krebbel
2015-05-11 13:24 ` [PATCH 06/13] Vector base support - testcases Andreas Krebbel
2015-05-11 13:24 ` [PATCH 11/13] Testsuite S/390 vector types are only 8 byte aligned Andreas Krebbel
2015-05-11 17:05   ` Jeff Law
2015-05-11 13:41 ` [PATCH 08/13] S/390 zvector builtin support Andreas Krebbel
2015-05-11 17:07   ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).