diff options
author | liuhongt <hongtao.liu@intel.com> | 2023-11-28 14:46:21 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2023-11-30 15:39:31 +0800 |
commit | a1a3939bea5b0d9cbd3465d96e7e4a5222ae6c48 (patch) | |
tree | 2d54e8442de5de3192c3576f2faa6de058add5db /gcc/ada | |
parent | a0905fd7405cd7a1b60c52242a218a52f392b49d (diff) | |
download | gcc-a1a3939bea5b0d9cbd3465d96e7e4a5222ae6c48.zip gcc-a1a3939bea5b0d9cbd3465d96e7e4a5222ae6c48.tar.gz gcc-a1a3939bea5b0d9cbd3465d96e7e4a5222ae6c48.tar.bz2 |
Use vec_extact_lo instead of subreg in reduc_<code>_scal_m.
Loop vectorizer will use vec_perm to select lower part of a vector,
there could be some redundancy when using subreg in
reduc_<code>_scal_m, because rtl cse can't figure out vec_select lower
part is just subreg.
I'm trying to canonicalize vec_select to subreg like aarch64 did, but
there're so many regressions, some are easy to fix, some requires
middle-end adjustment.
So for simplicity, the patch use vec_select instead of subreg in
reduc_<code>_scal_m.
gcc/ChangeLog:
* config/i386/sse.md: (reduc_plus_scal_<mode>): Use
vec_extract_lo instead of subreg.
(reduc_<code>_scal_<mode>): Ditto.
(reduc_<code>_scal_<mode>): Ditto.
(reduc_<code>_scal_<mode>): Ditto.
(reduc_<code>_scal_<mode>): Ditto.
Diffstat (limited to 'gcc/ada')
0 files changed, 0 insertions, 0 deletions