aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.cc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2023-03-15 20:33:48 +0100
committerUros Bizjak <ubizjak@gmail.com>2023-03-15 20:35:37 +0100
commit57052c6ed59c1a2ee4a67982f960e08593956955 (patch)
tree7666451538edb09a30194ba56181216fafd37eba /gcc/gcc.cc
parent901edd99b44976b3c2b13a7d525d9e315540186a (diff)
downloadgcc-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 'gcc/gcc.cc')
0 files changed, 0 insertions, 0 deletions