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.
This commit is contained in:
parent
d5b66a9053
commit
84c1c9b013
31
gcc/testsuite/gcc.target/powerpc/pr105334.c
Normal file
31
gcc/testsuite/gcc.target/powerpc/pr105334.c
Normal file
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user