From e4e6a92407432cc19db73f8ce108243007d614f0 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 21 Aug 2023 13:56:34 +0200 Subject: [PATCH] Fix gcc.dg/vect/bb-slp-subgroups-2.c with 256bit vectors The following adds vect128, vect256 and vect512 effective targets and adjusts gcc.dg/vect/bb-slp-subgroups-2.c accordingly. gcc/testsuite/ * lib/target-supports.exp: Add vect128, vect256 and vect512 effective targets. * gcc.dg/vect/bb-slp-subgroups-2.c: Properly handle the vect256 case. --- gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c | 3 ++- gcc/testsuite/lib/target-supports.exp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c b/gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c index ead8d92f202..9431bcb9d5c 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c @@ -39,4 +39,5 @@ main (int argc, char **argv) } /* { dg-final { scan-tree-dump-times "Basic block will be vectorized using SLP" 1 "slp2" } } */ -/* { dg-final { scan-tree-dump-times "optimized: basic block" 2 "slp2" } } */ +/* { dg-final { scan-tree-dump-times "optimized: basic block" 2 "slp2" { target { ! vect256 } } } } */ +/* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" { target { vect256 } } } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 5b5f8655184..d4623ee6b45 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -8634,6 +8634,24 @@ proc check_effective_target_vect_variable_length { } { return [expr { [lindex [available_vector_sizes] 0] == 0 }] } +# Return 1 if the target supports vectors of 512 bits. + +proc check_effective_target_vect512 { } { + return [expr { [lsearch -exact [available_vector_sizes] 512] >= 0 }] +} + +# Return 1 if the target supports vectors of 256 bits. + +proc check_effective_target_vect256 { } { + return [expr { [lsearch -exact [available_vector_sizes] 256] >= 0 }] +} + +# Return 1 if the target supports vectors of 128 bits. + +proc check_effective_target_vect128 { } { + return [expr { [lsearch -exact [available_vector_sizes] 128] >= 0 }] +} + # Return 1 if the target supports vectors of 64 bits. proc check_effective_target_vect64 { } {