https://gcc.gnu.org/g:d5a5a73209f1ad5b48fc0449b938e27d67fb76b3

commit r16-6130-gd5a5a73209f1ad5b48fc0449b938e27d67fb76b3
Author: Victor Do Nascimento <[email protected]>
Date:   Thu Nov 6 20:50:12 2025 +0000

    vect: Disable use of partial vectors for uncounted loops
    
    Given the current reliance of masking on niters and the fact this is
    undetermined for uncounted loops, we circumvent this limitation by
    disabling the use of partial vectors when vectorizing loops with an
    unkown upper bound.
    
    gcc/ChangeLog:
    
            * tree-vect-loop.cc (vect_analyze_loop_2): Disable partial
            vector use for uncounted loops.

Diff:
---
 gcc/tree-vect-loop.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index 36e29cd18628..9b435c78c21b 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -2108,6 +2108,10 @@ vect_analyze_loop_2 (loop_vec_info loop_vinfo, int 
masked_p, bool &fatal,
     orig_loop_vinfo = loop_vinfo;
   gcc_assert (orig_loop_vinfo);
 
+  /* We can't mask on niters for uncounted loops due to unkown upper bound.  */
+  if (LOOP_VINFO_NITERS_UNCOUNTED_P (loop_vinfo))
+    LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo) = false;
+
   /* The first group of checks is independent of the vector size.  */
   fatal = true;

Reply via email to