OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [dfp/] [operator-logical.c] - Diff between revs 149 and 154

Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
/* { dg-options "-std=gnu99" } */
/* { dg-options "-std=gnu99" } */
 
 
/* C99 Logical AND operator.
/* C99 Logical AND operator.
   C99 Logical OR operator.
   C99 Logical OR operator.
   Test with decimal float operands.  */
   Test with decimal float operands.  */
 
 
extern void abort (void);
extern void abort (void);
 
 
#define OPERATE(OPRD1,OPRT,OPRD2,RLT)   \
#define OPERATE(OPRD1,OPRT,OPRD2,RLT)   \
do                                      \
do                                      \
{                                       \
{                                       \
  if (( (OPRD1) OPRT (OPRD2) )!= RLT)   \
  if (( (OPRD1) OPRT (OPRD2) )!= RLT)   \
    abort ();                           \
    abort ();                           \
} while (0)
} while (0)
 
 
#define DECIMAL_LOGICAL_OR(OPRD)        \
#define DECIMAL_LOGICAL_OR(OPRD)        \
do                                      \
do                                      \
{                                       \
{                                       \
  OPRD = 1.0;                           \
  OPRD = 1.0;                           \
  OPERATE(1,||,OPRD,1);                 \
  OPERATE(1,||,OPRD,1);                 \
  OPERATE(0,||,OPRD,1);                  \
  OPERATE(0,||,OPRD,1);                  \
  OPERATE(OPRD,||,1,1);                 \
  OPERATE(OPRD,||,1,1);                 \
  OPERATE(OPRD,||,0,1);                  \
  OPERATE(OPRD,||,0,1);                  \
  OPRD = 0.0;                           \
  OPRD = 0.0;                           \
  OPERATE(1,||,OPRD,1);                 \
  OPERATE(1,||,OPRD,1);                 \
  OPERATE(0,||,OPRD,0);                   \
  OPERATE(0,||,OPRD,0);                   \
  OPERATE(OPRD,||,1,1);                 \
  OPERATE(OPRD,||,1,1);                 \
  OPERATE(OPRD,||,0,0);                   \
  OPERATE(OPRD,||,0,0);                   \
} while (0)
} while (0)
 
 
#define DECIMAL_LOGICAL_AND(OPRD)       \
#define DECIMAL_LOGICAL_AND(OPRD)       \
do                                      \
do                                      \
{                                       \
{                                       \
  OPRD = 1.0;                           \
  OPRD = 1.0;                           \
  OPERATE(1,&&,OPRD,1);                 \
  OPERATE(1,&&,OPRD,1);                 \
  OPERATE(0,&&,OPRD,0);                   \
  OPERATE(0,&&,OPRD,0);                   \
  OPERATE(OPRD,&&,1,1);                 \
  OPERATE(OPRD,&&,1,1);                 \
  OPERATE(OPRD,&&,0,0);                   \
  OPERATE(OPRD,&&,0,0);                   \
  OPRD = 0.0;                           \
  OPRD = 0.0;                           \
  OPERATE(1,&&,OPRD,0);                  \
  OPERATE(1,&&,OPRD,0);                  \
  OPERATE(0,&&,OPRD,0);                   \
  OPERATE(0,&&,OPRD,0);                   \
  OPERATE(OPRD,&&,1,0);                  \
  OPERATE(OPRD,&&,1,0);                  \
  OPERATE(OPRD,&&,0,0);                   \
  OPERATE(OPRD,&&,0,0);                   \
} while (0)
} while (0)
 
 
int
int
main ()
main ()
{
{
  _Decimal32 d32;
  _Decimal32 d32;
  _Decimal64 d64;
  _Decimal64 d64;
  _Decimal128 d128;
  _Decimal128 d128;
 
 
  /* C99 Section 6.5.{13,14} Logical operator.  Constraints Each of the
  /* C99 Section 6.5.{13,14} Logical operator.  Constraints Each of the
     operands shall have scalar type.  DFP types would obey this.  */
     operands shall have scalar type.  DFP types would obey this.  */
  DECIMAL_LOGICAL_OR (d32);
  DECIMAL_LOGICAL_OR (d32);
  DECIMAL_LOGICAL_AND (d32);
  DECIMAL_LOGICAL_AND (d32);
 
 
  DECIMAL_LOGICAL_OR (d64);
  DECIMAL_LOGICAL_OR (d64);
  DECIMAL_LOGICAL_AND (d64);
  DECIMAL_LOGICAL_AND (d64);
 
 
  DECIMAL_LOGICAL_OR (d128);
  DECIMAL_LOGICAL_OR (d128);
  DECIMAL_LOGICAL_AND (d128);
  DECIMAL_LOGICAL_AND (d128);
 
 
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.