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


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

Re: 2.95: Alpha ev6 float compare problem


On Mon, Aug 02, 1999 at 01:47:56AM -0500, Brad Lucier wrote:
> The problem is that when compiling for the EV6, the trap precision
> was set to the entire program to avoid inserting trapb instructions
> or worrying about trap shadows.  This didn't use the correct instructions
> for compares.

Ah.  The correct fix, IMO, is to check what we actually mean
in the .md file -- namely alpha_fptm >= ALPHA_FPTM_SU.  The
fact that ALPHA_FPTM_SU implies ALPHA_TP_INSN for cpu < EV6
is incidental.

I've checked this into mainline.  The gcc 2.95 branch gets
the simpler change of not trying to elide trapb insns on ev6.


r~



        * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
        -mcpu parsing code.
        (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
        * alpha.md (all fp insns): Likewise.

Index: alpha.md
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/alpha/alpha.md,v
retrieving revision 1.83
diff -c -p -d -r1.83 alpha.md
*** alpha.md	1999/07/01 20:54:41	1.83
--- alpha.md	1999/08/02 19:25:57
***************
*** 1836,1842 ****
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(plus:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "add%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1836,1842 ----
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(plus:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "add%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1854,1860 ****
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(plus:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1854,1860 ----
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(plus:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1873,1879 ****
  	(plus:DF (float_extend:DF
  		  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1873,1879 ----
  	(plus:DF (float_extend:DF
  		  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1884,1890 ****
  		  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
  		 (float_extend:DF
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1884,1890 ----
  		  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
  		 (float_extend:DF
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "add%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1933,1939 ****
  	(subreg:SI (fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")) 0))
     (clobber (match_scratch:DI 2 "=&f"))
     (clobber (match_scratch:SI 3 "=&f"))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1933,1939 ----
  	(subreg:SI (fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")) 0))
     (clobber (match_scratch:DI 2 "=&f"))
     (clobber (match_scratch:SI 3 "=&f"))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1942,1948 ****
    [(set (match_operand:SI 0 "memory_operand" "=m")
  	(subreg:SI (fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")) 0))
     (clobber (match_scratch:DI 2 "=f"))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1942,1948 ----
    [(set (match_operand:SI 0 "memory_operand" "=m")
  	(subreg:SI (fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")) 0))
     (clobber (match_scratch:DI 2 "=f"))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1950,1956 ****
  (define_insn ""
    [(set (match_operand:DI 0 "reg_no_subreg_operand" "=&f")
  	(fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvt%-q%(c %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1950,1956 ----
  (define_insn ""
    [(set (match_operand:DI 0 "reg_no_subreg_operand" "=&f")
  	(fix:DI (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvt%-q%(c %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 1995,2001 ****
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))) 0))
     (clobber (match_scratch:DI 2 "=&f"))
     (clobber (match_scratch:SI 3 "=&f"))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 1995,2001 ----
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))) 0))
     (clobber (match_scratch:DI 2 "=&f"))
     (clobber (match_scratch:SI 3 "=&f"))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2005,2011 ****
  	(subreg:SI (fix:DI (float_extend:DF
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))) 0))
     (clobber (match_scratch:DI 2 "=f"))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2005,2011 ----
  	(subreg:SI (fix:DI (float_extend:DF
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))) 0))
     (clobber (match_scratch:DI 2 "=f"))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "#"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2014,2020 ****
    [(set (match_operand:DI 0 "reg_no_subreg_operand" "=&f")
  	(fix:DI (float_extend:DF
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvt%-q%(c %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2014,2020 ----
    [(set (match_operand:DI 0 "reg_no_subreg_operand" "=&f")
  	(fix:DI (float_extend:DF
  		 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvt%-q%(c %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2031,2037 ****
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(float:SF (match_operand:DI 1 "reg_no_subreg_operand" "f")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvtq%,%+%& %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2031,2037 ----
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(float:SF (match_operand:DI 1 "reg_no_subreg_operand" "f")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvtq%,%+%& %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2047,2053 ****
  (define_insn ""
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(float:DF (match_operand:DI 1 "reg_no_subreg_operand" "f")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvtq%-%+%& %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2047,2053 ----
  (define_insn ""
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(float:DF (match_operand:DI 1 "reg_no_subreg_operand" "f")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvtq%-%+%& %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2066,2072 ****
    "TARGET_FP"
  "
  {
!   if (alpha_tp == ALPHA_TP_INSN)
      emit_insn (gen_extendsfdf2_tp (operands[0],
  				   force_reg (SFmode, operands[1])));
    else
--- 2066,2072 ----
    "TARGET_FP"
  "
  {
!   if (alpha_fptm >= ALPHA_FPTM_SU)
      emit_insn (gen_extendsfdf2_tp (operands[0],
  				   force_reg (SFmode, operands[1])));
    else
***************
*** 2078,2084 ****
  (define_insn "extendsfdf2_tp"
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(float_extend:DF (match_operand:SF 1 "register_operand" "f")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvtsts %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2078,2084 ----
  (define_insn "extendsfdf2_tp"
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(float_extend:DF (match_operand:SF 1 "register_operand" "f")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvtsts %1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2086,2092 ****
  (define_insn "extendsfdf2_no_tp"
    [(set (match_operand:DF 0 "register_operand" "=f,f,m")
  	(float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "f,m,f")))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "@
     fmov %1,%0
     ld%, %0,%1
--- 2086,2092 ----
  (define_insn "extendsfdf2_no_tp"
    [(set (match_operand:DF 0 "register_operand" "=f,f,m")
  	(float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "f,m,f")))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "@
     fmov %1,%0
     ld%, %0,%1
***************
*** 2097,2103 ****
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(float_truncate:SF (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cvt%-%,%)%& %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2097,2103 ----
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(float_truncate:SF (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cvt%-%,%)%& %R1,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2114,2120 ****
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(div:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
  		(match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "div%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "opsize" "si")
--- 2114,2120 ----
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(div:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
  		(match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "div%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "opsize" "si")
***************
*** 2134,2140 ****
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		(match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
--- 2134,2140 ----
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		(match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
***************
*** 2152,2158 ****
    [(set (match_operand:DF 0 "register_operand" "=f")
  	(div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		(match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
--- 2152,2158 ----
    [(set (match_operand:DF 0 "register_operand" "=f")
  	(div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		(match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
***************
*** 2162,2168 ****
  	(div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		(float_extend:DF
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
--- 2162,2168 ----
  	(div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		(float_extend:DF
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
***************
*** 2171,2177 ****
    [(set (match_operand:DF 0 "register_operand" "=f")
  	(div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		(float_extend:DF (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
--- 2171,2177 ----
    [(set (match_operand:DF 0 "register_operand" "=f")
  	(div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		(float_extend:DF (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "div%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fdiv")
     (set_attr "trap" "yes")])
***************
*** 2180,2186 ****
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(mult:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "mul%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
--- 2180,2186 ----
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(mult:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "mul%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
***************
*** 2198,2204 ****
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(mult:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
--- 2198,2204 ----
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(mult:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
***************
*** 2217,2223 ****
  	(mult:DF (float_extend:DF
  		  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
--- 2217,2223 ----
  	(mult:DF (float_extend:DF
  		  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
***************
*** 2228,2234 ****
  		  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
  		 (float_extend:DF
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
--- 2228,2234 ----
  		  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
  		 (float_extend:DF
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "mul%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fmul")
     (set_attr "trap" "yes")])
***************
*** 2237,2243 ****
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(minus:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "sub%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2237,2243 ----
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(minus:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
  		  (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "sub%,%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2255,2261 ****
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2255,2261 ----
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2274,2280 ****
  	(minus:DF (float_extend:DF
  		   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2274,2280 ----
  	(minus:DF (float_extend:DF
  		   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2284,2290 ****
  	(minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		  (float_extend:DF
  		   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2284,2290 ----
  	(minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
  		  (float_extend:DF
  		   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2295,2301 ****
  		   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		  (float_extend:DF
  		   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2295,2301 ----
  		   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
  		  (float_extend:DF
  		   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "sub%-%)%& %R1,%R2,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2303,2309 ****
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(sqrt:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && TARGET_FIX && alpha_tp == ALPHA_TP_INSN"
    "sqrt%,%)%& %R1,%0"
    [(set_attr "type" "fsqrt")
     (set_attr "opsize" "si")
--- 2303,2309 ----
  (define_insn ""
    [(set (match_operand:SF 0 "register_operand" "=&f")
  	(sqrt:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && TARGET_FIX && alpha_fptm >= ALPHA_FPTM_SU"
    "sqrt%,%)%& %R1,%0"
    [(set_attr "type" "fsqrt")
     (set_attr "opsize" "si")
***************
*** 2321,2327 ****
  (define_insn ""
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(sqrt:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && TARGET_FIX && alpha_tp == ALPHA_TP_INSN"
    "sqrt%-%)%& %R1,%0"
    [(set_attr "type" "fsqrt")
     (set_attr "trap" "yes")])
--- 2321,2327 ----
  (define_insn ""
    [(set (match_operand:DF 0 "register_operand" "=&f")
  	(sqrt:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
!   "TARGET_FP && TARGET_FIX && alpha_fptm >= ALPHA_FPTM_SU"
    "sqrt%-%)%& %R1,%0"
    [(set_attr "type" "fsqrt")
     (set_attr "trap" "yes")])
***************
*** 2749,2755 ****
  	(match_operator:DF 1 "alpha_comparison_operator"
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2749,2755 ----
  	(match_operator:DF 1 "alpha_comparison_operator"
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2759,2765 ****
  	(match_operator:DF 1 "alpha_comparison_operator"
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2759,2765 ----
  	(match_operator:DF 1 "alpha_comparison_operator"
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2770,2776 ****
  			   [(float_extend:DF
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2770,2776 ----
  			   [(float_extend:DF
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2781,2787 ****
  			   [(float_extend:DF
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2781,2787 ----
  			   [(float_extend:DF
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2792,2798 ****
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2792,2798 ----
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2803,2809 ****
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2803,2809 ----
  			   [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2815,2821 ****
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2815,2821 ----
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
***************
*** 2827,2833 ****
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])
--- 2827,2833 ----
  			     (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
  			    (float_extend:DF
  			     (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
!   "TARGET_FP && alpha_fptm < ALPHA_FPTM_SU"
    "cmp%-%C1%' %R2,%R3,%0"
    [(set_attr "type" "fadd")
     (set_attr "trap" "yes")])

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