aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTejas Belagod <tejas.belagod@arm.com>2010-10-07 17:07:21 +0100
committerTejas Belagod <belagod@gcc.gnu.org>2010-10-07 17:07:21 +0100
commitd163c4f7574e7c330444bd999c02d9ffe05d18f6 (patch)
treebc93bcf782cb0c5a2f979fe613d89bfe41563ada /gcc
parent7f27ec08affc8092e9b417f8b1fbd07e3b2d7637 (diff)
downloadgcc-d163c4f7574e7c330444bd999c02d9ffe05d18f6.zip
gcc-d163c4f7574e7c330444bd999c02d9ffe05d18f6.tar.gz
gcc-d163c4f7574e7c330444bd999c02d9ffe05d18f6.tar.bz2
tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL check for vectype_out returned by get_vectype_for_scalar_type().
gcc/ 2010-10-07 Tejas Belagod <tejas.belagod@arm.com> * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL check for vectype_out returned by get_vectype_for_scalar_type(). testsuite/ 2010-10-07 Tejas Belagod <tejas.belagod@arm.com> * gcc.dg/vect/pr45847.c: New test. From-SVN: r165123
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr45847.c15
-rw-r--r--gcc/tree-vect-patterns.c1
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d088f60..017b196 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
+ check for vectype_out returned by get_vectype_for_scalar_type().
+
+2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
+
* config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
constraint, add register specifier in instruction template.
(neon_vec_pack_trunc_<mode>): Likewise.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c78a2f3..1a3380e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
+
+ * gcc.dg/vect/pr45847.c: New test.
+
2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
Kai Tietz <kai.tietz@onevision.com>
diff --git a/gcc/testsuite/gcc.dg/vect/pr45847.c b/gcc/testsuite/gcc.dg/vect/pr45847.c
new file mode 100644
index 0000000..f34caa1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr45847.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+
+
+long long foo (long long *__restrict a, int *__restrict b, int *__restrict c )
+{
+ int i;
+ long long sum=0;
+ for (i=0;i<256;i++)
+ sum += (long long)b[i] * c[i];
+
+ return sum;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 0d5824c..ebe00d62 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -413,6 +413,7 @@ vect_recog_widen_mult_pattern (gimple last_stmt,
vectype = get_vectype_for_scalar_type (half_type0);
vectype_out = get_vectype_for_scalar_type (type);
if (!vectype
+ || !vectype_out
|| !supportable_widening_operation (WIDEN_MULT_EXPR, last_stmt,
vectype_out, vectype,
&dummy, &dummy, &dummy_code,