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> 2012-03-15 Janne Blomqvist <jb@gcc.gnu.org>
* f95-lang.c (gfc_init_builtin_functions): Initialize * 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); resprec = TYPE_PRECISION (restype);
/* Depending on the type of the result, choose the int intrinsic /* Depending on the type of the result, choose the int intrinsic
(iround, available only as a builtin), long int intrinsic (lround (iround, available only as a builtin, therefore cannot use it for
family) or long long intrinsic (llround). We might also need to __float128), long int intrinsic (lround family) or long long
convert the result afterwards. */ intrinsic (llround). We might also need to convert the result
if (resprec <= INT_TYPE_SIZE) afterwards. */
if (resprec <= INT_TYPE_SIZE && argprec <= LONG_DOUBLE_TYPE_SIZE)
fn = builtin_decl_for_precision (BUILT_IN_IROUND, argprec); fn = builtin_decl_for_precision (BUILT_IN_IROUND, argprec);
else if (resprec <= LONG_TYPE_SIZE) else if (resprec <= LONG_TYPE_SIZE)
fn = builtin_decl_for_precision (BUILT_IN_LROUND, argprec); fn = builtin_decl_for_precision (BUILT_IN_LROUND, argprec);