AArch64: Improve immediate generation
commit668c4c3783970e7adf0591396b6d0d5286cc0541
authorWilco Dijkstra <wilco.dijkstra@arm.com>
Fri, 13 Oct 2023 17:22:06 +0000 (13 18:22 +0100)
committerWilco Dijkstra <wilco.dijkstra@arm.com>
Wed, 25 Oct 2023 15:25:29 +0000 (25 16:25 +0100)
treeba60ee61b38489bdb3ab4ddf5dbf55599be0a48c
parent406709b1c7b134a7a05445837f406e98c04f76f0
AArch64: Improve immediate generation

Further improve immediate generation by adding support for 2-instruction
MOV/EOR bitmask immediates.  This reduces the number of 3/4-instruction
immediates in SPECCPU2017 by ~2%.

Reviewed-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
gcc/ChangeLog:
* config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
Add support for immediates using MOV/EOR bitmask.

gcc/testsuite:
* gcc.target/aarch64/imm_choice_comparison.c: Change tests.
* gcc.target/aarch64/moveor_imm.c: Add new test.
* gcc.target/aarch64/pr106583.c: Change tests.
gcc/config/aarch64/aarch64.cc
gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c
gcc/testsuite/gcc.target/aarch64/moveor_imm.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/pr106583.c