diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2022-01-06 19:59:49 +0100 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2022-01-06 20:01:34 +0100 |
commit | 0d03db068c89d46bc62ec79395708fd19f09d3d8 (patch) | |
tree | 1c8ed7c226e6b286c3f8ceccc296277459353e97 /gcc/go | |
parent | 2a60c08e98acaae212840b2d3329b5bd13778581 (diff) | |
download | gcc-0d03db068c89d46bc62ec79395708fd19f09d3d8.zip gcc-0d03db068c89d46bc62ec79395708fd19f09d3d8.tar.gz gcc-0d03db068c89d46bc62ec79395708fd19f09d3d8.tar.bz2 |
i386: Improve HImode interunit moves
Currently, the compiler moves HImode values between GPR and XMM registers with:
%vpinsrw\t{$0, %k1, %d0|%d0, %k1, 0}
%vpextrw\t{$0, %1, %k0|%k0, %1, 0}
but it could use slightly faster and shorter:
%vmovd\t{%k1, %0|%0, %k1}
%vmovd\t{%1, %k0|%k0, %1}
2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
* config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
Add %q modifier for operands in general registers.
<MODE_SI>: Add %q modifier for operands in general registers.
* config/i386/i386.md (*movhi_internal): Change type attribute of
xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
to SImode for non-avx512fp16 targets.
(*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
* config/i386/mmx.md (*movv2qi_internal):
Ditto for xmm-gpr interunit alternatives 8,9.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr102811-2.c (dg-final):
Update scan-assembler-times directives.
* gcc.target/i386/sse2-float16-2.c (dg-final):
Update scan-assembler directives.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions