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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2023-05-02
             Status|UNCONFIRMED                 |NEW
                 CC|                            |uros at gcc dot gnu.org

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
The x86 target chooses not to go the "compare costs" route but choose the first
(usually biggest size) vectorization that is profitable.

So the interesting thing is that with -march=znver3 we have the
integer multiplication in V2SImode unsupported.  Note that SLP chooses
V2SImode for the base V4SImode.

With V8QImode (aka V2SImode) base mode pattern recog works to produce
the desired shift.

I think the disconnect is that with V4SImode we have an integer multiplication
pattern (so no pattern is created) but with V2SImode we have not (looks like
the target chose not to implement that).

A solution would be to perform pattern recog in the vectorizable_* routines
or at least in the cases where straight-forward, simply code-gen a supported
variant.

Thus, mulv2si3 is missing.

Reply via email to