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:
Kewen Lin 2022-04-27 22:34:27 -05:00
parent d5b66a9053
commit 84c1c9b013

View 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;
}