summaryrefslogtreecommitdiffstats
path: root/gcc/expr.c
diff options
context:
space:
mode:
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-28 00:13:12 +0000
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-28 00:13:12 +0000
commit6b7acc28494ae8de5616895bd43ff652b08db4ef (patch)
treed499fabff1893bbf2a9b76b6065afdd79d7c845b /gcc/expr.c
parent01ff45405b5a53582bf0938fecf5d7473bf0f3e1 (diff)
downloadppe42-gcc-6b7acc28494ae8de5616895bd43ff652b08db4ef.tar.gz
ppe42-gcc-6b7acc28494ae8de5616895bd43ff652b08db4ef.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88209 138bc75d-0d04-0410-961f-82ee72b054a4
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 96cab626f7b..ff8355bc738 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.
OpenPOWER on IntegriCloud