From 5181cd6a44e01ef31320f2fd1f1a5c365e98a260 Mon Sep 17 00:00:00 2001 From: Ira Rosen Date: Tue, 21 Jun 2011 11:58:33 +0000 Subject: re PR tree-optimization/49478 (ice in expand_widen_pattern_expr with -O3) PR tree-optimization/49478 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR with constant operand. From-SVN: r175255 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/vect/pr49478.c | 24 ++++++++++++++++++++++++ gcc/tree-vect-loop.c | 19 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/vect/pr49478.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5bd5fb9..317d057 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-06-21 Ira Rosen + + PR tree-optimization/49478 + * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR + with constant operand. + 2011-06-21 Richard Guenther * ipa-inline-transform.c (inline_transform): Fix typo. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9dec802..a615950 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-06-21 Ira Rosen + + PR tree-optimization/49478 + * gcc.dg/vect/pr49478.c + 2011-06-21 Richard Guenther PR tree-optimization/49483 diff --git a/gcc/testsuite/gcc.dg/vect/pr49478.c b/gcc/testsuite/gcc.dg/vect/pr49478.c new file mode 100644 index 0000000..0645399 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr49478.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ + +#include + +#define N 64 + +unsigned char X[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; + +unsigned int +foo (int len) { + int i; + unsigned int result = 0; + unsigned short prod; + + for (i=0; i