Forgot to mention: Bootstrapped and regtested on z13 and z14 with gas including f687f5f563
Ok for master? On Thu, May 28, 2020 at 08:24:26PM +0200, Stefan Schulze Frielinghaus via Gcc-patches wrote: > Vector alignment hints are fully supported since z14. On z13 alignment > hints have no effect, however, instructions with alignment hints are > still legal. Thus, emit alignment hints also for z13 targets so that if > the binary is actually run on a z14 or later it benefits from such > hints. > > Note, this requires gas including commit f687f5f563 of the binutils > repository. > > gcc/ChangeLog: > > * config/s390/s390.c (print_operand): Emit vector alignment > hints for z13. > > gcc/testsuite/ChangeLog: > > * gcc.target/s390/vector/align-1.c: Change target architecture > to z13. > * gcc.target/s390/vector/align-2.c: Change target architecture > to z13. > --- > gcc/config/s390/s390.c | 7 ++++++- > gcc/testsuite/gcc.target/s390/vector/align-1.c | 2 +- > gcc/testsuite/gcc.target/s390/vector/align-2.c | 2 +- > 3 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c > index 4de3129f88e..b5fd5a2f3ed 100644 > --- a/gcc/config/s390/s390.c > +++ b/gcc/config/s390/s390.c > @@ -7854,7 +7854,12 @@ print_operand (FILE *file, rtx x, int code) > { > case 'A': > #ifdef HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS > - if (TARGET_Z14 && MEM_P (x)) > + /* Vector alignment hints are fully supported since z14. On z13 > + alignment hints have no effect, however, instructions with alignment > + hints are still legal. Thus, emit alignment hints also for z13 > + targets so that if the binary is actually run on a z14 or later it > + benefits from such hints. */ > + if (TARGET_Z13 && MEM_P (x)) > { > if (MEM_ALIGN (x) >= 128) > fprintf (file, ",4"); > diff --git a/gcc/testsuite/gcc.target/s390/vector/align-1.c > b/gcc/testsuite/gcc.target/s390/vector/align-1.c > index cc7777ad22a..6997af2ddcd 100644 > --- a/gcc/testsuite/gcc.target/s390/vector/align-1.c > +++ b/gcc/testsuite/gcc.target/s390/vector/align-1.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-O3 -mzarch -march=z14" } */ > +/* { dg-options "-O3 -mzarch -march=z13" } */ > > /* The user alignment ends up in DECL_ALIGN of the VAR_DECL and is > currently ignored if it is smaller than the alignment of the type. > diff --git a/gcc/testsuite/gcc.target/s390/vector/align-2.c > b/gcc/testsuite/gcc.target/s390/vector/align-2.c > index e4e2fba6a58..00e09d3eadb 100644 > --- a/gcc/testsuite/gcc.target/s390/vector/align-2.c > +++ b/gcc/testsuite/gcc.target/s390/vector/align-2.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-O3 -mzarch -march=z14" } */ > +/* { dg-options "-O3 -mzarch -march=z13" } */ > > /* The user alignment ends up in TYPE_ALIGN of the type of the > VAR_DECL. */ > -- > 2.25.3 >