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;