aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.def
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-10-07 15:41:48 -0700
committerRichard Henderson <rth@gcc.gnu.org>2011-10-07 15:41:48 -0700
commit2205ed2513edc01b29a6a87983ccee7ccaf3b194 (patch)
tree485f14b72a67f60b5c3ee61f71970cc2727a2fda /gcc/tree.def
parent524857ec5dfc4184fa28dfc187bfd631e2f9a6aa (diff)
downloadgcc-2205ed2513edc01b29a6a87983ccee7ccaf3b194.zip
gcc-2205ed2513edc01b29a6a87983ccee7ccaf3b194.tar.gz
gcc-2205ed2513edc01b29a6a87983ccee7ccaf3b194.tar.bz2
Rename vshuffle/vec_shuffle to vec_perm.
* doc/extend.texi (__builtin_shuffle): Improve the description to include the modulus of the selector. Mention OpenCL. * doc/md.texi (vec_perm, vec_perm_const): Document named patterns. * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR. * genopinit.c (optabs): Rename vshuffle to vec_perm. * c-typeck.c (c_build_vec_perm_expr): Rename from c_build_vec_shuffle_expr. Update for name changes. * optabs.c (expand_vec_perm_expr_p): Rename from expand_vec_shuffle_expr_p. (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr. * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle. (vec_perm_optab): Rename from vshuffle_optab. * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c, c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c, tree-ssa-operands.c, tree-vect-generic.c: Update for name changes. * config/i386/i386.c (ix86_expand_vec_perm): Rename from ix86_expand_vshuffle. * config/i386/i386-protos.h: Update. * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2. (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>. From-SVN: r179701
Diffstat (limited to 'gcc/tree.def')
-rw-r--r--gcc/tree.def11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/tree.def b/gcc/tree.def
index 44c4ee8..3e59819 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -497,18 +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
+/* Vector permutation expression. A = VEC_PERM_EXPR<v0, v1, mask> means
- foreach i in length (mask):
- A = mask[i] < length (v0) ? v0[mask[i]] : v1[mask[i] - length (mask)]
+ N = length(mask)
+ foreach i in N:
+ M = mask[i] % (2*N)
+ A = M < N ? v0[M] : v1[M-N]
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)
+DEFTREECODE (VEC_PERM_EXPR, "vec_perm_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.