-
- Downloads
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.
Showing
- gcc/config/alpha/alpha.cc 37 additions, 8 deletionsgcc/config/alpha/alpha.cc
- gcc/testsuite/gcc.target/alpha/memcpy-si-aligned.c 16 additions, 0 deletionsgcc/testsuite/gcc.target/alpha/memcpy-si-aligned.c
- gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-dst.c 16 additions, 0 deletionsgcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-dst.c
- gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src-bwx.c 11 additions, 0 deletionsgcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src-bwx.c
- gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src.c 15 additions, 0 deletionsgcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src.c
- gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned.c 51 additions, 0 deletionsgcc/testsuite/gcc.target/alpha/memcpy-si-unaligned.c
Loading
Please register or sign in to comment