/* PR c/111309 */ /* { dg-do run } */ /* { dg-options "-O2" } */ __attribute__((noipa)) int clzc (unsigned char x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzc2 (unsigned char x, int y) { return __builtin_clzg (x, y); } __attribute__((noipa)) int clzs (unsigned short x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzs2 (unsigned short x) { return __builtin_clzg (x, -2); } __attribute__((noipa)) int clzi (unsigned int x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzi2 (unsigned int x, int y) { return __builtin_clzg (x, y); } __attribute__((noipa)) int clzl (unsigned long x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzl2 (unsigned long x) { return __builtin_clzg (x, -1); } __attribute__((noipa)) int clzL (unsigned long long x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzL2 (unsigned long long x, int y) { return __builtin_clzg (x, y); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int clzI (unsigned __int128 x) { return __builtin_clzg (x); } __attribute__((noipa)) int clzI2 (unsigned __int128 x, int y) { return __builtin_clzg (x, y); } #endif __attribute__((noipa)) int ctzc (unsigned char x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzc2 (unsigned char x, int y) { return __builtin_ctzg (x, y); } __attribute__((noipa)) int ctzs (unsigned short x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzs2 (unsigned short x, int y) { return __builtin_ctzg (x, y); } __attribute__((noipa)) int ctzi (unsigned int x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzi2 (unsigned int x, int y) { return __builtin_ctzg (x, y); } __attribute__((noipa)) int ctzl (unsigned long x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzl2 (unsigned long x, int y) { return __builtin_ctzg (x, y); } __attribute__((noipa)) int ctzL (unsigned long long x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzL2 (unsigned long long x, int y) { return __builtin_ctzg (x, y); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int ctzI (unsigned __int128 x) { return __builtin_ctzg (x); } __attribute__((noipa)) int ctzI2 (unsigned __int128 x) { return __builtin_ctzg (x, __SIZEOF_INT128__ * __CHAR_BIT__); } #endif __attribute__((noipa)) int clrsbc (signed char x) { return __builtin_clrsbg (x); } __attribute__((noipa)) int clrsbs (signed short x) { return __builtin_clrsbg (x); } __attribute__((noipa)) int clrsbi (signed int x) { return __builtin_clrsbg (x); } __attribute__((noipa)) int clrsbl (signed long x) { return __builtin_clrsbg (x); } __attribute__((noipa)) int clrsbL (signed long long x) { return __builtin_clrsbg (x); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int clrsbI (signed __int128 x) { return __builtin_clrsbg (x); } #endif __attribute__((noipa)) int ffsc (signed char x) { return __builtin_ffsg (x); } __attribute__((noipa)) int ffss (signed short x) { return __builtin_ffsg (x); } __attribute__((noipa)) int ffsi (signed int x) { return __builtin_ffsg (x); } __attribute__((noipa)) int ffsl (signed long x) { return __builtin_ffsg (x); } __attribute__((noipa)) int ffsL (signed long long x) { return __builtin_ffsg (x); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int ffsI (signed __int128 x) { return __builtin_ffsg (x); } #endif __attribute__((noipa)) int parityc (unsigned char x) { return __builtin_parityg (x); } __attribute__((noipa)) int paritys (unsigned short x) { return __builtin_parityg (x); } __attribute__((noipa)) int parityi (unsigned int x) { return __builtin_parityg (x); } __attribute__((noipa)) int parityl (unsigned long x) { return __builtin_parityg (x); } __attribute__((noipa)) int parityL (unsigned long long x) { return __builtin_parityg (x); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int parityI (unsigned __int128 x) { return __builtin_parityg (x); } #endif __attribute__((noipa)) int popcountc (unsigned char x) { return __builtin_popcountg (x); } __attribute__((noipa)) int popcounts (unsigned short x) { return __builtin_popcountg (x); } __attribute__((noipa)) int popcounti (unsigned int x) { return __builtin_popcountg (x); } __attribute__((noipa)) int popcountl (unsigned long x) { return __builtin_popcountg (x); } __attribute__((noipa)) int popcountL (unsigned long long x) { return __builtin_popcountg (x); } #ifdef __SIZEOF_INT128__ __attribute__((noipa)) int popcountI (unsigned __int128 x) { return __builtin_popcountg (x); } #endif int main () { if (__builtin_clzg ((unsigned char) 1) != __CHAR_BIT__ - 1 || __builtin_clzg ((unsigned short) 2, -2) != __SIZEOF_SHORT__ * __CHAR_BIT__ - 2 || __builtin_clzg (0U, 42) != 42 || __builtin_clzg (0U, -1) != -1 || __builtin_clzg (1U) != __SIZEOF_INT__ * __CHAR_BIT__ - 1 || __builtin_clzg (2UL, -1) != __SIZEOF_LONG__ * __CHAR_BIT__ - 2 || __builtin_clzg (5ULL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 3 #ifdef __SIZEOF_INT128__ || __builtin_clzg ((unsigned __int128) 9) != __SIZEOF_INT128__ * __CHAR_BIT__ - 4 #endif || __builtin_clzg (~0U, -5) != 0 || __builtin_clzg (~0ULL >> 2) != 2 || __builtin_ctzg ((unsigned char) 1) != 0 || __builtin_ctzg ((unsigned short) 28) != 2 || __builtin_ctzg (0U, 32) != 32 || __builtin_ctzg (0U, -42) != -42 || __builtin_ctzg (1U) != 0 || __builtin_ctzg (16UL, -1) != 4 || __builtin_ctzg (5ULL << 52, 0) != 52 #ifdef __SIZEOF_INT128__ || __builtin_ctzg (((unsigned __int128) 9) << 72) != 72 #endif || __builtin_clrsbg ((signed char) 0) != __CHAR_BIT__ - 1 || __builtin_clrsbg ((signed short) -1) != __SIZEOF_SHORT__ * __CHAR_BIT__ - 1 || __builtin_clrsbg (0) != __SIZEOF_INT__ * __CHAR_BIT__ - 1 || __builtin_clrsbg (-1L) != __SIZEOF_LONG__ * __CHAR_BIT__ - 1 || __builtin_clrsbg (0LL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 1 #ifdef __SIZEOF_INT128__ || __builtin_clrsbg ((__int128) -1) != __SIZEOF_INT128__ * __CHAR_BIT__ - 1 #endif || __builtin_clrsbg (0x1afb) != __SIZEOF_INT__ * __CHAR_BIT__ - 14 || __builtin_clrsbg (-2) != __SIZEOF_INT__ * __CHAR_BIT__ - 2 || __builtin_clrsbg (1L) != __SIZEOF_LONG__ * __CHAR_BIT__ - 2 || __builtin_clrsbg (-4LL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 3 || __builtin_ffsg ((signed char) 0) != 0 || __builtin_ffsg ((signed short) 0) != 0 || __builtin_ffsg (0) != 0 || __builtin_ffsg (0L) != 0 || __builtin_ffsg (0LL) != 0 #ifdef __SIZEOF_INT128__ || __builtin_ffsg ((__int128) 0) != 0 #endif || __builtin_ffsg ((signed char) 4) != 3 || __builtin_ffsg ((signed short) 8) != 4 || __builtin_ffsg (1) != 1 || __builtin_ffsg (2L) != 2 || __builtin_ffsg (28LL) != 3 || __builtin_parityg ((unsigned char) 1) != 1 || __builtin_parityg ((unsigned short) 2) != 1 || __builtin_parityg (0U) != 0 || __builtin_parityg (3U) != 0 || __builtin_parityg (0UL) != 0 || __builtin_parityg (7UL) != 1 || __builtin_parityg (0ULL) != 0 #ifdef __SIZEOF_INT128__ || __builtin_parityg ((unsigned __int128) 0) != 0 #endif || __builtin_parityg ((unsigned char) ~0U) != 0 || __builtin_parityg ((unsigned short) ~0U) != 0 || __builtin_parityg (~0U) != 0 || __builtin_parityg (~0UL) != 0 || __builtin_parityg (~0ULL) != 0 #ifdef __SIZEOF_INT128__ || __builtin_parityg (~(unsigned __int128) 0) != 0 #endif || __builtin_popcountg (0U) != 0 || __builtin_popcountg (0UL) != 0 || __builtin_popcountg (0ULL) != 0 #ifdef __SIZEOF_INT128__ || __builtin_popcountg ((unsigned __int128) 0) != 0 #endif || __builtin_popcountg ((unsigned char) ~0U) != __CHAR_BIT__ || __builtin_popcountg ((unsigned short) ~0U) != __SIZEOF_SHORT__ * __CHAR_BIT__ || __builtin_popcountg (~0U) != __SIZEOF_INT__ * __CHAR_BIT__ || __builtin_popcountg (~0UL) != __SIZEOF_LONG__ * __CHAR_BIT__ || __builtin_popcountg (~0ULL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ #ifdef __SIZEOF_INT128__ || __builtin_popcountg (~(unsigned __int128) 0) != __SIZEOF_INT128__ * __CHAR_BIT__ #endif || 0) __builtin_abort (); if (clzc (1) != __CHAR_BIT__ - 1 || clzs2 (2) != __SIZEOF_SHORT__ * __CHAR_BIT__ - 2 || clzi2 (0U, 42) != 42 || clzi2 (0U, -1) != -1 || clzi (1U) != __SIZEOF_INT__ * __CHAR_BIT__ - 1 || clzl2 (2UL) != __SIZEOF_LONG__ * __CHAR_BIT__ - 2 || clzL (5ULL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 3 #ifdef __SIZEOF_INT128__ || clzI ((unsigned __int128) 9) != __SIZEOF_INT128__ * __CHAR_BIT__ - 4 #endif || clzi2 (~0U, -5) != 0 || clzL (~0ULL >> 2) != 2 || ctzc (1) != 0 || ctzs (28) != 2 || ctzi2 (0U, 32) != 32 || ctzi2 (0U, -42) != -42 || ctzi (1U) != 0 || ctzl2 (16UL, -1) != 4 || ctzL2 (5ULL << 52, 0) != 52 #ifdef __SIZEOF_INT128__ || ctzI (((unsigned __int128) 9) << 72) != 72 #endif || clrsbc (0) != __CHAR_BIT__ - 1 || clrsbs (-1) != __SIZEOF_SHORT__ * __CHAR_BIT__ - 1 || clrsbi (0) != __SIZEOF_INT__ * __CHAR_BIT__ - 1 || clrsbl (-1L) != __SIZEOF_LONG__ * __CHAR_BIT__ - 1 || clrsbL (0LL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 1 #ifdef __SIZEOF_INT128__ || clrsbI (-1) != __SIZEOF_INT128__ * __CHAR_BIT__ - 1 #endif || clrsbi (0x1afb) != __SIZEOF_INT__ * __CHAR_BIT__ - 14 || clrsbi (-2) != __SIZEOF_INT__ * __CHAR_BIT__ - 2 || clrsbl (1L) != __SIZEOF_LONG__ * __CHAR_BIT__ - 2 || clrsbL (-4LL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ - 3 || ffsc (0) != 0 || ffss (0) != 0 || ffsi (0) != 0 || ffsl (0L) != 0 || ffsL (0LL) != 0 #ifdef __SIZEOF_INT128__ || ffsI (0) != 0 #endif || ffsc (4) != 3 || ffss (8) != 4 || ffsi (1) != 1 || ffsl (2L) != 2 || ffsL (28LL) != 3 || parityc (1) != 1 || paritys (2) != 1 || parityi (0U) != 0 || parityi (3U) != 0 || parityl (0UL) != 0 || parityl (7UL) != 1 || parityL (0ULL) != 0 #ifdef __SIZEOF_INT128__ || parityI (0) != 0 #endif || parityc ((unsigned char) ~0U) != 0 || paritys ((unsigned short) ~0U) != 0 || parityi (~0U) != 0 || parityl (~0UL) != 0 || parityL (~0ULL) != 0 #ifdef __SIZEOF_INT128__ || parityI (~(unsigned __int128) 0) != 0 #endif || popcounti (0U) != 0 || popcountl (0UL) != 0 || popcountL (0ULL) != 0 #ifdef __SIZEOF_INT128__ || popcountI (0) != 0 #endif || popcountc ((unsigned char) ~0U) != __CHAR_BIT__ || popcounts ((unsigned short) ~0U) != __SIZEOF_SHORT__ * __CHAR_BIT__ || popcounti (~0U) != __SIZEOF_INT__ * __CHAR_BIT__ || popcountl (~0UL) != __SIZEOF_LONG__ * __CHAR_BIT__ || popcountL (~0ULL) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__ #ifdef __SIZEOF_INT128__ || popcountI (~(unsigned __int128) 0) != __SIZEOF_INT128__ * __CHAR_BIT__ #endif || 0) __builtin_abort (); }