aboutsummaryrefslogtreecommitdiff
path: root/gcc/jit
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2022-10-24 15:14:14 +0100
committerWilco Dijkstra <wdijkstr@arm.com>2022-10-24 15:36:28 +0100
commita096036589d82175a0f729c2dab73c9a527d075d (patch)
tree416db1dabf6e889a31f3c784d9239e47f312fdcc /gcc/jit
parentda8c362c4c18cff2f2dfd5c4706bdda7576899a4 (diff)
downloadgcc-a096036589d82175a0f729c2dab73c9a527d075d.zip
gcc-a096036589d82175a0f729c2dab73c9a527d075d.tar.gz
gcc-a096036589d82175a0f729c2dab73c9a527d075d.tar.bz2
[AArch64] Improve immediate expansion [PR106583]
Improve immediate expansion of immediates which can be created from a bitmask immediate and 2 MOVKs. Simplify, refactor and improve efficiency of bitmask checks. Move various immediate handling functions together to avoid forward declarations. This reduces the number of 4-instruction immediates in SPECINT/FP by 10-15%. gcc/ PR target/106583 * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate) Add support for a bitmask immediate with 2 MOVKs. (aarch64_check_bitmask): New function after refactorization. (aarch64_bitmask_imm): Simplify replication of small modes. Split function into 64-bit only version for efficiency. (aarch64_move_imm): Move near other immediate functions. (aarch64_uimm12_shift): Likewise. (aarch64_clamp_to_uimm12_shift): Likewise. (aarch64_movk_shift): Likewise. (aarch64_replicate_bitmask_imm): Likewise. (aarch64_and_split_imm1): Likewise. (aarch64_and_split_imm2): Likewise. (aarch64_and_bitmask_imm): Likewise. (aarch64_movw_imm): Likewise. gcc/testsuite/ PR target/106583 * gcc.target/aarch64/pr106583.c: Add new test.
Diffstat (limited to 'gcc/jit')
0 files changed, 0 insertions, 0 deletions