diff options
author | liuhongt <hongtao.liu@intel.com> | 2025-07-29 00:01:37 -0700 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2025-07-30 00:35:00 -0700 |
commit | 6a466839340dce3b596b3ae5ce85bd05a067ae00 (patch) | |
tree | 353749087ab4696621345707e3a4aef72a42fd26 /gcc/fortran/iresolve.cc | |
parent | 7aa9565a62ea2ce04e2ddf61e1932bc123374988 (diff) | |
download | gcc-6a466839340dce3b596b3ae5ce85bd05a067ae00.zip gcc-6a466839340dce3b596b3ae5ce85bd05a067ae00.tar.gz gcc-6a466839340dce3b596b3ae5ce85bd05a067ae00.tar.bz2 |
Eliminate redundant vpextrq/vpinsrq when move TI to V4SI.
r14-1902-g96c3539f2a3813 split TImode move with 2 DImode move, it's
supposed to optimize TImode in parameter/return since accoring to
psABI it's stored into 2 general registers.
But when TImode is not in parameter/return, it could create redundancy
in the PR.
The patch add a splitter to handle that.
.i.e.
(insn 10 9 14 2 (set (subreg:V2DI (reg:V4SI 98 [ <retval> ]) 0)
(vec_concat:V2DI (subreg:DI (reg:TI 101) 0)
(subreg:DI (reg:TI 101) 8)))
8442 {vec_concatv2di}
(expr_list:REG_DEAD (reg:TI 101)
gcc/ChangeLog:
PR target/121274
* config/i386/sse.md (*vec_concatv2di_0): Add a splitter
before it.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr121274.c: New test.
Diffstat (limited to 'gcc/fortran/iresolve.cc')
0 files changed, 0 insertions, 0 deletions