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