Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/opaque-vector.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
#define B_TEST(TYPE) { TYPE v __attribute__((vector_size(16))); (void)((v < v) < v); } #ifdef __cplusplus #define T_TEST(TYPE) { TYPE s; TYPE v __attribute__((vector_size(16))); __typeof((v<v)[0]) iv __attribute__((vector_size(16))); (void)((iv ? s : s) < v); } #else #define T_TEST(TYPE) #endif #define T(TYPE) B_TEST(TYPE) T_TEST(TYPE) #ifdef __SIZEOF_INT128__ #define SIZEOF_MAXINT __SIZEOF_INT128__ #else #define SIZEOF_MAXINT __SIZEOF_LONG_LONG__ #endif void f () { T(short) T(int) T(long) T(long long) T_TEST(float) T_TEST(double) /* Avoid trouble with non-power-of-two sizes. Also avoid trouble with long double larger than integral types. */ #if !defined(__i386__) && !defined(__x86_64__) && !defined(__m68k__) \ && !defined(__ia64__) && !defined(__hppa__) \ && (__SIZEOF_LONG_DOUBLE__ & (__SIZEOF_LONG_DOUBLE__ - 1)) == 0 \ && __SIZEOF_LONG_DOUBLE__ <= 16 \ && __SIZEOF_LONG_DOUBLE__ <= SIZEOF_MAXINT T_TEST(long double) #endif }