ia64.md (extendsfdf2): Split the nop case out of existance.

* config/ia64/ia64.md (extendsfdf2): Split the nop case out
        of existance.

From-SVN: r33779
This commit is contained in:
Richard Henderson 2000-05-08 16:30:40 -07:00 committed by Richard Henderson
parent 111afdb380
commit e8e20f184b
2 changed files with 19 additions and 8 deletions

View File

@ -1,8 +1,15 @@
2000-05-08 Richard Henderson <rth@cygnus.com>
* config/ia64/ia64.h (predicate_operator): Declare.
* config/ia64/ia64.md (extendsfdf2): Split the nop case out
of existance.
Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net>
* cpplex.c (spell_token): New function.
(TOKEN_LEN): Add 1 for whitespace.
(_cpp_lex_file): Update to use spell_token.
(TOKEN_LEN): Add 1 for whitespace.
(_cpp_lex_file): Update to use spell_token.
* cpplib.h (E): Remove.
(TTYPE_TABLE): Update CPP_VSPACE entry.

View File

@ -520,16 +520,20 @@
;; Convert between floating point types of different sizes.
;; ??? Optimization opportunity here.
;; ??? Optimization opportunity here. Get rid of the insn altogether
;; when we can. Should probably use a scheme like has been proposed
;; for ia32 in dealing with operands that match unary operators. This
;; would let combine merge the thing into adjacent insns.
(define_insn "extendsfdf2"
(define_insn_and_split "extendsfdf2"
[(set (match_operand:DF 0 "register_operand" "=f,f")
(float_extend:DF (match_operand:SF 1 "register_operand" "0,f")))]
""
"@
nop 0
mov %0 = %1"
[(set_attr "type" "unknown,F")])
"mov %0 = %1"
""
[(set (match_dup 0) (float_extend:DF (match_dup 1)))]
"if (true_regnum (operands[0]) == true_regnum (operands[1])) DONE;"
[(set_attr "type" "F")])
(define_insn "truncdfsf2"
[(set (match_operand:SF 0 "register_operand" "=f")