Hi,

The *negnegt, *movtt patterns seem to have no effect anymore.  Removing
them doesn't show any changes in the CSiBE set and the known related
test cases in the testsuite pass.

Tested on sh-elf with

make -k check RUNTESTFLAGS="--target_board=sh-sim\{-m2/-ml,-m2/-mb,
-m2a/-mb,-m4/-ml,-m4/-mb,-m4a/-ml,-m4a/-mb}"

Committed as r235704.

Cheers,
Oleg

gcc/ChangeLog:
        * config/sh/sh.md (*negnegt, *movtt): Remove.
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 997088c..9b43542 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -8344,16 +8344,6 @@
     gcc_unreachable ();
 })
 
-;; The *negnegt pattern helps the combine pass to figure out how to fold 
-;; an explicit double T bit negation.
-(define_insn_and_split "*negnegt"
-  [(set (reg:SI T_REG)
-	(eq:SI (match_operand 0 "negt_reg_operand" "") (const_int 0)))]
-  "TARGET_SH1"
-  "#"
-  ""
-  [(const_int 0)])
-
 ;; Store (negated) T bit as all zeros or ones in a reg.
 ;;	subc	Rn,Rn	! Rn = Rn - Rn - T; T = T
 ;;	not	Rn,Rn	! Rn = 0 - Rn
@@ -8378,15 +8368,6 @@
 }
   [(set_attr "type" "arith")])
 
-;; The *movtt pattern eliminates redundant T bit to T bit moves / tests.
-(define_insn_and_split "*movtt"
-  [(set (reg:SI T_REG)
-	(eq:SI (match_operand 0 "t_reg_operand" "") (const_int 1)))]
-  "TARGET_SH1"
-  "#"
-  ""
-  [(const_int 0)])
-
 ;; Invert the T bit.
 ;; On SH2A we can use the nott insn.  On anything else this must be done with
 ;; multiple insns like:

Reply via email to