diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2019-05-15 15:04:08 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2019-05-15 08:04:08 -0700 |
commit | b74ebb2a36adbb18da52f7eb25b54655b04c7be4 (patch) | |
tree | ee8b7f8ff243eec0be5164ce27e4f599dd60209f /gcc/tree-ssa.c | |
parent | dfa61b9ed06d71901c4c430caa89820972ad68fe (diff) | |
download | gcc-b74ebb2a36adbb18da52f7eb25b54655b04c7be4.zip gcc-b74ebb2a36adbb18da52f7eb25b54655b04c7be4.tar.gz gcc-b74ebb2a36adbb18da52f7eb25b54655b04c7be4.tar.bz2 |
i386: Emulate MMX packsswb/packssdw/packuswb with SSE2
Emulate MMX packsswb/packssdw/packuswb with SSE packsswb/packssdw/packuswb
plus moving bits 64:95 to bits 32:63 in SSE register. Only SSE register
source operand is allowed.
PR target/89021
* config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
New function.
(ix86_split_mmx_pack): Likewise.
* config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
New prototype.
(ix86_split_mmx_pack): Likewise.
* config/i386/i386.md (mmx_isa): New.
(enabled): Also check mmx_isa.
* config/i386/mmx.md (any_s_truncate): New code iterator.
(s_trunsuffix): New code attr.
(mmx_packsswb): Removed.
(mmx_packssdw): Likewise.
(mmx_packuswb): Likewise.
(mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
MMX packsswb/packuswb with SSE2.
(mmx_packssdw): Likewise.
* config/i386/predicates.md (register_mmxmem_operand): New.
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r271215
Diffstat (limited to 'gcc/tree-ssa.c')
0 files changed, 0 insertions, 0 deletions