Commit 0530bc70 by Andrew Pinski Committed by Andrew Pinski

rs6000.md (copysignsf3): New expand.

2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>

        * config/rs6000/rs6000.md (copysignsf3): New expand.
        (copysigndf3): Likewise.

From-SVN: r94497
parent 3d8a8aad
2005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (copysignsf3): New expand.
(copysigndf3): Likewise.
2005-01-31 Steven Bosscher <stevenb@suse.de>
* recog.c (constrain_operands): Only look for earlyclobber operand
......
......@@ -4705,6 +4705,42 @@
"fsqrt %0,%1"
[(set_attr "type" "dsqrt")])
(define_expand "copysignsf3"
[(set (match_dup 3)
(abs:SF (match_operand:SF 1 "gpc_reg_operand" "")))
(set (match_dup 4)
(neg:SF (abs:SF (match_dup 1))))
(set (match_operand:SF 0 "gpc_reg_operand" "")
(if_then_else:SF (ge (match_operand:SF 2 "gpc_reg_operand" "")
(match_dup 5))
(match_dup 3)
(match_dup 4)))]
"TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS
&& !HONOR_NANS (SFmode) && !HONOR_SIGNED_ZEROS (SFmode)"
{
operands[3] = gen_reg_rtx (SFmode);
operands[4] = gen_reg_rtx (SFmode);
operands[5] = CONST0_RTX (SFmode);
})
(define_expand "copysigndf3"
[(set (match_dup 3)
(abs:DF (match_operand:DF 1 "gpc_reg_operand" "")))
(set (match_dup 4)
(neg:DF (abs:DF (match_dup 1))))
(set (match_operand:DF 0 "gpc_reg_operand" "")
(if_then_else:DF (ge (match_operand:DF 2 "gpc_reg_operand" "")
(match_dup 5))
(match_dup 3)
(match_dup 4)))]
"TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS
&& !HONOR_NANS (DFmode) && !HONOR_SIGNED_ZEROS (DFmode)"
{
operands[3] = gen_reg_rtx (DFmode);
operands[4] = gen_reg_rtx (DFmode);
operands[5] = CONST0_RTX (DFmode);
})
;; For MIN, MAX, and conditional move, we use DEFINE_EXPAND's that involve a
;; fsel instruction and some auxiliary computations. Then we just have a
;; single DEFINE_INSN for fsel and the define_splits to make them if made by
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment