]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode)
authorOleg Endo <olegendo@gcc.gnu.org>
Tue, 10 Mar 2015 08:17:31 +0000 (08:17 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Tue, 10 Mar 2015 08:17:31 +0000 (08:17 +0000)
gcc/
PR target/53988
* config/sh/sh.md (*tst<mode>_t_zero): Remove insns.

gcc/testsuite/
PR target/53988
* gcc.target/sh/pr53988.c: Mark tests as xfail.

From-SVN: r221307

gcc/ChangeLog
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr53988.c

index 3e516203c60cf153f3e0ce6ff58e50897288c09d..cd89eb707bf59776471706c2eb9316e777295dea 100644 (file)
@@ -1,3 +1,8 @@
+2015-03-10  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/53988
+       * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
+
 2015-03-10  Alan Modra  <amodra@gmail.com>
 
        PR target/65286
index 5eb68e9737e43f0ef67655da9c173d534fefb00c..1c4142c308e6857672a8a272dcccd82af45392f6 100644 (file)
   "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<mode>_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")) <lowpart_le>)
-         (const_int 0)))]
-  "TARGET_SH1 && TARGET_LITTLE_ENDIAN"
-  "tst %0,%1"
-  [(set_attr "type" "mt_group")])
-
-(define_insn "*tst<mode>_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")) <lowpart_be>)
-         (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)
index c723897c22707686b5f3c9ce0574fc8a96d8a46b..3869e12f45fb4417d8a7cfce5f69e3842fd529e2 100644 (file)
@@ -1,3 +1,8 @@
+2015-03-10  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/53988
+       * gcc.target/sh/pr53988.c: Mark tests as xfail.
+
 2015-03-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        Backport from mainline
index 4bade1efb73f48b141c20d4ec23a102a8393ce5f..407754781ff780b23b229df9623ab041b2b9b763 100644 (file)
@@ -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)