aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2021-11-29 22:16:12 +0100
committerUros Bizjak <ubizjak@gmail.com>2021-11-29 22:17:20 +0100
commitca5667e867252db3c8642ee90f55427149cd92b6 (patch)
tree63b20ecc038f1f5c3ec9a21db9943143180d3eaf /gcc/fortran/trans-expr.c
parentf81c5a86dc03352682ac8ae3daa6ec507528a265 (diff)
downloadgcc-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