(compare define_split): Fix bugs in last addition.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 11 Apr 1994 22:20:53 +0000 (18:20 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 11 Apr 1994 22:20:53 +0000 (18:20 -0400)
From-SVN: r7037

gcc/config/alpha/alpha.md

index 7f2999f..f42cda6 100644 (file)
@@ -1,6 +1,6 @@
-;;- Machine description for DEC Alpha for GNU C compiler
-;;   Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
-;;   Contributed by Richard Kenner (kenner@nyu.edu)
+;; Machine description for DEC Alpha for GNU C compiler
+;; Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
 
 ;; This file is part of GNU CC.
 
                         operands[4], const0_rtx);
 }")
 
-;; We can convert such things as "a > 0xffff" to "t = a & 0xffff; t != 0".
+;; We can convert such things as "a > 0xffff" to "t = a & 0xffff; t != 0".
 ;; This eliminates one, and sometimes two, insns when the AND can be done
 ;; with a ZAP.
 (define_split
        || GET_CODE (operands[1]) == LEU
        || ((GET_CODE (operands[1]) == GT || GET_CODE (operands[1]) == LE)
           && extended_count (operands[2], DImode, 1) > 0))"
-  [(set (match_dup 4) (and:DI (match_dup 2) (match_dup 3)))
-   (set (match_dup 0) (match_dup 5))]
+  [(set (match_dup 4) (and:DI (match_dup 2) (match_dup 5)))
+   (set (match_dup 0) (match_dup 6))]
   "
 {
-  operands[5] = gen_rtx (((GET_CODE (operands[1]) == GTU
+  operands[5] = GEN_INT (~ INTVAL (operands[3]));
+  operands[6] = gen_rtx (((GET_CODE (operands[1]) == GTU
                           || GET_CODE (operands[1]) == GE)
-                         ? NE : LE),
+                         ? NE : EQ),
                         DImode, operands[4], const0_rtx);
 }")
 \f