diff options
author | Richard Biener <rguenther@suse.de> | 2014-04-17 13:50:55 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-04-17 13:50:55 +0000 |
commit | b94970bc41f7b2c6ab28d52493f95efcf2fa97de (patch) | |
tree | 7d3802317bcd2b113d5fef1e34026df49ccc04bb | |
parent | 92f0f3ec9210d529daa3271f6108e18600c9c2c3 (diff) | |
download | gcc-b94970bc41f7b2c6ab28d52493f95efcf2fa97de.zip gcc-b94970bc41f7b2c6ab28d52493f95efcf2fa97de.tar.gz gcc-b94970bc41f7b2c6ab28d52493f95efcf2fa97de.tar.bz2 |
re PR tree-optimization/60849 (bogus comparison result type)
2014-04-17 Richard Biener <rguenther@suse.de>
PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
comparison results and add clarifying comment.
From-SVN: r209486
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-propagate.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ead28c2..1f463e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-04-17 Richard Biener <rguenther@suse.de> + + PR middle-end/60849 + * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector + comparison results and add clarifying comment. + 2014-04-17 Jakub Jelinek <jakub@redhat.com> * genmodes.c (struct mode_data): Add need_bytesize_adj field. diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c index 47fd154..59e46dc 100644 --- a/gcc/tree-ssa-propagate.c +++ b/gcc/tree-ssa-propagate.c @@ -572,9 +572,13 @@ valid_gimple_rhs_p (tree expr) break; case tcc_comparison: - if (!INTEGRAL_TYPE_P (TREE_TYPE (expr)) - || (TREE_CODE (TREE_TYPE (expr)) != BOOLEAN_TYPE - && TYPE_PRECISION (TREE_TYPE (expr)) != 1)) + /* GENERIC allows comparisons with non-boolean types, reject + those for GIMPLE. Let vector-typed comparisons pass - rules + for GENERIC and GIMPLE are the same here. */ + if (!(INTEGRAL_TYPE_P (TREE_TYPE (expr)) + && (TREE_CODE (TREE_TYPE (expr)) == BOOLEAN_TYPE + || TYPE_PRECISION (TREE_TYPE (expr)) == 1)) + && ! VECTOR_TYPE_P (TREE_TYPE (expr))) return false; /* Fallthru. */ |