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

--- Comment #8 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Wed May 15 15:05:07 2019
New Revision: 271216

URL: https://gcc.gnu.org/viewcvs?rev=271216&root=gcc&view=rev
Log:
i386: Emulate MMX punpcklXX/punpckhXX with SSE punpcklXX

Emulate MMX punpcklXX/punpckhXX with SSE punpcklXX.  For MMX punpckhXX,
move bits 64:127 to bits 0:63 in SSE register.  Only SSE register source
operand is allowed.

        PR target/89021
        * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
        * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
        prototype.
        * config/i386/mmx.m (mmx_punpckhbw): Changed to
        define_insn_and_split to support SSE emulation.
        (mmx_punpcklbw): Likewise.
        (mmx_punpckhwd): Likewise.
        (mmx_punpcklwd): Likewise.
        (mmx_punpckhdq): Likewise.
        (mmx_punpckldq): Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386-expand.c
    trunk/gcc/config/i386/i386-protos.h
    trunk/gcc/config/i386/mmx.md

Reply via email to