blob: 6dc4c15b45021414f58d5d60460b58b27529d599 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
int test_s32_0_1(int x) { return __builtin_bswap32(x) & 1; }
int test_s32_0_2(int x) { return __builtin_bswap32(x) & 2; }
int test_s32_0_240(int x) { return __builtin_bswap32(x) & 240; }
int test_s32_0_255(int x) { return __builtin_bswap32(x) & 255; }
int test_s32_1_1(int x) { return (__builtin_bswap32(x) >> 1) & 1; }
int test_s32_7_1(int x) { return (__builtin_bswap32(x) >> 7) & 1; }
int test_s32_8_1(int x) { return (__builtin_bswap32(x) >> 8) & 1; }
int test_s32_8_240(int x) { return (__builtin_bswap32(x) >> 8) & 240; }
int test_s32_8_255(int x) { return (__builtin_bswap32(x) >> 8) & 255; }
int test_s32_15_1(int x) { return (__builtin_bswap32(x) >> 15) & 1; }
int test_s32_16_1(int x) { return (__builtin_bswap32(x) >> 16) & 1; }
int test_s32_16_240(int x) { return (__builtin_bswap32(x) >> 16) & 240; }
int test_s32_16_255(int x) { return (__builtin_bswap32(x) >> 16) & 255; }
int test_s32_24_1(int x) { return (__builtin_bswap32(x) >> 24) & 1; }
int test_s32_24_240(int x) { return (__builtin_bswap32(x) >> 24) & 240; }
int test_s32_24_255(int x) { return (__builtin_bswap32(x) >> 24) & 255; }
int test_s32_31_1(int x) { return (__builtin_bswap32(x) >> 31) & 1; }
int test_S32_0_1(int x) { return (int)__builtin_bswap32(x) & 1; }
int test_S32_0_2(int x) { return (int)__builtin_bswap32(x) & 2; }
int test_S32_0_240(int x) { return (int)__builtin_bswap32(x) & 240; }
int test_S32_0_255(int x) { return (int)__builtin_bswap32(x) & 255; }
int test_S32_1_1(int x) { return ((int)__builtin_bswap32(x) >> 1) & 1; }
int test_S32_7_1(int x) { return ((int)__builtin_bswap32(x) >> 7) & 1; }
int test_S32_8_1(int x) { return ((int)__builtin_bswap32(x) >> 8) & 1; }
int test_S32_8_240(int x) { return ((int)__builtin_bswap32(x) >> 8) & 240; }
int test_S32_8_255(int x) { return ((int)__builtin_bswap32(x) >> 8) & 255; }
int test_S32_15_1(int x) { return ((int)__builtin_bswap32(x) >> 15) & 1; }
int test_S32_16_1(int x) { return ((int)__builtin_bswap32(x) >> 16) & 1; }
int test_S32_16_240(int x) { return ((int)__builtin_bswap32(x) >> 16) & 240; }
int test_S32_16_255(int x) { return ((int)__builtin_bswap32(x) >> 16) & 255; }
int test_S32_24_1(int x) { return ((int)__builtin_bswap32(x) >> 24) & 1; }
int test_S32_24_240(int x) { return ((int)__builtin_bswap32(x) >> 24) & 240; }
int test_S32_24_255(int x) { return ((int)__builtin_bswap32(x) >> 24) & 255; }
int test_S32_31_1(int x) { return ((int)__builtin_bswap32(x) >> 31) & 1; }
unsigned int test_u32_24_255(unsigned int x) {
return (__builtin_bswap32(x) >> 24) & 255;
}
long long test_s64_0_1(long long x) {
return __builtin_bswap64(x) & 1;
}
long long test_s64_0_2(long long x) {
return __builtin_bswap64(x) & 2;
}
long long test_s64_0_240(long long x) {
return __builtin_bswap64(x) & 240;
}
long long test_s64_0_255(long long x) {
return __builtin_bswap64(x) & 255;
}
long long test_s64_7_1(long long x) {
return (__builtin_bswap64(x) >> 7) & 1;
}
long long test_s64_8_1(long long x) {
return (__builtin_bswap64(x) >> 8) & 1;
}
long long test_s64_8_240(long long x) {
return (__builtin_bswap64(x) >> 56) & 240;
}
long long test_s64_8_255(long long x) {
return (__builtin_bswap64(x) >> 8) & 255;
}
long long test_s64_9_1(long long x) {
return (__builtin_bswap64(x) >> 9) & 1;
}
long long test_s64_31_1(long long x) {
return (__builtin_bswap64(x) >> 31) & 1;
}
long long test_s64_32_1(long long x) {
return (__builtin_bswap64(x) >> 32) & 1;
}
long long test_s64_32_240(long long x) {
return (__builtin_bswap64(x) >> 32) & 240;
}
long long test_s64_32_255(long long x) {
return (__builtin_bswap64(x) >> 32) & 255;
}
long long test_s64_33_1(long long x) {
return (__builtin_bswap64(x) >> 33) & 1;
}
long long test_s64_48_1(long long x) {
return (__builtin_bswap64(x) >> 48) & 1;
}
long long test_s64_48_240(long long x) {
return (__builtin_bswap64(x) >> 48) & 240;
}
long long test_s64_48_255(long long x) {
return (__builtin_bswap64(x) >> 48) & 255;
}
long long test_s64_56_1(long long x) {
return (__builtin_bswap64(x) >> 56) & 1;
}
long long test_s64_56_240(long long x) {
return (__builtin_bswap64(x) >> 56) & 240;
}
long long test_s64_56_255(long long x) {
return (__builtin_bswap64(x) >> 56) & 255;
}
long long test_s64_57_1(long long x) {
return (__builtin_bswap64(x) >> 57) & 1;
}
long long test_s64_63_1(long long x) {
return (__builtin_bswap64(x) >> 63) & 1;
}
long long test_S64_0_1(long long x) {
return (long long)__builtin_bswap64(x) & 1;
}
long long test_S64_0_2(long long x) {
return (long long)__builtin_bswap64(x) & 2;
}
long long test_S64_0_240(long long x) {
return (long long)__builtin_bswap64(x) & 240;
}
long long test_S64_0_255(long long x) {
return (long long)__builtin_bswap64(x) & 255;
}
long long test_S64_7_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 7) & 1;
}
long long test_S64_8_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 8) & 1;
}
long long test_S64_8_240(long long x) {
return ((long long)__builtin_bswap64(x) >> 56) & 240;
}
long long test_S64_8_255(long long x) {
return ((long long)__builtin_bswap64(x) >> 8) & 255;
}
long long test_S64_9_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 9) & 1;
}
long long test_S64_31_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 31) & 1;
}
long long test_S64_32_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 32) & 1;
}
long long test_S64_32_240(long long x) {
return ((long long)__builtin_bswap64(x) >> 32) & 240;
}
long long test_S64_32_255(long long x) {
return ((long long)__builtin_bswap64(x) >> 32) & 255;
}
long long test_S64_33_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 33) & 1;
}
long long test_S64_48_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 48) & 1;
}
long long test_S64_48_240(long long x) {
return ((long long)__builtin_bswap64(x) >> 48) & 240;
}
long long test_S64_48_255(long long x) {
return ((long long)__builtin_bswap64(x) >> 48) & 255;
}
long long test_S64_56_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 56) & 1;
}
long long test_S64_56_240(long long x) {
return ((long long)__builtin_bswap64(x) >> 56) & 240;
}
long long test_S64_56_255(long long x) {
return ((long long)__builtin_bswap64(x) >> 56) & 255;
}
long long test_S64_57_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 57) & 1;
}
long long test_S64_63_1(long long x) {
return ((long long)__builtin_bswap64(x) >> 63) & 1;
}
unsigned long long test_u64_56_255(unsigned long long x) {
return (__builtin_bswap64(x) >> 56) & 255;
}
short test_s16_0_1(short x) {
return __builtin_bswap16(x) & 1;
}
short test_s16_0_240(short x) {
return __builtin_bswap16(x) & 240;
}
short test_s16_0_255(short x) {
return __builtin_bswap16(x) & 255;
}
short test_s16_1_1(short x) {
return (__builtin_bswap16(x) >> 1) & 1;
}
short test_s16_7_1(short x) {
return (__builtin_bswap16(x) >> 7) & 1;
}
short test_s16_8_1(short x) {
return (__builtin_bswap16(x) >> 8) & 1;
}
short test_s16_8_240(short x) {
return (__builtin_bswap16(x) >> 8) & 240;
}
short test_s16_8_255(short x) {
return (__builtin_bswap16(x) >> 8) & 255;
}
short test_s16_9_1(short x) {
return (__builtin_bswap16(x) >> 9) & 1;
}
short test_s16_15_1(short x) {
return (__builtin_bswap16(x) >> 15) & 1;
}
short test_S16_0_1(short x) {
return (short)__builtin_bswap16(x) & 1;
}
short test_S16_0_240(short x) {
return (short)__builtin_bswap16(x) & 240;
}
short test_S16_0_255(short x) {
return (short)__builtin_bswap16(x) & 255;
}
short test_S16_1_1(short x) {
return ((short)__builtin_bswap16(x) >> 1) & 1;
}
short test_S16_7_1(short x) {
return ((short)__builtin_bswap16(x) >> 7) & 1;
}
short test_S16_8_1(short x) {
return ((short)__builtin_bswap16(x) >> 8) & 1;
}
short test_S16_8_240(short x) {
return ((short)__builtin_bswap16(x) >> 8) & 240;
}
short test_S16_8_255(short x) {
return ((short)__builtin_bswap16(x) >> 8) & 255;
}
short test_S16_9_1(short x) {
return ((short)__builtin_bswap16(x) >> 9) & 1;
}
short test_S16_15_1(short x) {
return ((short)__builtin_bswap16(x) >> 15) & 1;
}
unsigned short test_u16_8_255(unsigned short x) {
return (__builtin_bswap16(x) >> 8) & 255;
}
/* Shifts only */
int test_s32_24(int x) {
return __builtin_bswap32(x) >> 24;
}
int test_s32_25(int x) {
return __builtin_bswap32(x) >> 25;
}
int test_s32_30(int x) {
return __builtin_bswap32(x) >> 30;
}
int test_s32_31(int x) {
return __builtin_bswap32(x) >> 31;
}
unsigned int test_u32_24(unsigned int x) {
return __builtin_bswap32(x) >> 24;
}
unsigned int test_u32_25(unsigned int x) {
return __builtin_bswap32(x) >> 25;
}
unsigned int test_u32_30(unsigned int x) {
return __builtin_bswap32(x) >> 30;
}
unsigned int test_u32_31(unsigned int x) {
return __builtin_bswap32(x) >> 31;
}
long long test_s64_56(long long x) {
return __builtin_bswap64(x) >> 56;
}
long long test_s64_57(long long x) {
return __builtin_bswap64(x) >> 57;
}
long long test_s64_62(long long x) {
return __builtin_bswap64(x) >> 62;
}
long long test_s64_63(long long x) {
return __builtin_bswap64(x) >> 63;
}
unsigned long long test_u64_56(unsigned long long x) {
return __builtin_bswap64(x) >> 56;
}
unsigned long long test_u64_57(unsigned long long x) {
return __builtin_bswap64(x) >> 57;
}
unsigned long long test_u64_62(unsigned long long x) {
return __builtin_bswap64(x) >> 62;
}
unsigned long long test_u64_63(unsigned long long x) {
return __builtin_bswap64(x) >> 63;
}
short test_s16_8(short x) {
return __builtin_bswap16(x) >> 8;
}
short test_s16_9(short x) {
return __builtin_bswap16(x) >> 9;
}
short test_s16_14(short x) {
return __builtin_bswap16(x) >> 14;
}
short test_s16_15(short x) {
return __builtin_bswap16(x) >> 15;
}
unsigned short test_u16_8(unsigned short x) {
return __builtin_bswap16(x) >> 8;
}
unsigned short test_u16_9(unsigned short x) {
return __builtin_bswap16(x) >> 9;
}
unsigned short test_u16_14(unsigned short x) {
return __builtin_bswap16(x) >> 14;
}
unsigned short test_u16_15(unsigned short x) {
return __builtin_bswap16(x) >> 15;
}
/* { dg-final { scan-tree-dump-not "__builtin_bswap" "optimized" } } */