[Bug tree-optimization/68714] New: [6 Regression] less folding of vector comparison
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Dec 5 05:40:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68714
Bug ID: 68714
Summary: [6 Regression] less folding of vector comparison
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: glisse at gcc dot gnu.org
Target Milestone: ---
The change to use vec_cond_expr all over the place for vector comparisons
caused some regressions (that's obvious and normal). I just wanted to record
some random example here:
typedef int vec __attribute__((vector_size(16)));
vec f(vec x,vec y){
return x<y|x==y;
}
used to give:
_7 = x_1(D) <= y_2(D);
return _7;
but is now:
_3 = VEC_COND_EXPR <x_1(D) < y_2(D), { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
_4 = VEC_COND_EXPR <x_1(D) == y_2(D), { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
_5 = _3 | _4;
return _5;
(ok, the asm is almost the same on x86 so the example may not be the best, but
it gives the idea)
More information about the Gcc-bugs
mailing list