From e8e20f184bc4518d217e28a3be28cd854b6c4040 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 8 May 2000 16:30:40 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 11 +++++++++-- gcc/config/ia64/ia64.md | 16 ++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 95a77c7aca4..20873e6878f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,15 @@ +2000-05-08 Richard Henderson + + * 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 * 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. diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index 6b7eb159bfe..a83fb3444e8 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -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")