From ad9f20cbce22c10f62d7f4c1b12d42b144454760 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 21 Sep 2004 18:16:20 -0700 Subject: [PATCH] tree.def (VEC_COND_EXPR): New tree node. * tree.def (VEC_COND_EXPR): New tree node. * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR. From-SVN: r87839 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-operands.c | 3 ++- gcc/tree.def | 12 ++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ba7fa87582..65651500df3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-21 Devang Patel + + * tree.def (VEC_COND_EXPR): New tree node. + * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR. + 2004-09-21 Stan Shebs * config/rs6000/darwin-tramp.asm: Add __ppc64__ case. diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index 7f9840f9fcb..8c0516998bc 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -1071,7 +1071,8 @@ get_expr_operands (tree stmt, tree *expr_p, int flags) return; case COND_EXPR: - get_expr_operands (stmt, &COND_EXPR_COND (expr), opf_none); + case VEC_COND_EXPR: + get_expr_operands (stmt, &TREE_OPERAND (expr, 0), opf_none); get_expr_operands (stmt, &TREE_OPERAND (expr, 1), opf_none); get_expr_operands (stmt, &TREE_OPERAND (expr, 2), opf_none); return; diff --git a/gcc/tree.def b/gcc/tree.def index 922c75f3232..fa58abafad7 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -453,6 +453,18 @@ DEFTREECODE (TARGET_EXPR, "target_expr", tcc_expression, 4) have VOID_TYPE. The same constraints apply to operand 2. */ DEFTREECODE (COND_EXPR, "cond_expr", tcc_expression, 3) +/* Vector conditional expresion. It is like COND_EXPR, but with + vector operands. + + A = VEC_COND_EXPR ( X < Y, B, C) + + means + + for (i=0; i