r278410 - in /trunk/gcc: ChangeLog fold-const.c...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Mon Nov 18 15:27:00 GMT 2019


Author: rsandifo
Date: Mon Nov 18 15:27:56 2019
New Revision: 278410

URL: https://gcc.gnu.org/viewcvs?rev=278410&root=gcc&view=rev
Log:
Handle VIEW_CONVERT_EXPR for variable-length vectors

This patch handles VIEW_CONVERT_EXPRs of variable-length VECTOR_CSTs
by adding tree-level versions of native_decode_vector_rtx and
simplify_const_vector_subreg.  It uses the same code for fixed-length
vectors, both to get more coverage and because operating directly on
the compressed encoding should be more efficient for longer vectors
with a regular pattern.

The structure and comments are very similar between the tree and
rtx routines.

2019-11-18  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* fold-const.c (native_encode_vector): Turn into a wrapper function,
	splitting the main code out into...
	(native_encode_vector_part): ...this new function.
	(native_decode_vector_tree): New function.
	(fold_view_convert_vector_encoding): Likewise.
	(fold_view_convert_expr): Use it for converting VECTOR_CSTs
	to VECTOR_TYPEs.

gcc/testsuite/
	* gcc.target/aarch64/sve/acle/general/temporaries_1.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/aarch64/sve/acle/general/temporaries_1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list