[Bug tree-optimization/91954] [10 Regression] gcc.dg/vect/pr66142.c should not need early inlining to be vectorized since r10-3311-gff6686d2e5f797d6
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 7 12:01:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91954
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
GIMPLE testcase:
struct A { float x, y; };
struct B { struct A t; };
float __GIMPLE (ssa,startwith("fre"))
foo (float a, int i)
{
struct B D_2220[32];
float *_23;
float _27;
float _28;
float _31;
__BB(2):
D_2220[i_14(D)].t.x = 1.0e+0f;
D_2220[i_14(D)].t.y = a_11(D);
_23 = &D_2220[i_14(D)];
_27 = __MEM <const float> ((float *)_23);
_28 = __MEM <const float> ((float *)_23 + _Literal (float *) 4);
_31 = _27 + _28;
return _31;
}
note the issue isn't only ref matching but alias disambiguation of
the second store against the first load. For first load we don't
have an access path (VN has but it's representation is not the same
the alias oracle uses...). Need to embrace a canonical decomposed
form in ao_ref maybe.
More information about the Gcc-bugs
mailing list