aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2019-05-15 15:04:08 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2019-05-15 08:04:08 -0700
commitb74ebb2a36adbb18da52f7eb25b54655b04c7be4 (patch)
treeee8b7f8ff243eec0be5164ce27e4f599dd60209f /gcc/tree-ssa.c
parentdfa61b9ed06d71901c4c430caa89820972ad68fe (diff)
downloadgcc-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