diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c b/gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c new file mode 100644 index 0000000..85a8cbf --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c @@ -0,0 +1,21 @@ +/* { dg-do link } */ +/* { dg-add-options float128 } */ +/* { dg-require-effective-target float128 } */ + +extern int link_error (int); + +#define TEST(FN, VALUE, RESULT) \ + if (__builtin_##FN##f128 (VALUE) != RESULT) link_error (__LINE__); + +int +main (void) +{ + TEST(roundeven, (0x1p64+0.5f128), (0x1p64f128)); + TEST(roundeven, (0x1p63+0.5f128), (0x1p63f128)); + TEST(roundeven, (0x1p63-0.5f128), (0x1p63f128)); + TEST(roundeven, (0x1p64-0.5f128), (0x1p64f128)); + TEST(roundeven, (0x1p64+0.501f128), (0x1p64+1.0f128)); + TEST(roundeven, (0x1.C00000000000039A5653p1f128), (0x1p2f128)) + return 0; +} + |