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