diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2011-12-13 11:58:49 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-12-13 11:58:49 -0800 |
commit | 8c75d41b920807568bd799f5ba4b46be8dd45ca2 (patch) | |
tree | 4b91de0e187a185ef4ce79585ee921262874444a /gcc/fold-const.c | |
parent | 6cc7fb90517d6928054354f8249532af84e1dc5b (diff) | |
download | gcc-8c75d41b920807568bd799f5ba4b46be8dd45ca2.zip gcc-8c75d41b920807568bd799f5ba4b46be8dd45ca2.tar.gz gcc-8c75d41b920807568bd799f5ba4b46be8dd45ca2.tar.bz2 |
Delete VEC_INTERLEAVE_*_EXPR.
* tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove.
* gimple-pretty-print.c (dump_binary_rhs): Don't handle
VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
* expr.c (expand_expr_real_2): Likewise.
* tree-cfg.c (verify_gimple_assign_binary): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* tree-inline.c (estimate_operator_cost): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-vect-generic.c (expand_vector_operations_1): Likewise.
* fold-const.c (fold_binary_loc): Likewise.
* doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR,
VEC_INTERLEAVE_LOW_EXPR): Remove documentation.
* optabs.c (optab_for_tree_code): Don't handle
VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
(expand_binop, init_optabs): Remove vec_interleave_high_optab
and vec_interleave_low_optab.
* genopinit.c (optabs): Likewise.
* optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove.
(vec_interleave_high_optab, vec_interleave_low_optab): Remove.
* doc/md.texi (vec_interleave_high, vec_interleave_low): Remove
documentation.
* tree-vect-stmts.c (gen_perm_mask): Renamed to...
(vect_gen_perm_mask): ... this. No longer static.
(perm_mask_for_reverse, vectorizable_load): Adjust callers.
* tree-vectorizer.h (vect_gen_perm_mask): New prototype.
* tree-vect-data-refs.c (vect_strided_store_supported): Don't try
VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of
can_vec_perm_for_code_p.
(vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving
masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
* config/i386/i386.c (expand_vec_perm_interleave2): If
expand_vec_perm_interleave3 would handle it, return false.
(expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab.
From-SVN: r182298
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index a32ea90..89c68cf 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -13503,8 +13503,6 @@ fold_binary_loc (location_t loc, case VEC_EXTRACT_EVEN_EXPR: case VEC_EXTRACT_ODD_EXPR: - case VEC_INTERLEAVE_HIGH_EXPR: - case VEC_INTERLEAVE_LOW_EXPR: if ((TREE_CODE (arg0) == VECTOR_CST || TREE_CODE (arg0) == CONSTRUCTOR) && (TREE_CODE (arg1) == VECTOR_CST @@ -13522,14 +13520,6 @@ fold_binary_loc (location_t loc, case VEC_EXTRACT_ODD_EXPR: sel[i] = i * 2 + 1; break; - case VEC_INTERLEAVE_HIGH_EXPR: - sel[i] = (i + (BYTES_BIG_ENDIAN ? 0 : nelts)) / 2 - + ((i & 1) ? nelts : 0); - break; - case VEC_INTERLEAVE_LOW_EXPR: - sel[i] = (i + (BYTES_BIG_ENDIAN ? nelts : 0)) / 2 - + ((i & 1) ? nelts : 0); - break; default: gcc_unreachable (); } |