(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
vec-splat-constant-v2df.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target power10_ok } */
       3  /* { dg-options "-mdejagnu-cpu=power10 -O2" } */
       4  
       5  #include <math.h>
       6  
       7  /* Test generating V2DFmode constants with the ISA 3.1 (power10) XXSPLTIDP
       8     instruction.  */
       9  
      10  vector double
      11  v2df_double_0 (void)
      12  {
      13    return (vector double) { 0.0, 0.0 };			/* XXSPLTIB or XXLXOR.  */
      14  }
      15  
      16  vector double
      17  v2df_double_1 (void)
      18  {
      19    return (vector double) { 1.0, 1.0 };			/* XXSPLTIDP.  */
      20  }
      21  
      22  #ifndef __FAST_MATH__
      23  vector double
      24  v2df_double_m0 (void)
      25  {
      26    return (vector double) { -0.0, -0.0 };		/* XXSPLTIDP.  */
      27  }
      28  
      29  vector double
      30  v2df_double_nan (void)
      31  {
      32    return (vector double) { __builtin_nan (""),
      33  			   __builtin_nan ("") };	/* XXSPLTIDP.  */
      34  }
      35  
      36  vector double
      37  v2df_double_inf (void)
      38  {
      39    return (vector double) { __builtin_inf (),
      40  			   __builtin_inf () };		/* XXSPLTIDP.  */
      41  }
      42  
      43  vector double
      44  v2df_double_m_inf (void)
      45  {
      46    return (vector double) { - __builtin_inf (),
      47  			   - __builtin_inf () };	/* XXSPLTIDP.  */
      48  }
      49  #endif
      50  
      51  vector double
      52  v2df_double_pi (void)
      53  {
      54    return (vector double) { M_PI, M_PI };		/* PLVX.  */
      55  }
      56  
      57  vector double
      58  v2df_double_denorm (void)
      59  {
      60    return (vector double) { (double)0x1p-149f,
      61  			   (double)0x1p-149f };		/* PLVX.  */
      62  }
      63  
      64  /* { dg-final { scan-assembler-times {\mxxspltidp\M} 5 } } */