On Tue, Oct 22, 2024 at 07:48:39PM +0200, Jakub Jelinek wrote: > 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.
I'd like to ping this patch. https://gcc.gnu.org/pipermail/gcc-patches/2024-October/665651.html Thanks. > > 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