On Wed, Oct 16, 2024 at 05:44:05PM +0200, Jakub Jelinek wrote:
> The following patch adds u{,l,ll,imax}abs builtins, which just fold
> to ABSU_EXPR, similarly to how {,l,ll,imax}abs builtins fold to
> ABS_EXPR.
> 
> Tested on x86_64-linux, ok for trunk if it passes full bootstrap/regtest
> on x86_64-linux and i686-linux?

Successfully bootstrapped/regtested on both.

> 2024-10-16  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR c/117024
> gcc/
>       * coretypes.h (enum function_class): Add function_c2y_misc
>       enumerator.
>       * builtin-types.def (BT_FN_UINTMAX_INTMAX, BT_FN_ULONG_LONG,
>       BT_FN_ULONGLONG_LONGLONG): New DEF_FUNCTION_TYPE_1s.
>       * builtins.def (DEF_C2Y_BUILTIN): Define.
>       (BUILT_IN_UABS, BUILT_IN_UIMAXABS, BUILT_IN_ULABS,
>       BUILT_IN_ULLABS): New builtins.
>       * builtins.cc (fold_builtin_abs): Handle also folding of u*abs
>       to ABSU_EXPR.
>       (fold_builtin_1): Handle BUILT_IN_U{,L,LL,IMAX}ABS.
> gcc/lto/ChangeLog:
>       * lto-lang.cc (flag_isoc2y): New variable.
> gcc/ada/ChangeLog:
>       * gcc-interface/utils.cc (flag_isoc2y): New variable.
> gcc/testsuite/
>       * gcc.c-torture/execute/builtins/lib/abs.c (uintmax_t): New typedef.
>       (uabs, ulabs, ullabs, uimaxabs): New functions.
>       * gcc.c-torture/execute/builtins/uabs-1.c: New test.
>       * gcc.c-torture/execute/builtins/uabs-1.x: New file.
>       * gcc.c-torture/execute/builtins/uabs-1-lib.c: New file.
>       * gcc.c-torture/execute/builtins/uabs-2.c: New test.
>       * gcc.c-torture/execute/builtins/uabs-2.x: New file.
>       * gcc.c-torture/execute/builtins/uabs-2-lib.c: New file.
>       * gcc.c-torture/execute/builtins/uabs-3.c: New test.
>       * gcc.c-torture/execute/builtins/uabs-3.x: New test.
>       * gcc.c-torture/execute/builtins/uabs-3-lib.c: New test.

        Jakub

Reply via email to