diff options
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 89c68cf582b..5d3196b7377 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -13501,33 +13501,6 @@ fold_binary_loc (location_t loc, /* An ASSERT_EXPR should never be passed to fold_binary. */ gcc_unreachable (); - case VEC_EXTRACT_EVEN_EXPR: - case VEC_EXTRACT_ODD_EXPR: - if ((TREE_CODE (arg0) == VECTOR_CST - || TREE_CODE (arg0) == CONSTRUCTOR) - && (TREE_CODE (arg1) == VECTOR_CST - || TREE_CODE (arg1) == CONSTRUCTOR)) - { - unsigned int nelts = TYPE_VECTOR_SUBPARTS (type), i; - unsigned char *sel = XALLOCAVEC (unsigned char, nelts); - - for (i = 0; i < nelts; i++) - switch (code) - { - case VEC_EXTRACT_EVEN_EXPR: - sel[i] = i * 2; - break; - case VEC_EXTRACT_ODD_EXPR: - sel[i] = i * 2 + 1; - break; - default: - gcc_unreachable (); - } - - return fold_vec_perm (type, arg0, arg1, sel); - } - return NULL_TREE; - case VEC_PACK_TRUNC_EXPR: case VEC_PACK_FIX_TRUNC_EXPR: { |