(define_expand "sqrtsf2"
[(set (match_operand:SF 0 "register_operand" "")
(sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "")))]
- "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387) || TARGET_SSE_MATH"
+ "TARGET_USE_FANCY_MATH_387 || TARGET_SSE_MATH"
{
if (!TARGET_SSE_MATH)
operands[1] = force_reg (SFmode, operands[1]);
(define_insn "sqrtsf2_1"
[(set (match_operand:SF 0 "register_operand" "=f#x,x#f")
(sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "0#x,xm#f")))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& (TARGET_SSE_MATH && TARGET_MIX_SSE_I387)"
"@
fsqrt
(define_insn "sqrtsf2_i387"
[(set (match_operand:SF 0 "register_operand" "=f")
(sqrt:SF (match_operand:SF 1 "register_operand" "0")))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& !TARGET_SSE_MATH"
"fsqrt"
[(set_attr "type" "fpspc")
(define_expand "sqrtdf2"
[(set (match_operand:DF 0 "register_operand" "")
(sqrt:DF (match_operand:DF 1 "nonimmediate_operand" "")))]
- "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387)
+ "TARGET_USE_FANCY_MATH_387
|| (TARGET_SSE2 && TARGET_SSE_MATH)"
{
if (!TARGET_SSE2 || !TARGET_SSE_MATH)
(define_insn "sqrtdf2_1"
[(set (match_operand:DF 0 "register_operand" "=f#Y,Y#f")
(sqrt:DF (match_operand:DF 1 "nonimmediate_operand" "0#Y,Ym#f")))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& (TARGET_SSE2 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387)"
"@
fsqrt
(define_insn "sqrtdf2_i387"
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (match_operand:DF 1 "register_operand" "0")))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& (!TARGET_SSE2 || !TARGET_SSE_MATH)"
"fsqrt"
[(set_attr "type" "fpspc")
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (float_extend:DF
(match_operand:SF 1 "register_operand" "0"))))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& !(TARGET_SSE2 && TARGET_SSE_MATH)"
"fsqrt"
[(set_attr "type" "fpspc")
(define_insn "sqrtxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (match_operand:XF 1 "register_operand" "0")))]
- "TARGET_80387 && !TARGET_NO_FANCY_MATH_387
+ "TARGET_USE_FANCY_MATH_387
&& (TARGET_IEEE_FP || flag_unsafe_math_optimizations) "
"fsqrt"
[(set_attr "type" "fpspc")
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:DF 1 "register_operand" "0"))))]
- "TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
+ "TARGET_USE_FANCY_MATH_387"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "XF")
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:SF 1 "register_operand" "0"))))]
- "TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
+ "TARGET_USE_FANCY_MATH_387"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "XF")
UNSPEC_FPREM_U))
(set (reg:CCFP FPSR_REG)
(unspec:CCFP [(const_int 0)] UNSPEC_NOP))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fprem"
[(set_attr "type" "fpspc")
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))
(use (match_operand:SF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))
(use (match_operand:DF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))
(use (match_operand:XF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
UNSPEC_FPREM1_U))
(set (reg:CCFP FPSR_REG)
(unspec:CCFP [(const_int 0)] UNSPEC_NOP))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fprem1"
[(set_attr "type" "fpspc")
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))
(use (match_operand:SF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))
(use (match_operand:DF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))
(use (match_operand:XF 2 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx label = gen_label_rtx ();
(define_insn "*sindf2"
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(match_operand:DF 1 "register_operand" "0")] UNSPEC_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsin"
[(set_attr "type" "fpspc")
(define_insn "*sinsf2"
[(set (match_operand:SF 0 "register_operand" "=f")
(unspec:SF [(match_operand:SF 1 "register_operand" "0")] UNSPEC_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsin"
[(set_attr "type" "fpspc")
(unspec:DF [(float_extend:DF
(match_operand:SF 1 "register_operand" "0"))]
UNSPEC_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsin"
[(set_attr "type" "fpspc")
(define_insn "*sinxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")] UNSPEC_SIN))]
- "TARGET_80387 && !TARGET_NO_FANCY_MATH_387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsin"
[(set_attr "type" "fpspc")
(define_insn "*cosdf2"
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(match_operand:DF 1 "register_operand" "0")] UNSPEC_COS))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fcos"
[(set_attr "type" "fpspc")
(define_insn "*cossf2"
[(set (match_operand:SF 0 "register_operand" "=f")
(unspec:SF [(match_operand:SF 1 "register_operand" "0")] UNSPEC_COS))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fcos"
[(set_attr "type" "fpspc")
(unspec:DF [(float_extend:DF
(match_operand:SF 1 "register_operand" "0"))]
UNSPEC_COS))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fcos"
[(set_attr "type" "fpspc")
(define_insn "*cosxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")] UNSPEC_COS))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fcos"
[(set_attr "type" "fpspc")
UNSPEC_SINCOS_COS))
(set (match_operand:DF 1 "register_operand" "=u")
(unspec:DF [(match_dup 2)] UNSPEC_SINCOS_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsincos"
[(set_attr "type" "fpspc")
UNSPEC_SINCOS_COS))
(set (match_operand:SF 1 "register_operand" "=u")
(unspec:SF [(match_dup 2)] UNSPEC_SINCOS_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsincos"
[(set_attr "type" "fpspc")
(set (match_operand:DF 1 "register_operand" "=u")
(unspec:DF [(float_extend:DF
(match_dup 2))] UNSPEC_SINCOS_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsincos"
[(set_attr "type" "fpspc")
UNSPEC_SINCOS_COS))
(set (match_operand:XF 1 "register_operand" "=u")
(unspec:XF [(match_dup 2)] UNSPEC_SINCOS_SIN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsincos"
[(set_attr "type" "fpspc")
UNSPEC_TAN_ONE))
(set (match_operand:DF 1 "register_operand" "=u")
(unspec:DF [(match_dup 2)] UNSPEC_TAN_TAN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fptan"
[(set_attr "type" "fpspc")
UNSPEC_TAN_ONE))
(set (match_operand:DF 0 "register_operand" "")
(unspec:DF [(match_dup 1)] UNSPEC_TAN_TAN))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (DFmode);
UNSPEC_TAN_ONE))
(set (match_operand:SF 1 "register_operand" "=u")
(unspec:SF [(match_dup 2)] UNSPEC_TAN_TAN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fptan"
[(set_attr "type" "fpspc")
UNSPEC_TAN_ONE))
(set (match_operand:SF 0 "register_operand" "")
(unspec:SF [(match_dup 1)] UNSPEC_TAN_TAN))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (SFmode);
UNSPEC_TAN_ONE))
(set (match_operand:XF 1 "register_operand" "=u")
(unspec:XF [(match_dup 2)] UNSPEC_TAN_TAN))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fptan"
[(set_attr "type" "fpspc")
UNSPEC_TAN_ONE))
(set (match_operand:XF 0 "register_operand" "")
(unspec:XF [(match_dup 1)] UNSPEC_TAN_TAN))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(match_operand:DF 1 "register_operand" "u")]
UNSPEC_FPATAN))
(clobber (match_scratch:DF 3 "=1"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fpatan"
[(set_attr "type" "fpspc")
[(use (match_operand:DF 0 "register_operand" "=f"))
(use (match_operand:DF 2 "register_operand" "0"))
(use (match_operand:DF 1 "register_operand" "u"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx copy = gen_reg_rtx (DFmode);
(match_operand:DF 1 "register_operand" "")]
UNSPEC_FPATAN))
(clobber (match_scratch:DF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (DFmode);
(match_operand:SF 1 "register_operand" "u")]
UNSPEC_FPATAN))
(clobber (match_scratch:SF 3 "=1"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fpatan"
[(set_attr "type" "fpspc")
[(use (match_operand:SF 0 "register_operand" "=f"))
(use (match_operand:SF 2 "register_operand" "0"))
(use (match_operand:SF 1 "register_operand" "u"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx copy = gen_reg_rtx (SFmode);
(match_operand:SF 1 "register_operand" "")]
UNSPEC_FPATAN))
(clobber (match_scratch:SF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (SFmode);
(match_operand:XF 1 "register_operand" "u")]
UNSPEC_FPATAN))
(clobber (match_scratch:XF 3 "=1"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fpatan"
[(set_attr "type" "fpspc")
[(use (match_operand:XF 0 "register_operand" "=f"))
(use (match_operand:XF 2 "register_operand" "0"))
(use (match_operand:XF 1 "register_operand" "u"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx copy = gen_reg_rtx (XFmode);
(match_operand:XF 1 "register_operand" "")]
UNSPEC_FPATAN))
(clobber (match_scratch:XF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(clobber (match_scratch:XF 8 ""))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 7)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(clobber (match_scratch:XF 8 ""))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 7)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(unspec:XF [(match_dup 5) (match_dup 1)]
UNSPEC_FPATAN))
(clobber (match_scratch:XF 6 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(clobber (match_scratch:XF 8 ""))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 7)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(clobber (match_scratch:XF 8 ""))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 7)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(unspec:XF [(match_dup 1) (match_dup 5)]
UNSPEC_FPATAN))
(clobber (match_scratch:XF 6 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(match_operand:XF 1 "register_operand" "u")]
UNSPEC_FYL2X))
(clobber (match_scratch:XF 3 "=1"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fyl2x"
[(set_attr "type" "fpspc")
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(unspec:XF [(match_operand:XF 1 "register_operand" "")
(match_dup 2)] UNSPEC_FYL2X))
(clobber (match_scratch:XF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(unspec:XF [(match_operand:XF 1 "register_operand" "")
(match_dup 2)] UNSPEC_FYL2X))
(clobber (match_scratch:XF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(clobber (match_scratch:XF 5 ""))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(unspec:XF [(match_operand:XF 1 "register_operand" "")
(match_dup 2)] UNSPEC_FYL2X))
(clobber (match_scratch:XF 3 ""))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(match_operand:XF 1 "register_operand" "u")]
UNSPEC_FYL2XP1))
(clobber (match_scratch:XF 3 "=1"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fyl2xp1"
[(set_attr "type" "fpspc")
(define_expand "log1psf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "log1pdf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "log1pxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
ix86_emit_i387_log1p (operands[0], operands[1]);
UNSPEC_XTRACT_FRACT))
(set (match_operand:XF 1 "register_operand" "=u")
(unspec:XF [(match_dup 2)] UNSPEC_XTRACT_EXP))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fxtract"
[(set_attr "type" "fpspc")
(unspec:XF [(match_dup 2)] UNSPEC_XTRACT_EXP))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(unspec:XF [(match_dup 2)] UNSPEC_XTRACT_EXP))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 4)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
UNSPEC_XTRACT_FRACT))
(set (match_operand:XF 0 "register_operand" "")
(unspec:XF [(match_dup 1)] UNSPEC_XTRACT_EXP))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
(parallel [(set (match_operand:SI 0 "register_operand" "")
(fix:SI (match_dup 3)))
(clobber (reg:CC FLAGS_REG))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
operands[2] = gen_reg_rtx (XFmode);
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_F2XM1))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"f2xm1"
[(set_attr "type" "fpspc")
(set (match_operand:XF 1 "register_operand" "=u")
(unspec:XF [(match_dup 2) (match_dup 3)]
UNSPEC_FSCALE_EXP))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fscale"
[(set_attr "type" "fpspc")
UNSPEC_FSCALE_EXP))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 10)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
UNSPEC_FSCALE_EXP))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 10)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(set (match_dup 9)
(unspec:XF [(match_dup 8) (match_dup 4)]
UNSPEC_FSCALE_EXP))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
UNSPEC_FSCALE_EXP))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 10)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
UNSPEC_FSCALE_EXP))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 10)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(set (match_dup 9)
(unspec:XF [(match_dup 8) (match_dup 4)]
UNSPEC_FSCALE_EXP))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
UNSPEC_FSCALE_EXP))])
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 8)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
UNSPEC_FSCALE_EXP))])
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 8)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(set (match_dup 8)
(unspec:XF [(match_dup 7) (match_dup 3)]
UNSPEC_FSCALE_EXP))])]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
int i;
(set (match_dup 14) (plus:XF (match_dup 13) (match_dup 8)))
(set (match_operand:DF 0 "register_operand" "")
(float_truncate:DF (match_dup 14)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(set (match_dup 14) (plus:XF (match_dup 13) (match_dup 8)))
(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF (match_dup 14)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
(set (match_dup 12) (minus:XF (match_dup 10) (match_dup 9)))
(set (match_operand:XF 0 "register_operand" "")
(plus:XF (match_dup 12) (match_dup 7)))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx temp;
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_FRNDINT))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"frndint"
[(set_attr "type" "fpspc")
(define_expand "rintdf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "rintsf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "rintxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
emit_insn (gen_frndintxf2 (operands[0], operands[1]));
UNSPEC_FRNDINT_FLOOR))
(use (match_operand:HI 2 "memory_operand" "m"))
(use (match_operand:HI 3 "memory_operand" "m"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fldcw\t%3\n\tfrndint\n\tfldcw\t%2"
[(set_attr "type" "frndint")
(define_expand "floordf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "floorsf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "floorxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op2 = assign_386_stack_local (HImode, 1);
UNSPEC_FRNDINT_CEIL))
(use (match_operand:HI 2 "memory_operand" "m"))
(use (match_operand:HI 3 "memory_operand" "m"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fldcw\t%3\n\tfrndint\n\tfldcw\t%2"
[(set_attr "type" "frndint")
(define_expand "ceildf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "ceilsf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "ceilxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op2 = assign_386_stack_local (HImode, 1);
UNSPEC_FRNDINT_TRUNC))
(use (match_operand:HI 2 "memory_operand" "m"))
(use (match_operand:HI 3 "memory_operand" "m"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fldcw\t%3\n\tfrndint\n\tfldcw\t%2"
[(set_attr "type" "frndint")
(define_expand "btruncdf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "btruncsf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "btruncxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op2 = assign_386_stack_local (HImode, 1);
UNSPEC_FRNDINT_MASK_PM))
(use (match_operand:HI 2 "memory_operand" "m"))
(use (match_operand:HI 3 "memory_operand" "m"))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fldcw\t%3\n\tfrndint\n\tfclex\n\tfldcw\t%2"
[(set_attr "type" "frndint")
(define_expand "nearbyintdf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "nearbyintsf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op0 = gen_reg_rtx (XFmode);
(define_expand "nearbyintxf2"
[(use (match_operand:XF 0 "register_operand" ""))
(use (match_operand:XF 1 "register_operand" ""))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
rtx op2 = assign_386_stack_local (HImode, 1);