https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95084
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|code sinking prevents |[11/12 Regression] code
|if-conversion |sinking prevents
| |if-conversion
Ever confirmed|0 |1
Last reconfirmed| |2022-01-31
Status|UNCONFIRMED |NEW
CC| |rsandifo at gcc dot gnu.org
--- Comment #1 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org>
---
Yeah. I'm seeing this as a GCC 11/12 regression on:
float f(float *x, float *y) {
float res = 0;
for (int i = 0; i < 100; ++i) {
float next = __builtin_sqrtf (y[i]);
res += x[i] < 100 ? x[i] : next;
}
return res;
}
which is cut down from HACCmk. Previously we could vectorise
the loop for Advanced SIMD at -Ofast, whereas now we require
-Ofast -fno-tree-sink. (SVE can vectorise it both ways due
to predicated loads.)