diff options
author | Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> | 2011-10-03 08:13:26 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-10-03 08:13:26 -0700 |
commit | f90e8e2eae9a83d22efd7922673116a97ebf5290 (patch) | |
tree | f49377e311033773555fb0a2471ab04986fefafe /gcc/tree.def | |
parent | e4a5b262e7bc64b22a34ada24b5d83b6c13dbe40 (diff) | |
download | gcc-f90e8e2eae9a83d22efd7922673116a97ebf5290.zip gcc-f90e8e2eae9a83d22efd7922673116a97ebf5290.tar.gz gcc-f90e8e2eae9a83d22efd7922673116a97ebf5290.tar.bz2 |
Vector shuffling patch from Artem Shinkarov.
From-SVN: r179462
Diffstat (limited to 'gcc/tree.def')
-rw-r--r-- | gcc/tree.def | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/tree.def b/gcc/tree.def index ea255d5..44c4ee8 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -497,6 +497,19 @@ DEFTREECODE (COND_EXPR, "cond_expr", tcc_expression, 3) */ DEFTREECODE (VEC_COND_EXPR, "vec_cond_expr", tcc_expression, 3) +/* Vector shuffle expression. A = VEC_SHUFFLE_EXPR<v0, v1, mask> + means + + foreach i in length (mask): + A = mask[i] < length (v0) ? v0[mask[i]] : v1[mask[i] - length (mask)] + + V0 and V1 are vectors of the same type. MASK is an integer-typed + vector. The number of MASK elements must be the same with the + number of elements in V0 and V1. The size of the inner type + of the MASK and of the V0 and V1 must be the same. +*/ +DEFTREECODE (VEC_SHUFFLE_EXPR, "vec_shuffle_expr", tcc_expression, 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 |