From: Oleg Endo Date: Tue, 10 Mar 2015 08:17:31 +0000 (+0000) Subject: re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode) X-Git-Tag: releases/gcc-4.8.5~224 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=355666c0804d2bfea11726d40900fa39efdee9de;p=thirdparty%2Fgcc.git re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode) gcc/ PR target/53988 * config/sh/sh.md (*tst_t_zero): Remove insns. gcc/testsuite/ PR target/53988 * gcc.target/sh/pr53988.c: Mark tests as xfail. From-SVN: r221307 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e516203c60c..cd89eb707bf5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-03-10 Oleg Endo + + PR target/53988 + * config/sh/sh.md (*tst_t_zero): Remove insns. + 2015-03-10 Alan Modra PR target/65286 diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 5eb68e9737e4..1c4142c308e6 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -651,32 +651,6 @@ "tst #255,%0" [(set_attr "type" "mt_group")]) -;; This pattern might be risky because it also tests the upper bits and not -;; only the subreg. However, it seems that combine will get to this only -;; when testing sign/zero extended values. In this case the extended upper -;; bits do not matter. -(define_insn "*tst_t_zero" - [(set (reg:SI T_REG) - (eq:SI - (subreg:QIHI - (and:SI (match_operand:SI 0 "arith_reg_operand" "%r") - (match_operand:SI 1 "arith_reg_operand" "r")) ) - (const_int 0)))] - "TARGET_SH1 && TARGET_LITTLE_ENDIAN" - "tst %0,%1" - [(set_attr "type" "mt_group")]) - -(define_insn "*tst_t_zero" - [(set (reg:SI T_REG) - (eq:SI - (subreg:QIHI - (and:SI (match_operand:SI 0 "arith_reg_operand" "%r") - (match_operand:SI 1 "arith_reg_operand" "r")) ) - (const_int 0)))] - "TARGET_SH1 && !TARGET_LITTLE_ENDIAN" - "tst %0,%1" - [(set_attr "type" "mt_group")]) - ;; Extract LSB, negate and store in T bit. (define_insn "tstsi_t_and_not" [(set (reg:SI T_REG) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c723897c2270..3869e12f45fb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-03-10 Oleg Endo + + PR target/53988 + * gcc.target/sh/pr53988.c: Mark tests as xfail. + 2015-03-04 Thomas Preud'homme Backport from mainline diff --git a/gcc/testsuite/gcc.target/sh/pr53988.c b/gcc/testsuite/gcc.target/sh/pr53988.c index 4bade1efb73f..407754781ff7 100644 --- a/gcc/testsuite/gcc.target/sh/pr53988.c +++ b/gcc/testsuite/gcc.target/sh/pr53988.c @@ -5,9 +5,9 @@ /* { dg-do compile { target "sh*-*-*" } } */ /* { dg-options "-O1" } */ /* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */ -/* { dg-final { scan-assembler-times "tst\tr" 8 } } */ -/* { dg-final { scan-assembler-not "tst\t#255" } } */ -/* { dg-final { scan-assembler-not "exts|extu|and|movu" } } */ +/* { dg-final { scan-assembler-times "tst\tr" 8 { xfail *-*-*} } } */ +/* { dg-final { scan-assembler-not "tst\t#255" { xfail *-*-*} } } */ +/* { dg-final { scan-assembler-not "exts|extu|and|movu" { xfail *-*-*} } } */ int test00 (char* a, char* b, int c, int d)