diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2017-06-08 19:28:19 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2017-06-08 19:28:19 +0200 |
commit | 2163b9bcc627eb42ba5e629e54567b9f106e2f32 (patch) | |
tree | 938c57531bc5aee0732892fc3d3b276a8368af03 /gcc/testsuite | |
parent | 73f49ad74377e14a9cf0886b3539eeace2111428 (diff) | |
download | gcc-2163b9bcc627eb42ba5e629e54567b9f106e2f32.zip gcc-2163b9bcc627eb42ba5e629e54567b9f106e2f32.tar.gz gcc-2163b9bcc627eb42ba5e629e54567b9f106e2f32.tar.bz2 |
re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))
PR target/81015
Revert:
2016-12-14 Uros Bizjak <ubizjak@gmail.com>
PR target/59874
* config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
(*clzhi2): Ditto.
testsuite/ChangeLog:
PR target/81015
* gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs.
* gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs.
* gcc.target/i386/pr81015.c: New test.
From-SVN: r249028
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr59874-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr59874-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr81015.c | 21 |
4 files changed, 32 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1a3a4bb..4708112 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2017-06-08 Uros Bizjak <ubizjak@gmail.com> + + PR target/81015 + * gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs. + * gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs. + * gcc.target/i386/pr81015.c: New test. + 2017-06-08 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target @@ -488,8 +495,8 @@ 2017-05-31 Steven Munroe <munroesj@gcc.gnu.org> * gcc.target/powerpc/bmi2-pdep32-1.c: Add -mcpu=power7 to - dg-options. Change dg-require-effective-target powerpc_vsx_ok - to vsx_hw. Add dg-skip-if directive to disable this test if + dg-options. Change dg-require-effective-target powerpc_vsx_ok + to vsx_hw. Add dg-skip-if directive to disable this test if -mcpu overridden. * gcc.target/powerpc/bmi2-pdep64-1.c: Likewise. * gcc.target/powerpc/bmi2-pext32-1.c: Likewise. diff --git a/gcc/testsuite/gcc.target/i386/pr59874-1.c b/gcc/testsuite/gcc.target/i386/pr59874-1.c index e6a8a06..862cba4 100644 --- a/gcc/testsuite/gcc.target/i386/pr59874-1.c +++ b/gcc/testsuite/gcc.target/i386/pr59874-1.c @@ -6,5 +6,5 @@ unsigned int foo (unsigned short x) { - return x ? __builtin_ctz (x) : 16U; + return x ? __builtin_ctzs (x) : 16U; } diff --git a/gcc/testsuite/gcc.target/i386/pr59874-2.c b/gcc/testsuite/gcc.target/i386/pr59874-2.c index 710aa7a..3b7679f 100644 --- a/gcc/testsuite/gcc.target/i386/pr59874-2.c +++ b/gcc/testsuite/gcc.target/i386/pr59874-2.c @@ -6,5 +6,5 @@ unsigned int foo (unsigned short x) { - return x ? __builtin_clz (x) : 16U; + return x ? __builtin_clzs (x) : 16U; } diff --git a/gcc/testsuite/gcc.target/i386/pr81015.c b/gcc/testsuite/gcc.target/i386/pr81015.c new file mode 100644 index 0000000..92e53f1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr81015.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mlzcnt" } */ +/* { dg-require-effective-target lzcnt } */ + +#include "lzcnt-check.h" + +int +__attribute__ ((noinline, noclone)) +foo (unsigned short a) +{ + return __builtin_clz (a); +} + +static void +lzcnt_test () +{ + int res = foo (1); + + if (res != 31) + abort (); +} |