S/390: Remove code duplication in vec_* comparison expanders
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 1 Oct 2019 14:04:08 +0000 (14:04 +0000)
committerIlya Leoshkevich <iii@gcc.gnu.org>
Tue, 1 Oct 2019 14:04:08 +0000 (14:04 +0000)
commita1bfb5b16b4b55ae875d346a7b462a18316ad959
tree0a71ede7534cb8275fe7542bfdb932cc77db37ff
parentb4363c5a269b8ac870921177e8024e3bf9eb0c23
S/390: Remove code duplication in vec_* comparison expanders

s390.md uses a lot of near-identical expanders that perform dispatching
to other expanders based on operand types. Since the following patch
would require even more of these, avoid copy-pasting the code by
generating these expanders using an iterator.

gcc/ChangeLog:

2019-10-01  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/77918
* config/s390/s390.c (s390_expand_vec_compare): Use
gen_vec_cmpordered and gen_vec_cmpunordered.
* config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
vec_unordered): Delete.
(vec_ordered<mode>): Rename to vec_cmpordered<mode>.
(vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
(VEC_CMP_EXPAND): New iterator for the generic dispatcher.
(vec_cmp<code>): Generic dispatcher.

From-SVN: r276409
gcc/ChangeLog
gcc/config/s390/s390.c
gcc/config/s390/vector.md