aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2013-03-28 11:14:44 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2013-03-28 11:14:44 +0000
commit749469789ffb525395b9e1a7b26cc5f78de59411 (patch)
tree48cd0e9b1cfc8507af1e2d88888853578ccd960d /gcc/tree-cfg.c
parent129677c1cf80e2fe333d21dbcfec8ca4e0a39d4e (diff)
downloadgcc-749469789ffb525395b9e1a7b26cc5f78de59411.zip
gcc-749469789ffb525395b9e1a7b26cc5f78de59411.tar.gz
gcc-749469789ffb525395b9e1a7b26cc5f78de59411.tar.bz2
re PR tree-optimization/56695 (ICE in expand_vec_cond_expr, at optabs.c:6751)
PR tree-optimization/56695 * tree-vect-stmts.c (vectorizable_condition): Unconditionally build signed result of a vector comparison. * tree-cfg.c (verify_gimple_comparison): Check that a result of a vector comparison has signed type. Co-Authored-By: Richard Biener <rguenther@suse.de> From-SVN: r197192
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index c3771e5..3843b13 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -3191,7 +3191,10 @@ verify_gimple_comparison (tree type, tree op0, tree op1)
if (TYPE_VECTOR_SUBPARTS (type) != TYPE_VECTOR_SUBPARTS (op0_type)
|| (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (type)))
- != GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0_type)))))
+ != GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0_type))))
+ /* The result of a vector comparison is of signed
+ integral type. */
+ || TYPE_UNSIGNED (TREE_TYPE (type)))
{
error ("invalid vector comparison resulting type");
debug_generic_expr (type);