[gcc(refs/users/aoliva/heads/testme)] adjust vectorization expectations for ppc costmodel 76b

Alexandre Oliva aoliva@gcc.gnu.org
Mon Apr 22 06:56:51 GMT 2024


https://gcc.gnu.org/g:06cec5e7261a78413d7ccfeea4c8e85b224d370f

commit 06cec5e7261a78413d7ccfeea4c8e85b224d370f
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Sun Apr 21 17:24:18 2024 -0300

    adjust vectorization expectations for ppc costmodel 76b
    
    This test expects vectorization at power8+ because strict alignment is
    not required for vectors.  For power7, vectorization is not to take
    place because it's not deemed profitable: 12 iterations would be
    required to make it so.
    
    But for power6 and below, the test's 10 iterations are enough to make
    vectorization profitable, but the test doesn't expect this.  Assuming
    the decision is indeed appropriate, I'm adjusting the expectations.
    
    
    for  gcc/testsuite/ChangeLog
    
            * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust
            expectations for cpus below power7.

Diff:
---
 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
index cbbfbb24658..0dab2c08acd 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
@@ -46,9 +46,10 @@ int main (void)
   return 0;
 }
 
-/* Peeling to align the store is used. Overhead of peeling is too high.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { vector_alignment_reachable && {! vect_no_align} } } } } */
-/* { dg-final { scan-tree-dump-times "vectorization not profitable" 1 "vect" { target { vector_alignment_reachable && {! vect_hw_misalign} } } } } */
+/* Peeling to align the store is used. Overhead of peeling is too high
+   for power7, but acceptable for earlier architectures.  */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { has_arch_pwr7 && { vector_alignment_reachable && {! vect_no_align} } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorization not profitable" 1 "vect" { target { has_arch_pwr7 && { vector_alignment_reachable && {! vect_hw_misalign} } } } } } */
 
 /* Versioning to align the store is used. Overhead of versioning is not too high.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_no_align || {! vector_alignment_reachable} } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_no_align || { {! vector_alignment_reachable} || {! has_arch_pwr7 } } } } } } */


More information about the Gcc-cvs mailing list