This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: genrecog: warn of unmatchable predicate codes
On Wed, Dec 22, 2004 at 11:31:13PM -0500, DJ Delorie wrote:
> I could probably write a perl script to scan all the .md files for
> such errors and blindly fix them, but who knows what effects that will
> cause.
As it turns out, of the targets that have switched to use
define_predicate: alpha, arm, i386, ia64, and mips, only
i386 has any mistakes.
Fixed thus.
r~
* config/i386/predicates.md (sse_comparison_operator): Fix
typo in ieee test.
(arith_or_logical_operator): Downcase codes.
Index: config/i386/predicates.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/predicates.md,v
retrieving revision 1.9
diff -u -p -r1.9 predicates.md
--- config/i386/predicates.md 14 Dec 2004 22:45:28 -0000 1.9
+++ config/i386/predicates.md 23 Dec 2004 06:12:39 -0000
@@ -717,7 +717,7 @@
(define_special_predicate "sse_comparison_operator"
(ior (match_code "eq,lt,le,unordered,ne,unge,ungt,ordered")
(and (match_code "uneq,unlt,unle,ltgt,ge,gt")
- (match_code "!TARGET_IEEE_FP"))))
+ (match_test "!TARGET_IEEE_FP"))))
;; Return 1 if OP is a valid comparison operator in valid mode.
(define_predicate "ix86_comparison_operator"
@@ -805,8 +805,8 @@
;; Return true for ARITHMETIC_P.
(define_predicate "arith_or_logical_operator"
- (match_code "PLUS,MULT,AND,IOR,XOR,SMIN,SMAX,UMIN,UMAX,COMPARE,MINUS,DIV,
- MOD,UDIV,UMOD,ASHIFT,ROTATE,ASHIFTRT,LSHIFTRT,ROTATERT"))
+ (match_code "plus,mult,and,ior,xor,smin,smax,umin,umax,compare,minus,div,
+ mod,udiv,umod,ashift,rotate,ashiftrt,lshiftrt,rotatert"))
;; Return 1 if OP is a binary operator that can be promoted to wider mode.
;; Modern CPUs have same latency for HImode and SImode multiply,