From: Kelvin Nilsen Date: Mon, 17 Apr 2017 16:16:43 +0000 (+0000) Subject: re PR target/80315 (Calling __builtin_crypto_vshasigmaw with argument 3 out of range... X-Git-Tag: upstream/12.2.0~40217 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb5e5621003312f08d6a50c5043cbc43aa6709d1;p=platform%2Fupstream%2Fgcc.git re PR target/80315 (Calling __builtin_crypto_vshasigmaw with argument 3 out of range creates an unrecognizable insn) gcc/testsuite/ChangeLog: 2017-04-12 Kelvin Nilsen PR target/80315 * gcc.target/powerpc/pr80315-1.c: New test. * gcc.target/powerpc/pr80315-2.c: New test. * gcc.target/powerpc/pr80315-3.c: New test. * gcc.target/powerpc/pr80315-4.c: New test. From-SVN: r246949 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8286f73..204d863 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2017-04-12 Kelvin Nilsen + + PR target/80315 + * gcc.target/powerpc/pr80315-1.c: New test. + * gcc.target/powerpc/pr80315-2.c: New test. + * gcc.target/powerpc/pr80315-3.c: New test. + * gcc.target/powerpc/pr80315-4.c: New test. + 2017-04-16 Tom de Vries * g++.dg/parse/error11.C: Remove braces around line number in dejagnu diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-1.c b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c new file mode 100644 index 0000000..3fcf334 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c @@ -0,0 +1,16 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8" } */ + +int +main() +{ + __attribute__((altivec(vector__))) unsigned int test, res; + const int s0 = 0; + int mask; + + /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */ + res = __builtin_crypto_vshasigmaw (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */ + return 0; +} diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-2.c b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c new file mode 100644 index 0000000..250fc58 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c @@ -0,0 +1,16 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8" } */ + +int +main () +{ + __attribute__((altivec(vector__))) unsigned long long test, res; + const int s0 = 0; + int mask; + + /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */ + res = __builtin_crypto_vshasigmad (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */ + return 0; +} diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-3.c b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c new file mode 100644 index 0000000..2084e92 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c @@ -0,0 +1,18 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8" } */ + +#include + +vector unsigned int +main () +{ + vector unsigned int test, res; + const int s0 = 0; + int mask; + + /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */ + res = vec_shasigma_be (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */ + return res; +} diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-4.c b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c new file mode 100644 index 0000000..2d87b40 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c @@ -0,0 +1,18 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8" } */ + +#include + +vector unsigned long long int +main () +{ + vector unsigned long long int test, res; + const int s0 = 0; + int mask; + + /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */ + res = vec_shasigma_be (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */ + return res; +}