aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2021-07-14 18:27:02 -0500
committerPeter Bergner <bergner@linux.ibm.com>2021-07-14 18:27:02 -0500
commit69feb7601e86274fa9abbfb420b00c8adf947e7b (patch)
tree401e1f3e61d0a8869d2658674cc3681aa8e292df /gcc/cfgexpand.c
parent7d914777fc6c6151f430d798fc97bae927a430f7 (diff)
downloadgcc-69feb7601e86274fa9abbfb420b00c8adf947e7b.zip
gcc-69feb7601e86274fa9abbfb420b00c8adf947e7b.tar.gz
gcc-69feb7601e86274fa9abbfb420b00c8adf947e7b.tar.bz2
rs6000: Generate an lxvp instead of two adjacent lxv instructions
The MMA build built-ins currently use individual lxv instructions to load up the registers of a __vector_pair or __vector_quad. If the memory addresses of the built-in operands are to adjacent locations, then we can use an lxvp in some cases to load up two registers at once. The patch below adds support for checking whether memory addresses are adjacent and emitting an lxvp instead of two lxv instructions. 2021-07-14 Peter Bergner <bergner@linux.ibm.com> gcc/ * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower addressed memory rtx, if any. (rs6000_split_multireg_move): Fix code formatting. Handle MMA build built-ins with operands in adjacent memory locations. gcc/testsuite/ * gcc.target/powerpc/mma-builtin-9.c: New test.
Diffstat (limited to 'gcc/cfgexpand.c')
0 files changed, 0 insertions, 0 deletions