/* { dg-options "-O0 -std=gnu99" } */

/* Decimal float versions of __builtin_signbit.  */

extern void abort (void);
int failures;

#ifdef DBG
extern int printf (const char *, ...);
#define FAILURE { printf ("failed at line %d\n", __LINE__); failures++; }
#else
#define FAILURE abort ();
#endif

#define CHECK32(D,I) \
  if ((__builtin_signbitd32 (D) != 0) != I) FAILURE

#define CHECK64(D,I) \
  if ((__builtin_signbitd64 (D) != 0) != I) FAILURE

#define CHECK128(D,I) \
  if ((__builtin_signbitd128 (D) != 0) != I) FAILURE

/* Prevent the compiler from folding the calls at compile time.  */
volatile _Decimal32 sd;
volatile _Decimal64 dd;
volatile _Decimal128 td;

int
main ()
{
  sd = 1.9df;  CHECK32 (sd, 0)
  sd = -5.3df; CHECK32 (sd, 1)
  sd = 0.0df;  CHECK32 (sd, 0)
  sd = -0.0df; CHECK32 (sd, 1)

  dd = 1.9dd;  CHECK64 (dd, 0)
  dd = -5.3dd; CHECK64 (dd, 1)
  dd = 0.0dd;  CHECK64 (dd, 0)
  dd = -0.0dd; CHECK64 (dd, 1)

  td = 1.9dl;  CHECK128 (td, 0)
  td = -5.3dl; CHECK128 (td, 1)
  td = 0.0dl;  CHECK128 (td, 0)
  td = -0.0dl; CHECK128 (td, 1)

  if (failures != 0)
    abort ();
  return 0;
}
