aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2017-06-08 19:28:19 +0200
committerUros Bizjak <uros@gcc.gnu.org>2017-06-08 19:28:19 +0200
commit2163b9bcc627eb42ba5e629e54567b9f106e2f32 (patch)
tree938c57531bc5aee0732892fc3d3b276a8368af03 /gcc/testsuite
parent73f49ad74377e14a9cf0886b3539eeace2111428 (diff)
downloadgcc-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/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.target/i386/pr59874-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr59874-2.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr81015.c21
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 ();
+}