h8300.md (logical<mode>3_sn, [...]): Merge into a single pattern.
authorJeff Law <law@redhat.com>
Wed, 4 Jul 2018 02:22:35 +0000 (20:22 -0600)
committerJeff Law <law@gcc.gnu.org>
Wed, 4 Jul 2018 02:22:35 +0000 (20:22 -0600)
        * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
        into a single pattern.

From-SVN: r262369

gcc/ChangeLog
gcc/config/h8300/h8300.md

index c3ea01452d6f098cddf229861c3926ec8bac6f43..cd8f6ab5cbc91fc306776a49f58e9d33f1d7cc41 100644 (file)
@@ -13,6 +13,9 @@
 
 2018-07-03  Jeff Law  <law@redhat.com>
 
+       * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
+       into a single pattern.
+
        * config/h8300/h8300.md (ors code_iterator): New.
        (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into
        a single pattern and single splitter.
index f3cf42161d086b0139b4dda640737673d93395f2..70f96c7481f2811c9116a9c64e5c79e5c9b762c6 100644 (file)
 ;; {AND,IOR,XOR}{HI3,SI3} PATTERNS
 ;; ----------------------------------------------------------------------
 
-;; We need a separate pattern here because machines other than the
-;; original H8300 don't have to split the 16-bit operand into a pair
-;; of high/low instructions, so we can accept literal addresses, that
-;; have to be loaded into a register on H8300.
-
-(define_insn "*logical<mode>3_sn"
-  [(set (match_operand:HSI 0 "h8300_dst_operand" "=rQ")
-       (match_operator:HSI 3 "bit_operator"
-        [(match_operand:HSI 1 "h8300_dst_operand" "%0")
-         (match_operand:HSI 2 "h8300_src_operand" "rQi")]))]
-  "(TARGET_H8300S || TARGET_H8300H) && h8300_operands_match_p (operands)"
-{
-  return output_logical_op (<MODE>mode, operands);
-}
-  [(set (attr "length")
-       (symbol_ref "compute_logical_op_length (<MODE>mode, operands)"))
-   (set (attr "cc")
-       (symbol_ref "compute_logical_op_cc (<MODE>mode, operands)"))])
-
 (define_insn "*logical<mode>3"
   [(set (match_operand:HSI 0 "h8300_dst_operand" "=rQ")
        (match_operator:HSI 3 "bit_operator"
          [(match_operand:HSI 1 "h8300_dst_operand" "%0")
           (match_operand:HSI 2 "h8300_src_operand" "rQi")]))]
   "h8300_operands_match_p (operands)"
-{
-  return output_logical_op (<MODE>mode, operands);
-}
+  { return output_logical_op (<MODE>mode, operands); }
   [(set (attr "length")
        (symbol_ref "compute_logical_op_length (<MODE>mode, operands)"))
    (set (attr "cc")