This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Fix PR 80799: x86-32 generates MMX without EMMS


Hello!

Attached patch fixes unwanted MMX reg generation on x86-32 by also
allowing target to allocate SSE registers for MMX moves. The
difference between x86-32 and x86-64 was historic, and is not needed
any more. The patch also adds one missing inter-unit move handling to
vec_concatv2di.

2017-05-18  Uros Bizjak  <ubizjak@gmail.com>

    PR target/80799
    * config/i386/mmx.md (*mov<mode>_internal): Enable
    alternatives 11, 12, 13 and 14 also for 32bit targets.
    Remove alternatives 15, 16, 17 and 18.
    * config/i386/sse.md (vec_concatv2di): Change
    alternative (!x, *y) to (x, ?!*Yn).

testsuite/ChangeLog:

2017-05-18  Uros Bizjak  <ubizjak@gmail.com>

    PR target/80799
    * g++.dg/other/i386-11.C: New test.

Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN, will be backported to release branches in a
couple of days.

Uros.

Attachment: p.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]