pru: Add cbranchdi4 pattern
authorDimitar Dimitrov <dimitar@dinux.eu>
Sun, 18 Sep 2022 13:27:18 +0000 (16:27 +0300)
committerDimitar Dimitrov <dimitar@dinux.eu>
Sun, 9 Oct 2022 11:38:34 +0000 (14:38 +0300)
commite95e91eccd022a4a3a86da2749809fbad9afd20e
treea7dbe3b491bf1869d761f3d7222f47412d87dc06
parent73137f365a01327ae245fa0a9f0b127cb06e0cb3
pru: Add cbranchdi4 pattern

Manually expanding into 32-bit comparisons is much more efficient than
the default expansion into word-size comparisons.  Note that word for PRU
is 8-bit.

PR target/106562

gcc/ChangeLog:

* config/pru/pru-protos.h (pru_noteq_condition): New
function declaration.
* config/pru/pru.cc (pru_noteq_condition): New function.
* config/pru/pru.md (cbranchdi4): Define new pattern.

gcc/testsuite/ChangeLog:

* gcc.target/pru/pr106562-1.c: New test.
* gcc.target/pru/pr106562-2.c: New test.
* gcc.target/pru/pr106562-3.c: New test.
* gcc.target/pru/pr106562-4.c: New test.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
gcc/config/pru/pru-protos.h
gcc/config/pru/pru.cc
gcc/config/pru/pru.md
gcc/testsuite/gcc.target/pru/pr106562-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/pru/pr106562-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/pru/pr106562-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/pru/pr106562-4.c [new file with mode: 0644]