S/390: Improved risbg usage.
authorDominik Vogt <vogt@linux.vnet.ibm.com>
Fri, 23 Sep 2016 09:53:29 +0000 (09:53 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Fri, 23 Sep 2016 09:53:29 +0000 (09:53 +0000)
commit64c744b962798d44aa64c491d4b32b84a27d4e93
tree190cfabca5a4b4fc05eca1139784f3808247d6a4
parentc2586c82cd3c03d20d5f00f5e4e8fded7652d4bc
S/390: Improved risbg usage.

gcc/ChangeLog:

2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
("*extzv<mode><clobbercc_or_nocc>"):
Correct a typo in a comment.
Merged patterns.
("*insv<mode>_zEC12", "*insv<mode>_z10")
("*insv<mode><clobbercc_or_nocc>"): Ditto.
("*insv<mode>_zEC12_appendbitsleft")
("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
("*insv<mode>_z10_appendbitsleft"): Ditto.
("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
Provide pattern with operands switched.
("*pre_z10_extv<mode>"):
Use new subst patterns.
("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
("*<risbg_n>_<mode>_ior_and_lshiftrt")
("*<risbg_n>_sidi_ior_and_lshiftrt")
("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
New patterns.
("*extzv_<mode>_sll", "*extzv_<mode>_srl")
("*extzv_<mode>_srl<clobbercc_or_nocc>")
("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
on zEC12.
("SINT"): New mode_iterator with SI, HI, QI.
* config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
duplication.

gcc/testsuite/ChangeLog:

2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/risbg-ll-1.c: Ported risbg tests from llvm.
* gcc.target/s390/risbg-ll-2.c: Ditto.
* gcc.target/s390/risbg-ll-3.c: Ditto.

From-SVN: r240414
gcc/ChangeLog
gcc/config/s390/s390.md
gcc/config/s390/subst.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/s390/risbg-ll-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/risbg-ll-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/risbg-ll-3.c [new file with mode: 0644]