On 11/11/2011 07:24 AM, Jakub Jelinek wrote: > PR tree-optimization/51074 > * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions. > (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR, > VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and > VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands. > (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or > CONSTRUCTOR operands. > * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary > expressions. > * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements > to 0 .. 2 * elements - 1.
Ok, except > + elts[i] > + = fold_convert (TREE_TYPE (TREE_TYPE (arg)), integer_zero_node); build_int_cst. r~