Commit d9adca6e by Andreas Krebbel Committed by Andreas Krebbel

IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to default

In the Z backend we still set min-vect-loop-bound to 2 to work around
corner cases where awkward epilogue code gets generated in the
vectorizer.  This has a particular bad impact when vectorizing loops
with a low iteration count.  Due to this we do not vectorize the loop
in gen-vect-11/32 - what actually is a pity.

The patch sets min-vect-loop-bound back to the default value of 0 in
order to enable vectorization.

2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.dg/tree-ssa/gen-vect-11.c: Add --param min-vect-loop-bound=0
	for IBM Z.
	* gcc.dg/tree-ssa/gen-vect-23.c: Likewise.

From-SVN: r277831
parent d8e5ca29
2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
* gcc.dg/tree-ssa/gen-vect-11.c: Add --param min-vect-loop-bound=0
for IBM Z.
* gcc.dg/tree-ssa/gen-vect-11.c: Likewise.
2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
* gcc.target/s390/s390.exp * gcc.target/s390/s390.exp
(check_effective_target_s390_useable_hw): Add inline asm for z14 (check_effective_target_s390_useable_hw): Add inline asm for z14
and z15. Replace instruction for z13 with lochiz. Add register and z15. Replace instruction for z13 with lochiz. Add register
......
/* { dg-do run { target vect_cmdline_needed } } */ /* { dg-do run { target vect_cmdline_needed } } */
/* { dg-options "-O2 -ftree-vectorize -fwrapv -fdump-tree-vect-details -fvect-cost-model=dynamic" } */ /* { dg-options "-O2 -ftree-vectorize -fwrapv -fdump-tree-vect-details -fvect-cost-model=dynamic" } */
/* { dg-options "-O2 -ftree-vectorize -fwrapv -fdump-tree-vect-details -fvect-cost-model=dynamic -mno-sse" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */
/* The IBM Z backend sets the min-vect-loop-bound param to 2 to avoid
awkward epilogue code generation in some cases. This line needs to
be removed after finding an alternate way to fix this. */
/* { dg-additional-options "--param min-vect-loop-bound=0" { target { s390*-*-* } } } */
#include <stdlib.h> #include <stdlib.h>
......
/* { dg-do run { target vect_cmdline_needed } } */ /* { dg-do run { target vect_cmdline_needed } } */
/* { dg-options "-O2 -fno-tree-loop-distribute-patterns -ftree-vectorize -fdump-tree-vect-details -fno-vect-cost-model" } */ /* { dg-options "-O2 -fno-tree-loop-distribute-patterns -ftree-vectorize -fdump-tree-vect-details -fno-vect-cost-model" } */
/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */
/* The IBM Z backend sets the min-vect-loop-bound param to 2 to avoid
awkward epilogue code generation in some cases. This line needs to
be removed after finding an alternate way to fix this. */
/* { dg-additional-options "--param min-vect-loop-bound=0" { target { s390*-*-* } } } */
#include <stdlib.h> #include <stdlib.h>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment