diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2025-05-01 06:30:41 +0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2025-05-07 16:34:08 +0800 |
commit | b8c4b6aa8e0521770c6f9fd48dd13dd85e3a2fc9 (patch) | |
tree | 264d8fba621ce27c7ce66aef16a52483f4381ae1 /gcc/testsuite/gfortran.dg/actual_array_subref.f90 | |
parent | ae987baeb5fb70877fd007db80b77e374f676c76 (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
When generating a SUBREG from V16QI to V2HF, validate_subreg fails since
V2HF is a floating point vector and its size (4 bytes) is smaller than its
natural size (word size). Insert an extra move with a QI vector SUBREG of
the same size to avoid validate_subreg failure.
gcc/
PR target/120036
* config/i386/i386-features.cc (ix86_get_vector_load_mode):
Handle 8/4/2 bytes.
(remove_redundant_vector_load): If the mode size is smaller than
its natural size, first insert an extra move with a QI vector
SUBREG of the same size to avoid validate_subreg failure.
gcc/testsuite/
PR target/120036
* g++.target/i386/pr120036.C: New test.
* gcc.target/i386/pr117839-3a.c: Likewise.
* gcc.target/i386/pr117839-3b.c: Likewise.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'gcc/testsuite/gfortran.dg/actual_array_subref.f90')
0 files changed, 0 insertions, 0 deletions