[Bug tree-optimization/93734] [8/9/10 Regression] Invalid code generated with -O2 -march=haswell -ftree-vectorize
amonakov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 13 14:26:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93734
Alexander Monakov <amonakov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amonakov at gcc dot gnu.org
--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
I tried to make an equivalent C testcase, but complex ops don't map 1:1 from
Fortran, so it's a bit difficult. Nevertheless, here's a somewhat similar
testcase that aborts on 8/9, works on trunk, but IR and resulting assembly look
quite different:
( needs -O2 -ftree-vectorize -mfma -fcx-limited-range )
__attribute__((noipa))
static
_Complex double
test(_Complex double * __restrict a,
_Complex double * __restrict x,
_Complex double t, long jx)
{
long i, j;
for (j = 6, i = 3; i>=0; i--, j-=jx)
x[j] -= t*a[i];
return x[4];
}
int main()
{
_Complex double a[5] = {1, 1, 1, 1, 10};
_Complex double x[9] = {1,1,1,1,1,1,1,1,1};
if (test(a, x, 1, 2))
__builtin_abort();
}
More information about the Gcc-bugs
mailing list