diff options
author | Andrew Pinski <andrew_pinski@playstation.sony.com> | 2007-06-26 00:19:44 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2007-06-25 17:19:44 -0700 |
commit | 2caf766b63f4ce0b52a9c479ec89427df1faf7cd (patch) | |
tree | c135ea5e05f2bb5a18ae2bac92536924cd1f5c1c /gcc/tree-vect-transform.c | |
parent | 20ec6b51501a3f0771e88ab2932e4287e3f5b6e8 (diff) | |
download | gcc-2caf766b63f4ce0b52a9c479ec89427df1faf7cd.zip gcc-2caf766b63f4ce0b52a9c479ec89427df1faf7cd.tar.gz gcc-2caf766b63f4ce0b52a9c479ec89427df1faf7cd.tar.bz2 |
re PR tree-optimization/32421 (-ftree-vectorize -msse2 ICEs in build2_stat when vectorizing POINTER_PLUS_EXPR)
2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/32421
* tree-vect-transform.c (vectorizable_operation): Convert
POINTER_PLUS_EXPR over to PLUS_EXPR.
2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/32421
* gcc.dg/vect/pr32421.c: New test.
From-SVN: r126012
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r-- | gcc/tree-vect-transform.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index d9152f9..66228f0 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -2968,6 +2968,12 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt) operation = GIMPLE_STMT_OPERAND (stmt, 1); code = TREE_CODE (operation); + + /* For pointer addition, we should use the normal plus for + the vector addition. */ + if (code == POINTER_PLUS_EXPR) + code = PLUS_EXPR; + optab = optab_for_tree_code (code, vectype); /* Support only unary or binary operations. */ |