1 /* { dg-do compile { target { powerpc*-*-linux* } } } */
2 /* { dg-require-effective-target powerpc_float128_sw_ok } */
3 /* { dg-options "-O2 -mdejagnu-cpu=power7 -mfloat128 -mno-regnames" } */
4 
5 #ifndef __FLOAT128__
6 #error "-mfloat128 is not supported."
7 #endif
8 
9 #ifdef __LONG_DOUBLE_IEEE128__
10 #define TYPE long double
11 #define ONE  1.0L
12 
13 #else
14 #define TYPE __float128
15 #define ONE  1.0Q
16 #endif
17 
18 /* Test to make sure vector registers are used for passing IEEE 128-bit
19    floating point values and returning them. Also make sure the 'q' suffix is
20    handled.  */
one(void)21 TYPE one (void) { return ONE; }
store(TYPE a,TYPE * p)22 void store (TYPE a, TYPE *p) { *p = a; }
23 
24 /* { dg-final { scan-assembler "lxvd2x 34"  } } */
25 /* { dg-final { scan-assembler "stxvd2x 34" } } */
26