aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-01-13 17:50:13 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-01-13 17:50:13 +0000
commit646e47bcd15483fcafcc695efefd7a0ddeb4c716 (patch)
tree24aedf96f7279bcfe8e5ea3de20792e7d0f722dc /gcc/ChangeLog
parent729f495ad78e2596d166707444941b382dbfc29a (diff)
downloadgcc-646e47bcd15483fcafcc695efefd7a0ddeb4c716.zip
gcc-646e47bcd15483fcafcc695efefd7a0ddeb4c716.tar.gz
gcc-646e47bcd15483fcafcc695efefd7a0ddeb4c716.tar.bz2
Extra subreg fold for variable-length CONST_VECTORs
The SVE support for the new CONST_VECTOR encoding needs to be able to extract the first N bits of the vector and duplicate it. This patch adds a simplify_subreg rule for that. The code is covered by the gcc.target/aarch64/sve_slp_*.c tests. 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes parameter and use it instead of GET_MODE_SIZE (innermode). Use inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of GET_MODE_NUNITS (innermode). Also add a first_elem parameter. Change innermode from fixed_mode_size to machine_mode. (simplify_subreg): Update call accordingly. Handle a constant-sized subreg of a variable-length CONST_VECTOR. From-SVN: r256610
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 561fd70..3f1919e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,15 @@
2018-01-13 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes
+ parameter and use it instead of GET_MODE_SIZE (innermode). Use
+ inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode).
+ Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of
+ GET_MODE_NUNITS (innermode). Also add a first_elem parameter.
+ Change innermode from fixed_mode_size to machine_mode.
+ (simplify_subreg): Update call accordingly. Handle a constant-sized
+ subreg of a variable-length CONST_VECTOR.
+
+2018-01-13 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>