diff options
author | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2022-10-16 12:48:26 +0200 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2022-11-18 21:17:50 +0100 |
commit | 60d2bcc55bcc0991c0e58e97edf4a69e847e82c6 (patch) | |
tree | 9a2f3f295f0e6e763fb4a3c36b068c302e8de1b6 /gcc/system.h | |
parent | bc6beecb4d64fcd82988f840fdad45a69d73c7bb (diff) | |
download | gcc-60d2bcc55bcc0991c0e58e97edf4a69e847e82c6.zip gcc-60d2bcc55bcc0991c0e58e97edf4a69e847e82c6.tar.gz gcc-60d2bcc55bcc0991c0e58e97edf4a69e847e82c6.tar.bz2 |
RISC-V: Handle "(a & twobits) == singlebit" in branches using Zbs
Use Zbs when generating a sequence for
"if ((a & twobits) == singlebit) ..."
that can be expressed as
bexti + bexti + andn.
gcc/ChangeLog:
* config/riscv/bitmanip.md
(*branch<X:mode>_mask_twobits_equals_singlebit):
Handle "if ((a & T) == C)" using Zbs, when T has 2 bits set and C
has one of these tow bits set.
* config/riscv/predicates.md (const_twobits_not_arith_operand):
New predicate.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/zbs-if_then_else-01.c: New test.
Diffstat (limited to 'gcc/system.h')
0 files changed, 0 insertions, 0 deletions