[AArch64] Relax modes_tieable_p and cannot_change_mode_class

James Greenhalgh james.greenhalgh@arm.com
Tue Feb 18 12:40:00 GMT 2014


Hi,

We aim to improve code generation for the vector structure types
such as int64x2x4_t, as used in the vld/st{2,3,4} lane neon
intrinsics.

It should be possible and cheap to get individual vectors in
and out of these structures - these structures are implemented as
opaque integer modes straddling multiple vector registers.

To do this, we want to weaken the conditions for
aarch64_cannot_change_mode_class - to permit cheap subreg
operations - and for TARGET_MODES_TIEABLE_P - to allow all combinations
of vector structure and vector types to coexist.

Regression tested on aarch64-none-elf with no issues.

This is a bit too intrusive for Stage 4, but is it OK to
queue for Stage 1?

Thanks,
James

---
gcc/

2014-02-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Weaken conditions.
	(aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AArch64-Relax-modes_tieable_p-and-cannot_change_mode.patch
Type: text/x-patch
Size: 3216 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140218/a291e37b/attachment.bin>


More information about the Gcc-patches mailing list