1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-require-effective-target longdouble128 } */
4 /* { dg-require-effective-target powerpc_vsx_ok } */
5 /* { dg-options "-mdejagnu-cpu=power8 -mvsx -O3" } */
7 #if defined(__LONG_DOUBLE_IEEE128__)
8 /* If long double is IEEE 128-bit, we need to use the __ibm128 type instead of
9 long double. We can't use __ibm128 on systems that don't support IEEE
10 128-bit floating point, because the type is not enabled on those
12 #define LDOUBLE __ibm128
14 #elif defined(__LONG_DOUBLE_IBM128__)
15 #define LDOUBLE long double
18 #error "long double must be either IBM 128-bit or IEEE 128-bit"
21 union u_ld
{ LDOUBLE ld
; double d
[2]; };
24 pack (double a
, double aa
)
48 /* { dg-final { scan-assembler-not "stfd" } } */
49 /* { dg-final { scan-assembler-not "lfd" } } */
50 /* { dg-final { scan-assembler-not "lxsdx" } } */
51 /* { dg-final { scan-assembler-not "stxsdx" } } */
52 /* { dg-final { scan-assembler-not "mfvsrd" } } */
53 /* { dg-final { scan-assembler-not "mtvsrd" } } */