This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ia64 cond_exec


On Mon, May 08, 2000 at 03:31:50PM -0700, Jim Wilson wrote:
> The change to extendsfdf2 to change "//nop" to "nop" had me confused for a
> while, as that just makes the code worse by adding an unnecessary nop.
> However, I suspect you needed to do this because we can't predicate a
> comment.  I think an explanatory comment would be useful here.

I've removed the insn instead.


r~


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

Index: ia64.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/ia64/ia64.md,v
retrieving revision 1.9
diff -c -p -d -r1.9 ia64.md
*** ia64.md	2000/05/07 01:56:25	1.9
--- ia64.md	2000/05/08 23:28:13
***************
*** 520,535 ****
  
  ;; Convert between floating point types of different sizes.
  
! ;; ??? Optimization opportunity here.
  
! (define_insn "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")])
  
  (define_insn "truncdfsf2"
    [(set (match_operand:SF 0 "register_operand" "=f")
--- 520,539 ----
  
  ;; Convert between floating point types of different sizes.
  
! ;; ??? 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_and_split "extendsfdf2"
    [(set (match_operand:DF 0 "register_operand" "=f,f")
  	(float_extend:DF (match_operand:SF 1 "register_operand" "0,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")

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]