diff options
author | Kewen Lin <linkw@linux.ibm.com> | 2022-04-27 22:34:27 -0500 |
---|---|---|
committer | Kewen Lin <linkw@linux.ibm.com> | 2022-04-27 22:34:27 -0500 |
commit | 84c1c9b013faf8cdac31db3f6612bd9d5f70ddb3 (patch) | |
tree | 57c19ddc581414548f509e089ef6e43653b66a82 /gcc | |
parent | d5b66a905322262483af5c4ca6cb6676c24e1f3f (diff) | |
download | gcc-84c1c9b013faf8cdac31db3f6612bd9d5f70ddb3.zip gcc-84c1c9b013faf8cdac31db3f6612bd9d5f70ddb3.tar.gz gcc-84c1c9b013faf8cdac31db3f6612bd9d5f70ddb3.tar.bz2 |
testsuite: Add test case for pack/unpack bifs at soft-float [PR105334]
This patch is to add the test coverage for the two recent fixes
r12-8091 and r12-8226 from Segher, aix is skipped since it takes
soft-float and long-double-128 incompatible.
PR target/105334
gcc/testsuite/ChangeLog:
* gcc.target/powerpc/pr105334.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr105334.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/pr105334.c b/gcc/testsuite/gcc.target/powerpc/pr105334.c new file mode 100644 index 0000000..7664e03 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr105334.c @@ -0,0 +1,31 @@ +/* Skip this on aix, since it takes soft-float and long-double-128 + incompatible and warns it. */ +/* { dg-skip-if "aix long-double-128 soft-float" { powerpc*-*-aix* } } */ +/* { dg-options "-mlong-double-128 -msoft-float" } */ + +/* Verify there is no ICE. */ + +#include <stddef.h> +#include <stdlib.h> +#include <math.h> + +#define PACK __builtin_pack_ibm128 +#define UNPACK __builtin_unpack_ibm128 +#define LDOUBLE __ibm128 + +extern LDOUBLE bar (LDOUBLE); + +int +main (void) +{ + double high = pow (2.0, 60); + double low = 2.0; + LDOUBLE a = ((LDOUBLE) high) + ((LDOUBLE) low); + double x0 = UNPACK (a, 0); + double x1 = UNPACK (a, 1); + LDOUBLE b = PACK (x0, x1); + LDOUBLE c = bar (b); + + return c > a; +} + |