AArch64: Improve immediate expansion [PR105928]
Support immediate expansion of immediates which can be created from 2 MOVKs and a shifted ORR or BIC instruction. Change aarch64_split_dimode_const_store to apply if we save one instruction. This reduces the number of 4-instruction immediates in SPECINT/FP by 5%. gcc/ChangeLog: PR target/105928 * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate) Add support for immediates using shifted ORR/BIC. (aarch64_split_dimode_const_store): Apply if we save one instruction. * config/aarch64/aarch64.md (<LOGICAL:optab>_<SHIFT:optab><mode>3): Make pattern global. gcc/testsuite: PR target/105928 * gcc.target/aarch64/pr105928.c: Add new test. * gcc.target/aarch64/vect-cse-codegen.c: Fix test.
Showing
- gcc/config/aarch64/aarch64.cc 32 additions, 11 deletionsgcc/config/aarch64/aarch64.cc
- gcc/config/aarch64/aarch64.md 1 addition, 1 deletiongcc/config/aarch64/aarch64.md
- gcc/testsuite/gcc.target/aarch64/pr105928.c 43 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/pr105928.c
- gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c 1 addition, 2 deletionsgcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
Loading
Please register or sign in to comment