(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
pr82748-1.c
       1  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
       2  /* { dg-require-effective-target powerpc_p9vector_ok } */
       3  /* { dg-options "-mpower9-vector -O2 -mabi=ieeelongdouble -Wno-psabi" } */
       4  
       5  /* Make sure the old 'q' builtin functions work correctly when the long double
       6     default has been changed to be IEEE 128-bit floating point.  */
       7  
       8  _Float128
       9  do_fabs_f (_Float128 a)
      10  {
      11    return __builtin_fabsq (a);
      12  }
      13  
      14  _Float128
      15  do_copysign_f (_Float128 a, _Float128 b)
      16  {
      17    return __builtin_copysignq (a, b);
      18  }
      19  
      20  _Float128
      21  do_inf_f (void)
      22  {
      23    return __builtin_infq ();
      24  }
      25  
      26  _Float128
      27  do_nan_f (void)
      28  {
      29    return __builtin_nanq ("");
      30  }
      31  
      32  _Float128
      33  do_nans_f (void)
      34  {
      35    return __builtin_nansq ("");
      36  }
      37  
      38  _Float128
      39  do_huge_val_f (void)
      40  {
      41    return __builtin_huge_valq ();
      42  }
      43  
      44  long double
      45  do_fabs_ld (long double a)
      46  {
      47    return __builtin_fabsq (a);
      48  }
      49  
      50  long double
      51  do_copysign_ld (long double a, long double b)
      52  {
      53    return __builtin_copysignq (a, b);
      54  }
      55  
      56  long double
      57  do_inf_ld (void)
      58  {
      59    return __builtin_infq ();
      60  }
      61  
      62  long double
      63  do_nan_ld (void)
      64  {
      65    return __builtin_nanq ("");
      66  }
      67  
      68  long double
      69  do_nans_ld (void)
      70  {
      71    return __builtin_nansq ("");
      72  }
      73  
      74  long double
      75  do_huge_val_ld (void)
      76  {
      77    return __builtin_huge_valq ();
      78  }
      79  
      80  /* { dg-final { scan-assembler     {\mxsabsqp\M}   } } */
      81  /* { dg-final { scan-assembler     {\mxscpsgnqp\M} } } */
      82  /* { dg-final { scan-assembler-not {\mbl\M} }      } */