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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-09-01
            Version|4.8.4                       |6.2.1
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
For using the vector extension vector lowering is faced with the backend
claiming that v8qi is not supported thus it uses generic integers to
implement vector support (better than doing it component-wise).  Note that
the args are still passed in SSE registers (or MMX regs with SSE disabled
but MMX enabled).

I belive that's on purpose because the compiler cannot introduce MMX
usage because of the overlap with the x87 register stack.

Thus indeed - do not use MMX.  I believe there is no attempt being made
to improve code generation for the (obsolete) MMX CPU feature.

For vector lowering instead of falling back to integer ops support we can
also fall back to using a larger vector size (maybe controlled by a target
hook).  Vector lowering would need to fill the excess elements with proper
values of course (not zero in case it is used in a division for example).

Reply via email to