tree.def (VEC_COND_EXPR): New tree node.
authorDevang Patel <dpatel@apple.com>
Wed, 22 Sep 2004 01:16:20 +0000 (18:16 -0700)
committerDevang Patel <dpatel@gcc.gnu.org>
Wed, 22 Sep 2004 01:16:20 +0000 (18:16 -0700)
       * tree.def (VEC_COND_EXPR): New tree node.
       * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.

From-SVN: r87839

gcc/ChangeLog
gcc/tree-ssa-operands.c
gcc/tree.def

index 0ba7fa87582aaf746293cc75fc74645fcb8acc4f..65651500df3a8466d1f7dfec54e4db10f805743d 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 7f9840f9fcbad98a18db00b949430c5e1a125d65..8c0516998bca3db4c32731d13743f206255ee1eb 100644 (file)
@@ -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;
index 922c75f3232c58a754b3caefe982d884df4a2f41..fa58abafad7e9179a23993ee37174194f8357bac 100644 (file)
@@ -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<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