/* { dg-do compile } */ /* { dg-require-effective-target power10_ok } */ /* { dg-options "-mdejagnu-cpu=power10 -O2" } */ #include /* Test generating V2DFmode constants with the ISA 3.1 (power10) XXSPLTIDP instruction. */ vector double v2df_double_0 (void) { return (vector double) { 0.0, 0.0 }; /* XXSPLTIB or XXLXOR. */ } vector double v2df_double_1 (void) { return (vector double) { 1.0, 1.0 }; /* XXSPLTIDP. */ } #ifndef __FAST_MATH__ vector double v2df_double_m0 (void) { return (vector double) { -0.0, -0.0 }; /* XXSPLTIDP. */ } vector double v2df_double_nan (void) { return (vector double) { __builtin_nan (""), __builtin_nan ("") }; /* XXSPLTIDP. */ } vector double v2df_double_inf (void) { return (vector double) { __builtin_inf (), __builtin_inf () }; /* XXSPLTIDP. */ } vector double v2df_double_m_inf (void) { return (vector double) { - __builtin_inf (), - __builtin_inf () }; /* XXSPLTIDP. */ } #endif vector double v2df_double_pi (void) { return (vector double) { M_PI, M_PI }; /* PLVX. */ } vector double v2df_double_denorm (void) { return (vector double) { (double)0x1p-149f, (double)0x1p-149f }; /* PLVX. */ } /* { dg-final { scan-assembler-times {\mxxspltidp\M} 5 } } */