diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2021-11-29 22:16:12 +0100 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2021-11-29 22:17:20 +0100 |
commit | ca5667e867252db3c8642ee90f55427149cd92b6 (patch) | |
tree | 63b20ecc038f1f5c3ec9a21db9943143180d3eaf /gcc/fortran/trans-expr.c | |
parent | f81c5a86dc03352682ac8ae3daa6ec507528a265 (diff) | |
download | gcc-ca5667e867252db3c8642ee90f55427149cd92b6.zip gcc-ca5667e867252db3c8642ee90f55427149cd92b6.tar.gz gcc-ca5667e867252db3c8642ee90f55427149cd92b6.tar.bz2 |
i386: Fix and improve movhi_internal and movhf_internal some more.
An (*v,C) alternative can be added to movhi_internal to directly load
HImode constant 0 to xmm register. Also, V4SFmode moves can be used
for xmm->xmm moves instead of TImode moves when optimizing for size.
Fix invalid %vpinsrw insn template, which needs to duplicate %xmm
register for AVX targets.
Optimize GPR moves in movhf_internal in the same way as in movhi_internal.
Fix pinsrw and pextrw templates for AVX targets. Use sselog1
instead of sselog type. Also, handle TARGET_SSE_PARTIAL_REG_DEPENDENCY
and TARGET_SSE_SPLIT_REGS targets.
2021-11-29 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
PR target/102811
* config/i386/i386.md (*movhi_internal): Introduce (*v,C) alternative.
Do not allocate non-GPR registers. Optimize xmm->xmm moves when
optimizing for size. Fix vpinsrw insn template.
(*movhf_internal): Fix pinsrw and pextrw insn templates for
AVX targets. Use sselog1 type instead of sselog. Optimize GPR moves.
Optimize xmm->xmm moves for TARGET_SSE_PARTIAL_REG_DEPENDENCY
and TARGET_SSE_SPLIT_REGS targets.
Diffstat (limited to 'gcc/fortran/trans-expr.c')
0 files changed, 0 insertions, 0 deletions