S/390: Add splitter for "and" with complement

Programming / Compilers / GCC - krebbel [138bc75d-0d04-0410-961f-82ee72b054a4] - 23 August 2016 04:01 UTC

Split ~b & a to (b & a) ^ a. This is benefitial on z Systems since we otherwise need a big -1 constant to be loaded for the ~b.

gcc/ChangeLog:

2016-08-23 Dominik Vogt

- config/s390/s390.md ("*andc_split"): New splitter for and with complement.

gcc/testsuite/ChangeLog:

2016-08-23 Dominik Vogt

- gcc.target/s390/md/andc-splitter-1.c: New test case.
- gcc.target/s390/md/andc-splitter-2.c: Likewise.

be0be2d S/390: Add splitter for "and" with complement.
gcc/ChangeLog | 5 ++
gcc/config/s390/s390.md | 27 +++++++++
gcc/testsuite/ChangeLog | 5 ++
gcc/testsuite/gcc.target/s390/md/andc-splitter-1.c | 61 ++++++++++++++++++++
gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c | 61 ++++++++++++++++++++
5 files changed, 159 insertions(+)

Upstream: gcc.gnu.org


  • Share