diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/bswap-3.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/bswap-3.c b/gcc/testsuite/gcc.c-torture/execute/bswap-3.c new file mode 100644 index 0000000..633711e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/bswap-3.c @@ -0,0 +1,25 @@ +/* { dg-require-effective-target int32plus } */ + +int f(unsigned int a) __attribute__((noipa)); +int f(unsigned int a) +{ + return ((__builtin_bswap32(a))>>24) & 0x3; +} + + +int g(unsigned int a) __attribute__((noipa)); +int g(unsigned int a) +{ + return a&0x3; +} + +int main(void) +{ + for (int b = 0; b <= 0xF; b++) + { + if (f(b) != g(b)) + __builtin_abort (); + } + return 0; +} + |