Skip to content
Snippets Groups Projects
Commit 4e557210 authored by Maciej W. Rozycki's avatar Maciej W. Rozycki
Browse files

Alpha: Optimize block moves coming from longword-aligned source

Now that we have proper alignment determination for block moves in place
the case of copying a block of longword-aligned data has become real, so
implement the merging of loaded data from pairs of SImode registers into
single DImode registers for the purpose of using with unaligned stores
efficiently, as suggested by a comment in `alpha_expand_block_move' and
discard the comment.  Provide test cases accordingly.

	gcc/
	* config/alpha/alpha.cc (alpha_expand_block_move): Merge loaded
	data from pairs of SImode registers into single DImode registers
	if to be used with unaligned stores.

	gcc/testsuite/
	* gcc.target/alpha/memcpy-si-aligned.c: New file.
	* gcc.target/alpha/memcpy-si-unaligned.c: New file.
	* gcc.target/alpha/memcpy-si-unaligned-dst.c: New file.
	* gcc.target/alpha/memcpy-si-unaligned-src.c: New file.
	* gcc.target/alpha/memcpy-si-unaligned-src-bwx.c: New file.
parent 19fdb9f3
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment