[AArch64] Fix size of memory store for the vst<n>_lane intrinsics

James Greenhalgh james.greenhalgh@arm.com
Tue Oct 29 12:14:00 GMT 2013


Hi,

The vst<n>_lane_<lane_type> intrinsics should write
(sizeof (lane_type) * n) bytes to memory.

In their current form, their asm constraints suggest a write size of
(sizeof (vector_type) * n). This is anywhere from 1 to 16 times too
much data, can cause huge headaches with dead store elimination.

This patch better models how much data we will be writing, which in
turn lets us eliminate the memory clobber. Together, we avoid the
problems with dead store elimination.

Tested with aarch64.exp and checked the C++ neon mangling test which
often breaks when you do these ugly casts.

OK?

Thanks,
James

---
gcc/

2013-10-29  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h
	(__ST2_LANE_FUNC): Better model data size.
	(__ST3_LANE_FUNC): Likewise.
	(__ST4_LANE_FUNC): Likewise.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AArch64-Fix-size-of-memory-store-for-the-vst-n-_lane.patch
Type: text/x-patch
Size: 3078 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20131029/84ef0d06/attachment.bin>


More information about the Gcc-patches mailing list