diff options
author | Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | 2022-05-29 19:46:16 +0900 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2022-06-09 15:07:22 -0700 |
commit | 9777d446e2148ef9a6e9f35db3f4eab99ee8812c (patch) | |
tree | 80a39ec5301760371b73915a7a4a8a8b8c87be7d /libgcc/dfp-bit.c | |
parent | 2fcc69d8ce4eddf6dea878a5383254d366e1bb14 (diff) | |
download | gcc-9777d446e2148ef9a6e9f35db3f4eab99ee8812c.zip gcc-9777d446e2148ef9a6e9f35db3f4eab99ee8812c.tar.gz gcc-9777d446e2148ef9a6e9f35db3f4eab99ee8812c.tar.bz2 |
xtensa: Make one_cmplsi2 optimizer-friendly
In Xtensa ISA, there is no single machine instruction that calculates unary
bitwise negation. But a few optimizers assume that bitwise negation can be
done by a single insn.
As a result, '((x < 0) ? ~x : x)' cannot be optimized to '(x ^ (x >> 31))'
ever before, for example.
This patch relaxes such limitation, by putting the insn expansion off till
the split pass.
gcc/ChangeLog:
* config/xtensa/xtensa.md (one_cmplsi2):
Rearrange as an insn_and_split pattern.
gcc/testsuite/ChangeLog:
* gcc.target/xtensa/one_cmpl_abs.c: New.
Diffstat (limited to 'libgcc/dfp-bit.c')
0 files changed, 0 insertions, 0 deletions