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

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #6 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #2)
> the warning is correct in the sense the load is there in IR, though it looks
> like it is dead (but only because b and a are unused):

#include <Eigen/Dense>
Eigen::Array<double, 2, 2> a;
Eigen::Array<double, 3, 2> b;
void f(){
    b.col(0).tail(2) = a.col(1);
}

still warns about some 256 bit code which is still very dead (we later optimize
the whole function to just
  _64 = MEM <uint128_t> [(char * {ref-all})&a + 16B];
  MEM <uint128_t> [(char * {ref-all})&b + 8B] = _64;
)
so the fact that a and b are unused in the original testcase is not important.

I assume there were good reasons to put the warning this early (VRP1), but it
means that some dead code that will be removed later is still around.

(@Daniel: it can be easier to track things with separate issues, if you have a
different testcase to provide)

Reply via email to