aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorAlan Lawrence <alan.lawrence@arm.com>2014-10-28 11:17:47 +0000
committerAlan Lawrence <alalaw01@gcc.gnu.org>2014-10-28 11:17:47 +0000
commite29dfbf07d93e89e92d8b95bef247fc95a8024ef (patch)
tree815114050f368a772cb5c71599a28a3a4b7ef2ec /gcc/optabs.c
parentfed4de37b870faad50374a63aa1cf68a97963da6 (diff)
downloadgcc-e29dfbf07d93e89e92d8b95bef247fc95a8024ef.zip
gcc-e29dfbf07d93e89e92d8b95bef247fc95a8024ef.tar.gz
gcc-e29dfbf07d93e89e92d8b95bef247fc95a8024ef.tar.bz2
Remove VEC_LSHIFT_EXPR and vec_shl_optab
* expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR. * fold-const.c (const_binop): Likewise. * cfgexpand.c (expand_debug_expr): Likewise. * tree-inline.c (estimate_operator_cost): Likewise. * tree-vect-generic.c (expand_vector_operations_1): Likewise. * optabs.c (optab_for_tree_code): Likewise. (expand_vec_shift_expr): Likewise, update comment. * tree.def: Delete VEC_LSHIFT_EXPR, remove comment. * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR. * optabs.def: Remove vec_shl_optab. * doc/md.texi: Remove references to vec_shr_m. From-SVN: r216779
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 677958f..9452f99 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -519,9 +519,6 @@ optab_for_tree_code (enum tree_code code, const_tree type,
case REDUC_PLUS_EXPR:
return reduc_plus_scal_optab;
- case VEC_LSHIFT_EXPR:
- return vec_shl_optab;
-
case VEC_RSHIFT_EXPR:
return vec_shr_optab;
@@ -773,7 +770,7 @@ force_expand_binop (enum machine_mode mode, optab binoptab,
return true;
}
-/* Generate insns for VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR. */
+/* Generate insns for VEC_RSHIFT_EXPR. */
rtx
expand_vec_shift_expr (sepops ops, rtx target)
@@ -784,21 +781,10 @@ expand_vec_shift_expr (sepops ops, rtx target)
enum machine_mode mode = TYPE_MODE (ops->type);
tree vec_oprnd = ops->op0;
tree shift_oprnd = ops->op1;
- optab shift_optab;
- switch (ops->code)
- {
- case VEC_RSHIFT_EXPR:
- shift_optab = vec_shr_optab;
- break;
- case VEC_LSHIFT_EXPR:
- shift_optab = vec_shl_optab;
- break;
- default:
- gcc_unreachable ();
- }
+ gcc_assert (ops->code == VEC_RSHIFT_EXPR);
- icode = optab_handler (shift_optab, mode);
+ icode = optab_handler (vec_shr_optab, mode);
gcc_assert (icode != CODE_FOR_nothing);
rtx_op1 = expand_normal (vec_oprnd);