aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2004-09-27 17:13:12 -0700
committerDevang Patel <dpatel@gcc.gnu.org>2004-09-27 17:13:12 -0700
commit7ce67fbe42c85071c99837def6395f131cfdcc61 (patch)
treed499fabff1893bbf2a9b76b6065afdd79d7c845b /gcc/expr.c
parent55040e7a24ca7a4d07644ab93976fb8f3a6d1b1c (diff)
downloadgcc-7ce67fbe42c85071c99837def6395f131cfdcc61.zip
gcc-7ce67fbe42c85071c99837def6395f131cfdcc61.tar.gz
gcc-7ce67fbe42c85071c99837def6395f131cfdcc61.tar.bz2
expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
* expr.c (expand_expr_real_1): Handle VEC_COND_EXPR. * genopinit.c (optabs): New entry for vcond_gen_code and vcondu_gen_code. * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs. (get_rtx_code): New function. (vector_compare_rtx): New function. (init_optabs): Initialize vcond_gen_code and vcondu_gen_code. (expand_vec_cond_expr_p): New function. (expand_vec_cond_expr): New function. (get_vcond_icode): New function. * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs. (vcond_gen_code, vcondu_gen_code): Same. From-SVN: r88209
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 96cab62..ff8355b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8053,6 +8053,10 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
OK_DEFER_POP;
return temp;
+ case VEC_COND_EXPR:
+ target = expand_vec_cond_expr (exp, target);
+ return target;
+
case MODIFY_EXPR:
{
/* If lhs is complex, expand calls in rhs before computing it.