xtensa: Optimize '(~x & y)' to '((x & y) ^ y)'
authorTakayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
Sun, 29 May 2022 10:55:44 +0000 (19:55 +0900)
committerMax Filippov <jcmvbkbc@gmail.com>
Thu, 9 Jun 2022 22:07:47 +0000 (15:07 -0700)
commite44e7face13f38f9b228e2619786ba0add9ef77b
tree356fa8e12101fbb4b3a7c1bb47dbb13c9f7dcbaf
parent9777d446e2148ef9a6e9f35db3f4eab99ee8812c
xtensa: Optimize '(~x & y)' to '((x & y) ^ y)'

In Xtensa ISA, there is no single machine instruction that calculates unary
bitwise negation.

gcc/ChangeLog:

* config/xtensa/xtensa.md (*andsi3_bitcmpl):
New insn_and_split pattern.

gcc/testsuite/ChangeLog:

* gcc.target/xtensa/check_zero_byte.c: New.
gcc/config/xtensa/xtensa.md
gcc/testsuite/gcc.target/xtensa/check_zero_byte.c [new file with mode: 0644]