summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-07 00:21:27 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-07 00:21:27 +0000
commit024a7b16b377574a89685bf14d5ee3c849150bc9 (patch)
treec3aab63133a2978d1b3a4e6768f065ae408fd34a /gcc
parent97e1a70bce03c1ae1a01f7f869b9c896a442ff86 (diff)
downloadgcc-024a7b16b377574a89685bf14d5ee3c849150bc9.tar.gz
* config/rs6000/predicates.md (branch_comparison_operator): Remove
redundant match_code test. (scc_comparison_operator): Swap match_operand and match_code tests. (branch_positive_comparison_operator): Same. (trap_comparison_operator): Use comparison_operator and swap with match_code test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96000 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/rs6000/predicates.md24
2 files changed, 21 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 52b36d7625f..521aebed82d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2005-03-06 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/predicates.md (branch_comparison_operator): Remove
+ redundant match_code test.
+ (scc_comparison_operator): Swap match_operand and match_code
+ tests.
+ (branch_positive_comparison_operator): Same.
+ (trap_comparison_operator): Use comparison_operator and swap with
+ match_code test.
+
2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
PR target/20288
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index 0f395612c3c..5bf3e1765fe 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -680,30 +680,28 @@
;; instruction. We check the opcode against the mode of the CC value.
;; validate_condition_mode is an assertion.
(define_predicate "branch_comparison_operator"
- (and (match_code "eq,ne,le,lt,ge,gt,leu,ltu,geu,gtu,unordered,ordered,unge,unle")
- (and (match_operand 0 "comparison_operator")
- (and (match_test "GET_MODE_CLASS (GET_MODE (XEXP (op, 0))) == MODE_CC")
- (match_test "validate_condition_mode (GET_CODE (op),
- GET_MODE (XEXP (op, 0))),
- 1")))))
+ (and (match_operand 0 "comparison_operator")
+ (and (match_test "GET_MODE_CLASS (GET_MODE (XEXP (op, 0))) == MODE_CC")
+ (match_test "validate_condition_mode (GET_CODE (op),
+ GET_MODE (XEXP (op, 0))),
+ 1"))))
;; Return 1 if OP is a comparison operation that is valid for an SCC insn --
;; it must be a positive comparison.
(define_predicate "scc_comparison_operator"
- (and (match_code "eq,lt,gt,ltu,gtu,unordered")
- (match_operand 0 "branch_comparison_operator")))
+ (and (match_operand 0 "branch_comparison_operator")
+ (match_code "eq,lt,gt,ltu,gtu,unordered")))
;; Return 1 if OP is a comparison operation that is valid for a branch
;; insn, which is true if the corresponding bit in the CC register is set.
(define_predicate "branch_positive_comparison_operator"
- (and (match_code "eq,lt,gt,ltu,gtu,unordered")
- (match_operand 0 "branch_comparison_operator")))
+ (and (match_operand 0 "branch_comparison_operator")
+ (match_code "eq,lt,gt,ltu,gtu,unordered")))
;; Return 1 is OP is a comparison operation that is valid for a trap insn.
(define_predicate "trap_comparison_operator"
- (and (match_code "eq,ne,le,lt,ge,gt,leu,ltu,geu,gtu")
- (match_test "(mode == VOIDmode || mode == GET_MODE (op))
- && COMPARISON_P (op)")))
+ (and (match_operand 0 "comparison_operator")
+ (match_code "eq,ne,le,lt,ge,gt,leu,ltu,geu,gtu")))
;; Return 1 if OP is a load multiple operation, known to be a PARALLEL.
(define_predicate "load_multiple_operation"