diff options
author | Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> | 2011-08-29 11:55:45 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-08-29 11:55:45 +0000 |
commit | 544d960a12742dbe8c8e9a968764d4502b239a26 (patch) | |
tree | a6235b0de2204188ae68275b478b1d3c90038b41 /gcc/gimplify.c | |
parent | 776bebcdb0de9557b40aa5496c016588da845398 (diff) | |
download | gcc-544d960a12742dbe8c8e9a968764d4502b239a26.zip gcc-544d960a12742dbe8c8e9a968764d4502b239a26.tar.gz gcc-544d960a12742dbe8c8e9a968764d4502b239a26.tar.bz2 |
20011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
Richard Guenther <rguenther@suse.de>
* tree.h (constant_boolean_node): Adjust prototype.
* fold-const.c (fold_convert_loc): Move aggregate conversion
leeway down.
(constant_boolean_node): Make value parameter boolean, add
vector type handling.
(fold_unary_loc): Use constant_boolean_node.
(fold_binary_loc): Preserve types properly when folding
COMPLEX_EXPR <__real x, __imag x>.
* gimplify.c (gimplify_expr): Handle vector comparison.
* tree.def (EQ_EXPR, ...): Document behavior on vector typed
comparison.
* tree-cfg.c (verify_gimple_comparison): Verify vector typed
comparisons.
From-SVN: r178209
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 85033a9..a22b5d3 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -7349,7 +7349,10 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, { tree type = TREE_TYPE (TREE_OPERAND (*expr_p, 1)); - if (!AGGREGATE_TYPE_P (type)) + /* Vector comparisons need no boolification. */ + if (TREE_CODE (type) == VECTOR_TYPE) + goto expr_2; + else if (!AGGREGATE_TYPE_P (type)) { tree org_type = TREE_TYPE (*expr_p); *expr_p = gimple_boolify (*expr_p); |