diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2023-03-15 20:33:48 +0100 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2023-03-15 20:35:37 +0100 |
commit | 57052c6ed59c1a2ee4a67982f960e08593956955 (patch) | |
tree | 7666451538edb09a30194ba56181216fafd37eba /libcpp/include/cpplib.h | |
parent | 901edd99b44976b3c2b13a7d525d9e315540186a (diff) | |
download | gcc-57052c6ed59c1a2ee4a67982f960e08593956955.zip gcc-57052c6ed59c1a2ee4a67982f960e08593956955.tar.gz gcc-57052c6ed59c1a2ee4a67982f960e08593956955.tar.bz2 |
i386: Fix blend vector permutation for 8-byte modes
8-byte modes should be processed only for TARGET_MMX_WITH_SSE. Handle
V2SFmode and fix V2HImode handling. The resulting BLEND instructions
are always faster than MOVSS/MOVSD, so prioritize them w.r.t MOVSS/MOVSD
for TARGET_SSE4_1.
gcc/ChangeLog:
* config/i386/i386-expand.cc (expand_vec_perm_blend):
Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
and fix V2HImode handling.
(expand_vec_perm_1): Try to emit BLEND instruction
before MOVSS/MOVSD.
* config/i386/mmx.md (*mmx_blendps): New insn pattern.
gcc/testsuite/ChangeLog:
* gcc.target/i386/merge-1.c (dg-options): Use -mno-sse4.
* gcc.target/i386/sse2-mmx-21.c (dg-options): Ditto.
* gcc.target/i386/sse-movss-4.c (dg-options):
Use -mno-sse4. Simplify scan-assembler-not strings.
* gcc.target/i386/sse2-movsd-3.c (dg-options): Ditto.
* gcc.target/i386/sse2-mmx-movss-1.c: New test.
Diffstat (limited to 'libcpp/include/cpplib.h')
0 files changed, 0 insertions, 0 deletions