Hi All,

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 UNRESOLVED, which is what it should have been all
along...

Regtested on aarch64-none-linux-gnu and no issues.

Ok for master?

Thanks,
Tamar

gcc/testsuite/ChangeLog:

        PR testsuite/118451
        * gcc.dg/vect/vect-switch-search-line-fast.c: Add early_break guards.

---
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 
02ad7a451ca2218cf827d3b6cca4b36950fba555..21c77f49ebd7d99e9cec9a542da2335e588b45ba
 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,




-- 
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 02ad7a451ca2218cf827d3b6cca4b36950fba555..21c77f49ebd7d99e9cec9a542da2335e588b45ba 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