diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2022-09-01 22:49:49 +0200 |
---|---|---|
committer | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2023-07-20 10:48:17 +0200 |
commit | 34cf27a64e7af949538e65bc266963c24f8da458 (patch) | |
tree | 2b6a08c8d6cd5973424ec90803599a20e8286423 /gcc/c-family/c-common.cc | |
parent | bb42f05d0738bddc721e838ebe9993df39ff2e0f (diff) | |
download | gcc-34cf27a64e7af949538e65bc266963c24f8da458.zip gcc-34cf27a64e7af949538e65bc266963c24f8da458.tar.gz gcc-34cf27a64e7af949538e65bc266963c24f8da458.tar.bz2 |
Add __builtin_iseqsig()
iseqsig() is a C2x library function, for signaling floating-point
equality checks. Provide a GCC-builtin for it, which is folded to
a series of comparisons.
2022-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR middle-end/77928
gcc/
* doc/extend.texi: Document iseqsig builtin.
* builtins.cc (fold_builtin_iseqsig): New function.
(fold_builtin_2): Handle BUILT_IN_ISEQSIG.
(is_inexpensive_builtin): Handle BUILT_IN_ISEQSIG.
* builtins.def (BUILT_IN_ISEQSIG): New built-in.
gcc/c-family/
* c-common.cc (check_builtin_function_arguments):
Handle BUILT_IN_ISEQSIG.
gcc/testsuite/
* gcc.dg/torture/builtin-iseqsig-1.c: New test.
* gcc.dg/torture/builtin-iseqsig-2.c: New test.
* gcc.dg/torture/builtin-iseqsig-3.c: New test.
Diffstat (limited to 'gcc/c-family/c-common.cc')
-rw-r--r-- | gcc/c-family/c-common.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc index 6ab63da..9fbaeb4 100644 --- a/gcc/c-family/c-common.cc +++ b/gcc/c-family/c-common.cc @@ -6334,6 +6334,7 @@ check_builtin_function_arguments (location_t loc, vec<location_t> arg_loc, case BUILT_IN_ISLESSEQUAL: case BUILT_IN_ISLESSGREATER: case BUILT_IN_ISUNORDERED: + case BUILT_IN_ISEQSIG: if (builtin_function_validate_nargs (loc, fndecl, nargs, 2)) { enum tree_code code0, code1; |