On Mon, Nov 07, 2011 at 09:22:11PM -1100, Jakub Jelinek wrote:
> Hi!
> 
> Working virtually out of Pago Pago for now.
> 
> The following patch enables mixed mode COND_EXPR vectorization, similarly
> how it has been enabled for i?86/x86_64 a few months ago.
> For Altivec/VSX the only combinations that can be supported are
> V4SImode comparison (unsigned or signed) with V4SFmode then/else and
> destination and V4SFmode comparison with V4SImode then/else and destination.
> As Altivec/VSX uses mask vectors for comparisons, the change is trivial.
> 
> With this we can vectorize gcc.dg/vect/{vect-cond-{8,9,10},slp-cond-2}.c
> with either -O3 -maltivec or -O3 -mvsx.
> 
> Bootstrap/regtest pending, ok for trunk if it passes?
> 
> 2011-11-08  Jakub Jelinek  <ja...@redhat.com>
> 
>       * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
>       vconduv4sfv4si): New patterns.
>       * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
>       different dest_mode from comparison mode.
> 
>       * lib/target-supports.exp (check_effective_target_vect_cond_mixed):
>       Enable also for powerpc*-*-*.

Looks good to me, but David gets the final call on checking it in.

-- 
Michael Meissner, IBM
5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
meiss...@linux.vnet.ibm.com     fax +1 (978) 399-6899

Reply via email to