Jan Hubicka <hubicka@freesoft.cz>
authorJan Hubicka <hubicka@freesoft.cz>
Fri, 1 Oct 1999 01:19:16 +0000 (03:19 +0200)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 1 Oct 1999 01:19:16 +0000 (18:19 -0700)
        * i386.md (truncatexfdf splitters): Do not use subreg.
        (fop XFmode patterns): Fix mode in operand testing.

From-SVN: r29742

gcc/ChangeLog
gcc/config/i386/i386.md

index 34656de2a12b7cb5304d6885c49c624eb673a65b..b38ff432d293d9d3b7e279a2c16a9b8613acbe95 100644 (file)
@@ -1,3 +1,8 @@
+Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
+
+       * i386.md (truncatexfdf splitters): Do not use subreg.
+       (fop XFmode patterns): Fix mode in operand testing.
+
 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
 
        * jump.c (jump_optimize_1): Amend last change to test only the
index 53b23f87a8dc3d3f3fc2570188cd63e3bd5dd49e..b2adc391e073a46ca4124e02a96ac52c4129bfac 100644 (file)
        (float_truncate:DF
         (match_operand:XF 1 "register_operand" "")))
    (clobber (match_operand:DF 2 "memory_operand" ""))]
-  "TARGET_80387 && reload_completed"
-  [(set (match_dup 0) (subreg:DF (match_dup 1) 0))]
+  "TARGET_80387"
+  [(set (match_dup 0) (float_truncate:DF (match_dup 1)))]
   "")
 
 (define_split
         (match_operand:XF 1 "register_operand" "")))
    (clobber (match_operand:DF 2 "memory_operand" ""))]
   "TARGET_80387 && reload_completed"
-  [(set (match_dup 2) (subreg:DF (match_dup 1) 0))
+  [(set (match_dup 2) (float_truncate:DF (match_dup 1)))
    (set (match_dup 0) (match_dup 2))]
   "")
+
 \f
 ;; %%% Break up all these bad boys.
 
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))])
   "TARGET_80387 && TARGET_USE_FIOP"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))
   "TARGET_80387 && TARGET_USE_FIOP"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))])
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))])
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))])
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type") 
-        (cond [(match_operand:DF 3 "mult_operator" "") 
+        (cond [(match_operand:XF 3 "mult_operator" "") 
                  (const_string "fmul")
-               (match_operand:DF 3 "div_operator" "") 
+               (match_operand:XF 3 "div_operator" "") 
                  (const_string "fdiv")
               ]
               (const_string "fop")))])