[PATCH 3/6] Implement interleave via permutation.

Hans-Peter Nilsson hp@bitrange.com
Fri Oct 28 22:18:00 GMT 2011


On Mon, 24 Oct 2011, Richard Henderson wrote:

> From: Richard Henderson <rth@twiddle.net>

> +  /* Certain vector operations can be implemented with vector permutation.  */
> +  if (VECTOR_MODE_P (mode))
> +    {
> +      enum tree_code tcode = ERROR_MARK;
> +      rtx sel;
> +
> +      if (binoptab == vec_interleave_high_optab)
> +	tcode = VEC_INTERLEAVE_HIGH_EXPR;
> +      else if (binoptab == vec_interleave_low_optab)
> +	tcode = VEC_INTERLEAVE_LOW_EXPR;
> +      else if (binoptab == vec_extract_even_optab)
> +	tcode = VEC_EXTRACT_EVEN_EXPR;
> +      else if (binoptab == vec_extract_odd_optab)
> +	tcode = VEC_EXTRACT_ODD_EXPR;

Also VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, and
VEC_PACK_TRUNC_EXPR to mention some.

brgds, H-P



More information about the Gcc-patches mailing list