https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126771

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Btw, I tried

diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc
index b921ae94848..0e00b093fb7 100644
--- a/gcc/tree-vect-patterns.cc
+++ b/gcc/tree-vect-patterns.cc
@@ -7310,7 +7310,7 @@ vect_determine_mask_precision (vec_info *vinfo,
stmt_vec_info stmt_info)
                                                (vinfo->vector_mode, op0_type))
              && (mask_type = truth_type_for (vectype))
              && expand_vec_cmp_expr_p (vectype, mask_type, code))
-           precision = GET_MODE_BITSIZE (mode);
+           precision = element_precision (mask_type);
        }
     }
   else

but that lead to "interesting" over-widening patterns being deduced and the
above code-path not taken either (but min_precision was 64).

Reply via email to