OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gcc.dg/] [builtin-bswap-4.c] - Diff between revs 298 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 298 Rev 384
/* { dg-do run } */
/* { dg-do run } */
/* { dg-require-effective-target stdint_types } */
/* { dg-require-effective-target stdint_types } */
/* { dg-options "-Wall" } */
/* { dg-options "-Wall" } */
 
 
#include <stdint.h>
#include <stdint.h>
 
 
#define MAKE_FUN(suffix, type)                                          \
#define MAKE_FUN(suffix, type)                                          \
  type my_bswap##suffix(type x) {                                       \
  type my_bswap##suffix(type x) {                                       \
    type result = 0;                                                     \
    type result = 0;                                                     \
    int shift;                                                          \
    int shift;                                                          \
    for (shift = 0; shift < 8 * sizeof (type); shift += 8)       \
    for (shift = 0; shift < 8 * sizeof (type); shift += 8)       \
      {                                                                 \
      {                                                                 \
        result <<= 8;                                                   \
        result <<= 8;                                                   \
        result |= (x >> shift) & 0xff;                                  \
        result |= (x >> shift) & 0xff;                                  \
      }                                                                 \
      }                                                                 \
    return result;                                                      \
    return result;                                                      \
  }                                                                     \
  }                                                                     \
 
 
MAKE_FUN(32, uint32_t);
MAKE_FUN(32, uint32_t);
MAKE_FUN(64, uint64_t);
MAKE_FUN(64, uint64_t);
 
 
extern void abort (void);
extern void abort (void);
 
 
#define NUMS32                                  \
#define NUMS32                                  \
  {                                             \
  {                                             \
    0x00000000UL,                               \
    0x00000000UL,                               \
    0x11223344UL,                               \
    0x11223344UL,                               \
    0xffffffffUL,                               \
    0xffffffffUL,                               \
  }
  }
 
 
#define NUMS64                                  \
#define NUMS64                                  \
  {                                             \
  {                                             \
    0x0000000000000000ULL,                      \
    0x0000000000000000ULL,                      \
    0x1122334455667788ULL,                      \
    0x1122334455667788ULL,                      \
    0xffffffffffffffffULL,                      \
    0xffffffffffffffffULL,                      \
  }
  }
 
 
uint32_t uint32_ts[] =
uint32_t uint32_ts[] =
  NUMS32;
  NUMS32;
 
 
uint64_t uint64_ts[] =
uint64_t uint64_ts[] =
  NUMS64;
  NUMS64;
 
 
#define N(table) (sizeof (table) / sizeof (table[0]))
#define N(table) (sizeof (table) / sizeof (table[0]))
 
 
int
int
main (void)
main (void)
{
{
  int i;
  int i;
 
 
  for (i = 0; i < N(uint32_ts); i++)
  for (i = 0; i < N(uint32_ts); i++)
    if (__builtin_bswap32 (uint32_ts[i]) != my_bswap32 (uint32_ts[i]))
    if (__builtin_bswap32 (uint32_ts[i]) != my_bswap32 (uint32_ts[i]))
      abort ();
      abort ();
 
 
  for (i = 0; i < N(uint64_ts); i++)
  for (i = 0; i < N(uint64_ts); i++)
    if (__builtin_bswap64 (uint64_ts[i]) != my_bswap64 (uint64_ts[i]))
    if (__builtin_bswap64 (uint64_ts[i]) != my_bswap64 (uint64_ts[i]))
      abort ();
      abort ();
 
 
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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