[Bug middle-end/92080] Missed CSE of _mm512_set1_epi8(c) with _mm256_set1_epi8(c)

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Oct 14 09:21:00 GMT 2019


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yeah, it isn't e.g. something RTL CSE would naturally do, because there is no
common subexpression, this needs to know that a narrower broadcast is a part of
a wider broadcast of the same argument and know how to replace that with a
backend instruction that takes the low bits from it (while it actually usually
expands to no code, at least before RA it needs to be expressed some way and is
very backend specific, we don't allow a vector mode to vector mode subreg with
different size).  So the only place to deal with this in RTL would be some
backend specific pass I'm afraid.


More information about the Gcc-bugs mailing list