diff mbox

PR64386

Message ID 20150114121714.GD66571@msticlxl7.ims.intel.com
State New
Headers show

Commit Message

Ilya Tocar Jan. 14, 2015, 12:17 p.m. UTC
Hi,

This patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64386
Ok for trunk?

ChangeLog:

gcc/
	PR target/64386
	* config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
	V32HImode. 

testsuite/
	PR target/64386
	* gcc.target/i386/pr64386.c: New test.

---
 gcc/config/i386/i386.c                  |  8 ++++++++
 gcc/testsuite/gcc.target/i386/pr64386.c | 14 ++++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/i386/pr64386.c

Comments

Uros Bizjak Jan. 14, 2015, 12:24 p.m. UTC | #1
On Wed, Jan 14, 2015 at 1:17 PM, Ilya Tocar <tocarip.intel@gmail.com> wrote:
> Hi,
>
> This patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64386
> Ok for trunk?
>
> ChangeLog:
>
> gcc/
>         PR target/64386
>         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
>         V32HImode.
>
> testsuite/
>         PR target/64386
>         * gcc.target/i386/pr64386.c: New test.

OK.

Thanks,
Uros.
diff mbox

Patch

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 91eae5a..f358ac2 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -21318,6 +21318,14 @@  ix86_expand_sse_cmp (rtx dest, enum rtx_code code, rtx cmp_op0, rtx cmp_op1,
 
       switch (cmp_ops_mode)
 	{
+	case V64QImode:
+	  gcc_assert (TARGET_AVX512BW);
+	  gen = code == GT ? gen_avx512bw_gtv64qi3 : gen_avx512bw_eqv64qi3_1;
+	  break;
+	case V32HImode:
+	  gcc_assert (TARGET_AVX512BW);
+	  gen = code == GT ? gen_avx512bw_gtv32hi3 : gen_avx512bw_eqv32hi3_1;
+	  break;
 	case V16SImode:
 	  gen = code == GT ? gen_avx512f_gtv16si3 : gen_avx512f_eqv16si3_1;
 	  break;
diff --git a/gcc/testsuite/gcc.target/i386/pr64386.c b/gcc/testsuite/gcc.target/i386/pr64386.c
new file mode 100644
index 0000000..fc152cb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr64386.c
@@ -0,0 +1,14 @@ 
+/* { dg-do compile } */
+/* { dg-options "-O -ftree-vectorize -mavx512bw" } */
+
+char ac[64], bc[64], ec[64];
+
+void fc (void)
+{
+  int i;
+  for (i = 0; i < 64; i++)
+    {
+      char e = ec[i];
+      ac[i] = bc[i] ? : e;
+    }
+}