(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
builtin-issignaling-2.c
       1  /* { dg-do run } */
       2  /* { dg-require-effective-target dfp } */
       3  /* { dg-additional-options "-fsignaling-nans" } */
       4  
       5  int
       6  f1 (void)
       7  {
       8    return __builtin_issignaling (__builtin_nansd32 (""));
       9  }
      10  
      11  int
      12  f2 (void)
      13  {
      14    return __builtin_issignaling (__builtin_nand64 (""));
      15  }
      16  
      17  int
      18  f3 (void)
      19  {
      20    return __builtin_issignaling (0.0DD);
      21  }
      22  
      23  int
      24  f4 (_Decimal32 x)
      25  {
      26    return __builtin_issignaling (x);
      27  }
      28  
      29  int
      30  f5 (_Decimal64 x)
      31  {
      32    return __builtin_issignaling (x);
      33  }
      34  
      35  int
      36  f6 (_Decimal128 x)
      37  {
      38    return __builtin_issignaling (x);
      39  }
      40  
      41  _Decimal32 x;
      42  _Decimal64 y;
      43  _Decimal128 z;
      44  
      45  int
      46  main ()
      47  {
      48    if (!f1 () || f2 () || f3 ())
      49      __builtin_abort ();
      50    asm volatile ("" : : : "memory");
      51    if (f4 (x) || !f4 (__builtin_nansd32 ("0x123")) || f4 (42.0DF) || f4 (__builtin_nand32 ("0x234"))
      52        || f4 (__builtin_infd32 ()) || f4 (-__builtin_infd32 ()) || f4 (-42.0DF) || f4 (-0.0DF) || f4 (0.0DF))
      53      __builtin_abort ();
      54    x = __builtin_nansd32 ("");
      55    asm volatile ("" : : : "memory");
      56    if (!f4 (x))
      57      __builtin_abort ();
      58    if (f5 (y) || !f5 (__builtin_nansd64 ("0x123")) || f5 (42.0DD) || f5 (__builtin_nand64 ("0x234"))
      59        || f5 (__builtin_infd64 ()) || f5 (-__builtin_infd64 ()) || f5 (-42.0DD) || f5 (-0.0DD) || f5 (0.0DD))
      60      __builtin_abort ();
      61    y = __builtin_nansd64 ("");
      62    asm volatile ("" : : : "memory");
      63    if (!f5 (y))
      64      __builtin_abort ();
      65    if (f6 (z) || !f6 (__builtin_nansd128 ("0x123")) || f6 (42.0DL) || f6 (__builtin_nand128 ("0x234"))
      66        || f6 (__builtin_infd128 ()) || f6 (-__builtin_infd128 ()) || f6 (-42.0DL) || f6 (-0.0DL) || f6 (0.0DL))
      67      __builtin_abort ();
      68    z = __builtin_nansd128 ("");
      69    asm volatile ("" : : : "memory");
      70    if (!f6 (z))
      71      __builtin_abort ();
      72    return 0;
      73  }