diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-04-25 15:52:52 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-04-25 15:52:52 +0200 |
commit | 2b33282907e37ff709826b7f60832b036ceb6cbd (patch) | |
tree | 1392f42ed9672235ce6a8dcafeb9af8365e9ee2b /gcc/tree-vect-generic.c | |
parent | ce2acd31d8dca8447eef2f99430522a3ac920774 (diff) | |
download | gcc-2b33282907e37ff709826b7f60832b036ceb6cbd.zip gcc-2b33282907e37ff709826b7f60832b036ceb6cbd.tar.gz gcc-2b33282907e37ff709826b7f60832b036ceb6cbd.tar.bz2 |
re PR tree-optimization/60960 (Wrong result when a vector variable is divided by a literal constant)
PR tree-optimization/60960
* tree-vect-generic.c (expand_vector_operation): Only call
expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
* gcc.c-torture/execute/pr60960.c: New test.
From-SVN: r209802
Diffstat (limited to 'gcc/tree-vect-generic.c')
-rw-r--r-- | gcc/tree-vect-generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index d8b2200..2ca19f0 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -971,7 +971,8 @@ expand_vector_operation (gimple_stmt_iterator *gsi, tree type, tree compute_type if (!optimize || !VECTOR_INTEGER_TYPE_P (type) - || TREE_CODE (rhs2) != VECTOR_CST) + || TREE_CODE (rhs2) != VECTOR_CST + || !VECTOR_MODE_P (TYPE_MODE (type))) break; ret = expand_vector_divmod (gsi, type, rhs1, rhs2, code); |