This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] builtin-bitops-1.x: Disable on H8.


Hi Richard,

> > 	* gcc.c-torture/execute/builtin-bitops-1.c: If int is 16-bit
> > 	wide, test bitops using 16-bit constants.
> > 	Likewise, if long long is 32-bit wide, test bitops using
> > 	32-bit constants.
> 
> Well, almost ok.  This doesn't handle 64-bit "int", as we
> have on alpha-cray-unicosmk.

What about something like this?  Testing in progress.  OK to apply
assuming nothing bad happens?

Kazu Hirata

2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>

	* gcc.c-torture/execute/builtin-bitops-1.c: When testing the
	int-wide bitops, use the constants of the same width.
	Likewise, if long long is 32-bit wide, test bitops using
	32-bit constants.

Index: builtin-bitops-1.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c,v
retrieving revision 1.1
diff -c -r1.1 builtin-bitops-1.c
*** builtin-bitops-1.c	1 Feb 2003 19:00:02 -0000	1.1
--- builtin-bitops-1.c	9 Feb 2003 03:58:09 -0000
***************
*** 1,6 ****
--- 1,40 ----
  #include <limits.h>
  #include <assert.h>
  
+ #if __INT_MAX__ > 2147483647L
+ # if __INT_MAX__ >= 9223372036854775807L
+ #  define BITSIZEOF_INT 64
+ # else
+ #  define BITSIZEOF_INT 32
+ # endif
+ #else
+ # if __INT_MAX__ >= 2147483647L
+ #  define BITSIZEOF_INT 32
+ # else
+ #  define BITSIZEOF_INT 16
+ # endif
+ #endif
+ 
+ #if __LONG_MAX__ > 2147483647L
+ # if __LONG_MAX__ >= 9223372036854775807L
+ #  define BITSIZEOF_LONG 64
+ # else
+ #  define BITSIZEOF_LONG 32
+ # endif
+ #else
+ # define BITSIZEOF_LONG 32
+ #endif
+ 
+ #if __LONG_LONG_MAX__ > 2147483647L
+ # if __LONG_LONG_MAX__ >= 9223372036854775807L
+ #  define BITSIZEOF_LONG_LONG 64
+ # else
+ #  define BITSIZEOF_LONG_LONG 32
+ # endif
+ #else
+ # define BITSIZEOF_LONG_LONG 32
+ #endif
+ 
  #define MAKE_FUNS(suffix, type)						\
  int my_ffs##suffix(type x) {						\
      int i;								\
***************
*** 53,73 ****
  extern void abort (void);
  extern void exit (int);
  
  #define NUMS32					\
    {						\
!     0x00000000U,				\
!     0x00000001U,				\
!     0x80000000U,				\
!     0x00000002U,				\
!     0x40000000U,				\
!     0x00010000U,				\
!     0x00008000U,				\
!     0xa5a5a5a5U,				\
!     0x5a5a5a5aU,				\
!     0xcafe0000U,				\
!     0x00cafe00U,				\
!     0x0000cafeU,				\
!     0xffffffffU					\
    }
  
  #define NUMS64					\
--- 87,122 ----
  extern void abort (void);
  extern void exit (int);
  
+ #define NUMS16					\
+   {						\
+     0x0000U,					\
+     0x0001U,					\
+     0x8000U,					\
+     0x0002U,					\
+     0x4000U,					\
+     0x0100U,					\
+     0x0080U,					\
+     0xa5a5U,					\
+     0x5a5aU,					\
+     0xcafeU,					\
+     0xffffU					\
+   }
+ 
  #define NUMS32					\
    {						\
!     0x00000000UL,				\
!     0x00000001UL,				\
!     0x80000000UL,				\
!     0x00000002UL,				\
!     0x40000000UL,				\
!     0x00010000UL,				\
!     0x00008000UL,				\
!     0xa5a5a5a5UL,				\
!     0x5a5a5a5aUL,				\
!     0xcafe0000UL,				\
!     0x00cafe00UL,				\
!     0x0000cafeUL,				\
!     0xffffffffUL				\
    }
  
  #define NUMS64					\
***************
*** 87,102 ****
      0xffffffffffffffffULL			\
    }
  
! unsigned int ints[] = NUMS32;
  
  unsigned long longs[] =
! #if __LONG_MAX__ >= 9223372036854775807L
  NUMS64;
  #else
  NUMS32;
  #endif
  
! unsigned long long longlongs[] = NUMS64;
  
  #define N(table) (sizeof (table) / sizeof (table[0]))
  
--- 136,163 ----
      0xffffffffffffffffULL			\
    }
  
! unsigned int ints[] =
! #if BITSIZEOF_INT == 64
! NUMS64;
! #elif BITSIZEOF_INT == 32
! NUMS32;
! #else
! NUMS16;
! #endif
  
  unsigned long longs[] =
! #if BITSIZEOF_LONG == 64
  NUMS64;
  #else
  NUMS32;
  #endif
  
! unsigned long long longlongs[] =
! #if BITSIZEOF_LONG_LONG == 64
! NUMS64;
! #else
! NUMS32;
! #endif
  
  #define N(table) (sizeof (table) / sizeof (table[0]))
  
***************
*** 167,172 ****
--- 228,234 ----
    if (__builtin_parity##suffix (x) != my_parity##suffix (x))		\
      abort ();
  
+ #if BITSIZEOF_INT == 32
    TEST(0x00000000UL,);
    TEST(0x00000001UL,);
    TEST(0x80000000UL,);
***************
*** 179,185 ****
--- 241,249 ----
    TEST(0x00cafe00UL,);
    TEST(0x0000cafeUL,);
    TEST(0xffffffffUL,);
+ #endif
  
+ #if BITSIZEOF_LONG_LONG == 64
    TEST(0x0000000000000000ULL, ll);
    TEST(0x0000000000000001ULL, ll);
    TEST(0x8000000000000000ULL, ll);
***************
*** 193,198 ****
--- 257,263 ----
    TEST(0x0000cafecafe0000ULL, ll);
    TEST(0x00000000cafecafeULL, ll);
    TEST(0xffffffffffffffffULL, ll);
+ #endif
  
    exit (0);
  }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]