On Fri, May 29, 2020 at 01:57:30PM +0200, Andreas Krebbel wrote: > On 28.05.20 20:24, Stefan Schulze Frielinghaus 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. > > More precisely the alignment hints don't have any effect before z15, are > described already in the > z14 architecture but actually are also accepted by z13 hardware.
True, I removed the confusing comment and pushed. Thanks, Stefan > > > > > 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. > > Ok. Thanks! > > Andreas > > > --- > > 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. */ > > >