mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-30 13:39:46 +08:00
convert.c (convert_to_real): Don't convert (float)floor(double d) to floorf((float)d).
2005-10-05 Dale Johannesen <dalej@apple.com> * convert.c (convert_to_real): Don't convert (float)floor(double d) to floorf((float)d). From-SVN: r105006
This commit is contained in:
parent
8acdc22e8e
commit
9f85ecfe7f
@ -1,3 +1,8 @@
|
||||
2005-10-05 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* convert.c (convert_to_real): Don't convert
|
||||
(float)floor(double d) to floorf((float)d).
|
||||
|
||||
2005-10-05 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* config/arm/arm.md (insv): Use gen_int_mode in more places.
|
||||
|
@ -200,35 +200,9 @@ convert_to_real (tree type, tree expr)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (optimize
|
||||
&& (((fcode == BUILT_IN_FLOORL
|
||||
|| fcode == BUILT_IN_CEILL
|
||||
|| fcode == BUILT_IN_ROUNDL
|
||||
|| fcode == BUILT_IN_RINTL
|
||||
|| fcode == BUILT_IN_TRUNCL
|
||||
|| fcode == BUILT_IN_NEARBYINTL)
|
||||
&& (TYPE_MODE (type) == TYPE_MODE (double_type_node)
|
||||
|| TYPE_MODE (type) == TYPE_MODE (float_type_node)))
|
||||
|| ((fcode == BUILT_IN_FLOOR
|
||||
|| fcode == BUILT_IN_CEIL
|
||||
|| fcode == BUILT_IN_ROUND
|
||||
|| fcode == BUILT_IN_RINT
|
||||
|| fcode == BUILT_IN_TRUNC
|
||||
|| fcode == BUILT_IN_NEARBYINT)
|
||||
&& (TYPE_MODE (type) == TYPE_MODE (float_type_node)))))
|
||||
{
|
||||
tree fn = mathfn_built_in (type, fcode);
|
||||
|
||||
if (fn)
|
||||
{
|
||||
tree arg0 = strip_float_extensions (TREE_VALUE (TREE_OPERAND (expr,
|
||||
1)));
|
||||
tree arglist = build_tree_list (NULL_TREE,
|
||||
fold (convert_to_real (type, arg0)));
|
||||
|
||||
return build_function_call_expr (fn, arglist);
|
||||
}
|
||||
}
|
||||
/* This code formerly changed (float)floor(double d) to
|
||||
floorf((float)d). This is incorrect, because (float)d uses
|
||||
round-to-nearest and can round up to the next integer. */
|
||||
|
||||
/* Propagate the cast into the operation. */
|
||||
if (itype != type && FLOAT_TYPE_P (type))
|
||||
|
Loading…
Reference in New Issue
Block a user