https://gcc.gnu.org/g:80b52301e8ee9a211ee882863b32caf613fd0a78

commit r15-6956-g80b52301e8ee9a211ee882863b32caf613fd0a78
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Thu Jan 16 12:54:44 2025 +0000

    middle-end: Add early break conditions to vect-switch-search-line-fast.c 
[PR118451]
    
    When this test was added initially it didn't add the early break effective
    target tests.
    
    This means that the test was "passing" (as in, it was failing to vectorize)
    because many targets don't support early break.
    
    But the test should not have been run for these targets.  When the 
vectorizer
    learned PFA the test started passing for 32-bit targets. I had adjusted the
    testcase but fail to notice the requirements were wrong.
    
    Thus this adds the extra guards, and on targets that don't support early 
break
    this test will move to UNSUPPORTED, which is what it should have been all
    along...
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/118451
            * gcc.dg/vect/vect-switch-search-line-fast.c: Add early_break 
guards.

Diff:
---
 gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c 
b/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c
index 02ad7a451ca2..21c77f49ebd7 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c
@@ -1,6 +1,8 @@
 /* PR116126 -- once this works use this version in libcpp/lex.c.
    This also requires working value range propagation for s/end.  */
 /* { dg-do compile } */
+/* { dg-add-options vect_early_break } */
+/* { dg-require-effective-target vect_early_break } */
 /* { dg-require-effective-target vect_int } */
 
 const unsigned char *search_line_fast2 (const unsigned char *s,

Reply via email to