re PR rtl-optimization/2903 ([arm] Optimization bug with long long arithmetic)
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 21 Nov 2002 14:51:27 +0000 (14:51 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 21 Nov 2002 14:51:27 +0000 (14:51 +0000)
PR optimization/2903
* arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1.
(anddi_notsesidi_di): Likewise.

From-SVN: r59347

gcc/ChangeLog
gcc/config/arm/arm.md

index 1e29b8d85c18aea424255935ccde9ff4d22abe16..14ea9a2a684e82feddde269147748c42bae24835 100644 (file)
@@ -1,3 +1,9 @@
+2002-11-21  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR optimization/2903
+       * arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1.
+       (anddi_notsesidi_di): Likewise.
+
 2002-11-21  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/h8300/h8300.c (print_operand): Use
index 1d57485b8ec1381a61f9a383625cfdb02be87806..82fafa3f7fa54ecc3c405786c7843892e290d96c 100644 (file)
   "TARGET_ARM
    && reload_completed
    && operands[0] != operands[1]"
-  [(set (match_dup 0) (and:SI (not:SI (match_dup 1)) (match_dup 2)))
+  [(set (match_dup 0) (and:SI (not:SI (match_dup 2)) (match_dup 1)))
    (set (match_dup 3) (match_dup 4))]
   "
   {
   [(set (match_operand:DI 0 "s_register_operand" "=&r,&r")
        (and:DI (not:DI (sign_extend:DI
                         (match_operand:SI 2 "s_register_operand" "r,r")))
-               (match_operand:DI 1 "s_register_operand" "?r,0")))]
+               (match_operand:DI 1 "s_register_operand" "0,r")))]
   "TARGET_ARM"
   "#"
   "TARGET_ARM && reload_completed"
-  [(set (match_dup 0) (and:SI (not:SI (match_dup 1)) (match_dup 2)))
+  [(set (match_dup 0) (and:SI (not:SI (match_dup 2)) (match_dup 1)))
    (set (match_dup 3) (and:SI (not:SI
                                (ashiftrt:SI (match_dup 2) (const_int 31)))
                               (match_dup 4)))]