(mulsidi3 matcher): Change predicate const_int_operand to const_sint32_operand.
authorTorbjorn Granlund <tege@gnu.org>
Thu, 26 Sep 1996 21:55:07 +0000 (21:55 +0000)
committerTorbjorn Granlund <tege@gnu.org>
Thu, 26 Sep 1996 21:55:07 +0000 (21:55 +0000)
(mulsidi3 matcher): Change predicate const_int_operand
to const_sint32_operand.  Get rid of bogus range condition.

From-SVN: r12850

gcc/config/m68k/m68k.md

index da9ff37ce24286e607a1c51abbccbc28d0cab92c..538c8ddac13293b3a98d784c983465a6c4066129 100644 (file)
 (define_insn ""
   [(set (match_operand:SI 0 "register_operand" "=d")
        (mult:SI (match_operand:SI 1 "register_operand" "%0")
-                (match_operand:SI 2 "const_int_operand" "n")))
+                (match_operand:SI 2 "const_sint32_operand" "")))
    (set (match_operand:SI 3 "register_operand" "=d")
        (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
                                           (match_dup 2))
                                  (const_int 32))))]
-  "TARGET_68020 && !TARGET_68060 && !TARGET_5200
-   /* This test is a noop on 32 bit machines,
-      but important for a cross-compiler hosted on 64-bit machines.  */
-   && INTVAL (operands[2]) <= 0x7fffffff
-   && INTVAL (operands[2]) >= -0x80000000"
+  "TARGET_68020 && !TARGET_68060 && !TARGET_5200"
   "muls%.l %2,%3:%0")
 
 (define_expand "umulsi3_highpart"