Sudakshina Das 7cda9e0878 aarch64: Use Q-reg loads/stores in movmem expansion
This is my attempt at reviving the old patch
https://gcc.gnu.org/pipermail/gcc-patches/2019-January/514632.html

I have followed on Kyrill's comment upstream on the link above and I
am using the recommended option iii that he mentioned.
"1) Adjust the copy_limit to 256 bits after checking
    AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS in the tuning.
 2) Adjust aarch64_copy_one_block_and_progress_pointers to handle
    256-bit moves. by iii:
   iii) Emit explicit V4SI (or any other 128-bit vector mode) pairs
	ldp/stps. This wouldn't need any adjustments to MD patterns,
	but would make aarch64_copy_one_block_and_progress_pointers
	more complex as it would now have two paths, where one
	handles two adjacent memory addresses in one calls."

gcc/ChangeLog:

	* config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case
	for E_V4SImode.
	(aarch64_gen_load_pair): Likewise.
	(aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy.
	(aarch64_expand_cpymem): Expand copy_limit to 256bits where
	appropriate.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/cpymem-q-reg_1.c: New test.
	* gcc.target/aarch64/large_struct_copy_2.c: Update for ldp q regs.
2020-08-04 12:01:53 +01:00
2020-07-31 00:16:26 +00:00
2020-07-30 00:16:24 +00:00
2020-01-21 23:53:22 -08:00
2020-08-04 00:16:24 +00:00
2020-07-15 00:16:35 +00:00
2020-07-31 00:16:26 +00:00
2020-07-31 00:16:26 +00:00
2020-07-31 00:16:26 +00:00
2020-07-31 00:16:26 +00:00
2020-08-04 00:16:24 +00:00
2020-08-04 00:16:24 +00:00
2020-08-04 00:16:24 +00:00
2020-07-25 00:16:22 +00:00
2020-05-30 00:16:27 +00:00
2020-06-26 00:16:23 +00:00
2020-05-30 00:16:27 +00:00
2020-07-17 00:16:27 +00:00
2020-05-30 00:16:27 +00:00
2020-08-02 00:16:21 +00:00
2020-05-30 00:16:27 +00:00
2020-07-31 00:16:26 +00:00
2020-05-30 00:16:27 +00:00
2020-05-30 00:16:27 +00:00
2020-01-15 14:29:53 +01:00
2020-06-12 16:03:02 +02:00
2020-07-31 00:16:26 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.1 GiB
Languages
C++ 31.9%
C 31.3%
Ada 12%
D 6.5%
Go 6.4%
Other 11.5%