OSDN Git Service

* config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Apr 2000 07:54:16 +0000 (07:54 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Apr 2000 07:54:16 +0000 (07:54 +0000)
snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
seqdi_zero_trunc+1): Allow splits only if registers are
different.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32928 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 941d353..e4926a4 100644 (file)
@@ -1,3 +1,10 @@
+2000-04-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
+       snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
+       seqdi_zero_trunc+1): Allow splits only if registers are
+       different.
+
 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
 
        * acconfig.h: Add HAVE_GAS_HIDDEN.
index f72f8a8..458038d 100644 (file)
   [(set (match_operand:DI 0 "register_operand" "")
         (ne:DI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:DI (ne:DI (match_dup 1)
                                               (const_int 0))
   [(set (match_operand:DI 0 "register_operand" "")
         (neg:DI (ne:DI (match_operand:DI 1 "register_operand" "")
                        (const_int 0))))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:DI (ne:DI (match_dup 1)
                                               (const_int 0))
   [(set (match_operand:SI 0 "register_operand" "")
         (ne:SI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:SI (ne:DI (match_dup 1)
                                               (const_int 0))
   [(set (match_operand:DI 0 "register_operand" "")
         (eq:DI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:DI (eq:DI (match_dup 1)
                                               (const_int 0))
   [(set (match_operand:DI 0 "register_operand" "")
         (neg:DI (eq:DI (match_operand:DI 1 "register_operand" "")
                        (const_int 0))))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:DI (eq:DI (match_dup 1)
                                               (const_int 0))
   [(set (match_operand:SI 0 "register_operand" "")
         (eq:SI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
-  "TARGET_ARCH64"
+  "TARGET_ARCH64
+   && ! reg_overlap_mentioned_p (operands[1], operands[0])"
   [(set (match_dup 0) (const_int 0))
    (set (match_dup 0) (if_then_else:SI (eq:DI (match_dup 1)
                                               (const_int 0))