[PATCH] PR64386
Ilya Tocar
tocarip.intel@gmail.com
Wed Jan 14 12:21:00 GMT 2015
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
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;
+ }
+}
--
1.8.3.1
More information about the Gcc-patches
mailing list