re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode)
authorOleg Endo <olegendo@gcc.gnu.org>
Wed, 14 Jan 2015 23:46:34 +0000 (23:46 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Wed, 14 Jan 2015 23:46:34 +0000 (23:46 +0000)
commit83e3f98b8dd2baa580609846282e17f8a2313eae
treec350038554cd489a1334d9caa397aa1aad59d472
parentce2c3163d2a136471d5f581893a93f869428cd98
re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode)

gcc/
PR target/53988
* config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
reg-reg copies.
(sh_extending_set_of_reg): New struct.
(sh_find_extending_set_of_reg, sh_split_tst_subregs,
sh_remove_reg_dead_or_unused_notes): New Declarations.
* config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
sh_find_extending_set_of_reg, sh_split_tst_subregs,
sh_extending_set_of_reg::use_as_extended_reg): New functions.
* config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
convert to insn_and_split and use new function sh_split_tst_subregs.

gcc/testsuite/
PR target/53988
* gcc.target/sh/pr53988-1.c: New.

From-SVN: r219623
gcc/ChangeLog
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr53988-1.c [new file with mode: 0644]