[Bug tree-optimization/78151] New: Fail to vectorize *min_element
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Oct 28 20:29:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78151
Bug ID: 78151
Summary: Fail to vectorize *min_element
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: glisse at gcc dot gnu.org
Target Milestone: ---
(from a discussion in the comments of
http://stackoverflow.com/a/40284138/1918193)
#include <vector>
#include <algorithm>
int return_min(std::vector<int> &v) {
return *std::min_element(v.begin(), v.end());
}
Normally, min_element returns a position, which makes it hard to optimize. In
this case, we notice quite nicely that only the value is needed and not the
position. However, this only happens in PRE. We then wait until phiopt3 to
recognize a MIN_EXPR. And that's too late for the vectorizer :-(
More information about the Gcc-bugs
mailing list