This patch only changes a comment, so I'm committing it as "obvious".

The point is that I don't intend to spend the time to fix the bug because implementing the fold_extract_last is both a work around and an optimization, but future ports might encounter the same problem and hopefully the pointer will save future readers some confusion.

Andrew
Add pointer to PR92772

2019-12-17  Andrew Stubbs  <a...@codesourcery.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772
	in the comments.

diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 353a5ff06e1..68699f2d814 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -4534,7 +4534,10 @@ vect_create_epilog_for_reduction (stmt_vec_info stmt_info,
      containing the last time the condition passed for that vector lane.
      The first match will be a 1 to allow 0 to be used for non-matching
      indexes.  If there are no matches at all then the vector will be all
-     zeroes.  */
+     zeroes.
+   
+     PR92772: This algorithm is broken for architectures that support
+     masked vectors, but do not provide fold_extract_last.  */
   if (STMT_VINFO_REDUC_TYPE (reduc_info) == COND_REDUCTION)
     {
       auto_vec<std::pair<tree, bool>, 2> ccompares;

Reply via email to