c: Add u{,l,ll,imax}abs builtins [PR117024]
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. 2024-11-21 Jakub Jelinek <jakub@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.
Showing
- gcc/ada/gcc-interface/utils.cc 1 addition, 0 deletionsgcc/ada/gcc-interface/utils.cc
- gcc/builtin-types.def 3 additions, 0 deletionsgcc/builtin-types.def
- gcc/builtins.cc 14 additions, 1 deletiongcc/builtins.cc
- gcc/builtins.def 12 additions, 0 deletionsgcc/builtins.def
- gcc/coretypes.h 2 additions, 1 deletiongcc/coretypes.h
- gcc/lto/lto-lang.cc 1 addition, 0 deletionsgcc/lto/lto-lang.cc
- gcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c 33 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1-lib.c 22 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-1-lib.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.c 22 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.x 2 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.x
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2-lib.c 1 addition, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-2-lib.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.c 123 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.x 2 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.x
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3-lib.c 1 addition, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-3-lib.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.c 119 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.c
- gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.x 2 additions, 0 deletionsgcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.x
Loading
Please register or sign in to comment