aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Enkovich <enkovich.gnu@gmail.com>2016-01-28 10:09:12 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2016-01-28 10:09:12 +0000
commit30480bcd794f8a0d4e489b8eb3f043b2ab72e7e8 (patch)
tree8b3774bdeb3d96f5bcd4b368705444165028c6e1
parent14ba8d6d0786acbda30f802dd6bc4d07f4df2e5f (diff)
downloadgcc-30480bcd794f8a0d4e489b8eb3f043b2ab72e7e8.zip
gcc-30480bcd794f8a0d4e489b8eb3f043b2ab72e7e8.tar.gz
gcc-30480bcd794f8a0d4e489b8eb3f043b2ab72e7e8.tar.bz2
tree-vect-stmts.c (vectorizable_comparison): Add NULL check for vectype.
gcc/ * tree-vect-stmts.c (vectorizable_comparison): Add NULL check for vectype. gcc/testsuite/ * gcc.dg/declare-simd.c: New test. From-SVN: r232917
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/declare-simd.c14
-rw-r--r--gcc/tree-vect-stmts.c2
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1dc8252..aa98585 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ * tree-vect-stmts.c (vectorizable_comparison): Add
+ NULL check for vectype.
+
2016-01-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/69466
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 60c87fe9..fb29f73 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ * gcc.dg/declare-simd.c: New test.
+
2016-01-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/69466
diff --git a/gcc/testsuite/gcc.dg/declare-simd.c b/gcc/testsuite/gcc.dg/declare-simd.c
new file mode 100644
index 0000000..1c71b60
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/declare-simd.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -fopenmp-simd" } */
+
+#pragma omp declare simd linear (p2, p3)
+extern void fn2 (float p1, float *p2, float *p3);
+
+float *a, *b;
+void fn1 (float *p1)
+{
+ int i;
+#pragma omp simd
+ for (i = 0; i < 1000; i++)
+ fn2 (p1[i], a + i, b + i);
+}
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 1dcd129..fa4a364 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -7764,7 +7764,7 @@ vectorizable_comparison (gimple *stmt, gimple_stmt_iterator *gsi,
if (!STMT_VINFO_RELEVANT_P (stmt_info) && !bb_vinfo)
return false;
- if (!VECTOR_BOOLEAN_TYPE_P (vectype))
+ if (!vectype || !VECTOR_BOOLEAN_TYPE_P (vectype))
return false;
mask_type = vectype;