+2004-09-21  Devang Patel  <dpatel@apple.com>
+
+       * tree.def (VEC_COND_EXPR): New tree node.
+       * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
+       
 2004-09-21  Stan Shebs  <shebs@apple.com>
 
        * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
 
       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;
 
    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<N; i++)
+     A[i] = X[i] < Y[i] ? B[i] : C[i];
+*/
+DEFTREECODE (VEC_COND_EXPR, "vec_cond_expr", 'e', 3)
+
 /* Declare local variables, including making RTL and allocating space.
    BIND_EXPR_VARS is a chain of VAR_DECL nodes for the variables.
    BIND_EXPR_BODY is the body, the expression to be computed using