This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r278342 - in /trunk/gcc: ChangeLog config/aarch...


Author: rsandifo
Date: Sat Nov 16 11:07:23 2019
New Revision: 278342

URL: https://gcc.gnu.org/viewcvs?rev=278342&root=gcc&view=rev
Log:
[AArch64] Add sign and zero extension for partial SVE modes

This patch adds support for extending from partial SVE modes
to both full vector modes and wider partial modes.

Some tests now need --param aarch64-sve-compare-costs=0 to force
the original full-vector code.

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

gcc/
	* config/aarch64/iterators.md (SVE_HSDI): New mode iterator.
	(narrower_mask): Handle VNx4HI, VNx2HI and VNx2SI.
	* config/aarch64/aarch64-sve.md
	(<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): New pattern.
	(*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
	(@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Update
	comment.  Avoid new narrower_mask ambiguity.
	(@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
	(*cond_uxt<mode>_2): Update comment.
	(*cond_uxt<mode>_any): Likewise.

gcc/testsuite/
	* gcc.target/aarch64/sve/cost_model_1.c: Expect the loop to be
	vectorized with bytes stored in 32-bit containers.
	* gcc.target/aarch64/sve/extend_1.c: New test.
	* gcc.target/aarch64/sve/extend_2.c: New test.
	* gcc.target/aarch64/sve/extend_3.c: New test.
	* gcc.target/aarch64/sve/extend_4.c: New test.
	* gcc.target/aarch64/sve/load_const_offset_3.c: Add
	--param aarch64-sve-compare-costs=0.
	* gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise.
	* gcc.target/aarch64/sve/mask_struct_store_1_run.c: Likewise.
	* gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise.
	* gcc.target/aarch64/sve/mask_struct_store_2_run.c: Likewise.
	* gcc.target/aarch64/sve/unpack_unsigned_1.c: Likewise.
	* gcc.target/aarch64/sve/unpack_unsigned_1_run.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.target/aarch64/sve/extend_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/extend_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/extend_3.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/extend_4.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-sve.md
    trunk/gcc/config/aarch64/iterators.md
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/aarch64/sve/cost_model_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_3.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2_run.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]