Don't use BUILT_IN_IROUND for __float128.

2012-03-16  Janne Blomqvist  <jb@gcc.gnu.org>

       * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
       for __float128.

From-SVN: r185453
This commit is contained in:
Janne Blomqvist 2012-03-16 10:14:01 +02:00
parent b074387553
commit c4256b35bf
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2012-03-16 Janne Blomqvist <jb@gcc.gnu.org>
* trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
for __float128.
2012-03-15 Janne Blomqvist <jb@gcc.gnu.org>
* f95-lang.c (gfc_init_builtin_functions): Initialize

View File

@ -383,10 +383,11 @@ build_round_expr (tree arg, tree restype)
resprec = TYPE_PRECISION (restype);
/* Depending on the type of the result, choose the int intrinsic
(iround, available only as a builtin), long int intrinsic (lround
family) or long long intrinsic (llround). We might also need to
convert the result afterwards. */
if (resprec <= INT_TYPE_SIZE)
(iround, available only as a builtin, therefore cannot use it for
__float128), long int intrinsic (lround family) or long long
intrinsic (llround). We might also need to convert the result
afterwards. */
if (resprec <= INT_TYPE_SIZE && argprec <= LONG_DOUBLE_TYPE_SIZE)
fn = builtin_decl_for_precision (BUILT_IN_IROUND, argprec);
else if (resprec <= LONG_TYPE_SIZE)
fn = builtin_decl_for_precision (BUILT_IN_LROUND, argprec);