aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.cc
diff options
context:
space:
mode:
authorTakayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>2022-06-14 12:37:54 +0900
committerMax Filippov <jcmvbkbc@gmail.com>2022-06-15 16:55:36 -0700
commitc95e307e3a978166cd5d6817ec9d8293825ff3fb (patch)
treea46f88caa9faa71f07424a32391b8585d577f401 /gcc/builtins.cc
parent43b0c56fda4bc990e8ee8d6a0b376de7b663bb06 (diff)
downloadgcc-c95e307e3a978166cd5d6817ec9d8293825ff3fb.zip
gcc-c95e307e3a978166cd5d6817ec9d8293825ff3fb.tar.gz
gcc-c95e307e3a978166cd5d6817ec9d8293825ff3fb.tar.bz2
xtensa: Add some dedicated patterns that correspond to GIMPLE canonicalizations
This patch offers better RTL representations against straightforward derivations from some tree optimizers' canonicalized forms. - rounding up to even, such as '(x + (x & 1))', is canonicalized to '((x + 1) & -2)', but the former is one instruction less than the latter in Xtensa ISA. - signed greater or equal to zero as logical value '((signed)x >= 0)', is canonicalized to '((unsigned)(x ^ -1) >> 31)', but the equivalent '(((signed)x >> 31) + 1)' is one instruction less. gcc/ChangeLog: * config/xtensa/xtensa.md (*round_up_to_even): New insn-and-split pattern. (*signed_ge_zero): Ditto.
Diffstat (limited to 'gcc/builtins.cc')
0 files changed, 0 insertions, 0 deletions