https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89317

--- Comment #11 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #10)
> Should be fixed in GCC 13.

If I compile the original testcase with -O3, I get for test2:

  _1 = this_6(D) + 16;
  _2 = &this_6(D)->data1;
  if (_1 != _2)

so we should probably also handle comparisons and not just subtractions. For
this particular testcase, the relevant optimizations still happen and RTL
cleans up the comparison, so it is ok, but the pattern appears in other PRs
like PR 106677.

Reply via email to