On Fri, Jan 29, 2016 at 3:13 PM, Yuri Rumyantsev <ysrum...@gmail.com> wrote: > Uros, > > Here is update patch which includes (1) couple changes proposed by > Richard in tree-vect-loop.c and (2) the changes in back-end proposed > by you. > > Is it OK for trunk? > Bootstrap and regression testing dis not show any new failures. > > ChangeLog: > > 2016-01-29 Yuri Rumyantsev <ysrum...@gmail.com> > > PR middle-end/68542 > * config/i386/i386.c (ix86_expand_branch): Add support for conditional > branch with vector comparison. > *config/i386/sse.md (Vi48_AVX): New mode iterator. > (define_expand "cbranch<mode>4): Add support for conditional branch > with vector comparison. > * tree-vect-loop.c (optimize_mask_stores): New function. > * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize > has_mask_store field of vect_info. > * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for > vectorized loops having masked stores after vec_info destroy. > * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and > correspondent macros. > (optimize_mask_stores): Add prototype. > > gcc/testsuite/ChangeLog: > * gcc.dg/vect/vect-mask-store-move-1.c: New test. > * testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise.
+(define_mode_iterator Vi48_AVX + [(V4SI "TARGET_AVX") (V2DI "TARGET_AVX") + (V8SI "TARGET_AVX") (V4DI "TARGET_AVX")]) + Please name this iterator with all caps: VI48_AVX. Also, there is no need for a condition at V4SI and V2DI: (define_mode_iterator VI48_AVX [V4SI V2DI (V8SI "TARGET_AVX") (V4DI "TARGET_AVX") x86 part is OK with the above change. Thanks, Uros.