diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/powerpc/cmpb-1.c')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/cmpb-1.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/cmpb-1.c b/gcc/testsuite/gcc.target/powerpc/cmpb-1.c new file mode 100644 index 00000000000..53e25b1d73f --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/cmpb-1.c @@ -0,0 +1,31 @@ +/* { dg-do run { target { powerpc*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */ +/* { dg-require-effective-target lp64 } */ +/* { dg-require-effective-target dfp_hw } */ +/* { dg-options "-mcpu=power6" } */ + +void abort (); + +long long int +do_compare (long long int a, long long int b) +{ + return __builtin_cmpb (a, b); +} + +void +expect (long long int pattern, long long int value) +{ + if (pattern != value) + abort (); +} + +int +main (int argc, char *argv[]) +{ + expect (0xff00000000000000, + do_compare (0x0123456789abcdef, 0x0100000000000000)); + expect (0x00ffffffffffffff, + do_compare (0x0123456789abcdef, 0x0023456789abcdef)); + expect (0x00000000000000ff, + do_compare (0x00000000000000ef, 0x0123456789abcdef)); +} |