On 10/18/2011 08:30 AM, Jakub Jelinek wrote:
>       * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
>       mode SUBREG of operands[0] as target.
>       (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
>       (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
>       (expand_vec_perm_1): Handle identity and some broadcast
>       permutations.
>       (expand_vec_perm_interleave2): Handle also 32-byte modes, using
>       vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
>       For d->testing_p return true earlier to avoid creating more GC
>       garbage.
>       (expand_vec_perm_vpermq_perm_1): New function.
>       (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
>       earlier to avoid creating more GC garbage.  Fix handling of
>       V16HImode.  Avoid some SUBREGs in SET_DEST.
>       (expand_vec_perm_broadcast_1): Return false for 32-byte integer
>       vector modes.
>       (expand_vec_perm_vpshufb4_vpermq2): New function.
>       (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
>       and expand_vec_perm_vpshufb4_vpermq2.

Ok.


r~

Reply via email to