On Tue, Oct 14, 2014 at 9:18 AM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hello Uroš, > It seems like I missed to post uppdated patch. > On 25 Sep 20:11, Uros Bizjak wrote: >> I'd rather go with the second approach, it is less confusing from the >> maintainer POV. All other patterns with masking use some consistent >> template, so I'd suggest using the same approach for everything. If it >> is indeed too many patterns, then please split the patch to smaller >> pieces. > Goal was not to decrease size of the patch, I wanted to make pattern look > simpler by hiding masking stuff beyond `subst'. > Anyway, I've updated the patch. > > Here it is (bootstrapped and regtested). > > Is it ok for trunk? > > gcc/ > * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend > to support AVX-512BW. > (define_mode_iterator VI124_AVX2_48_AVX512F): Remove. > (define_expand "<plusminus_insn><mode>3"): Remove masking support. > (define_insn "*<plusminus_insn><mode>3"): Ditto. > (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New. > (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. > (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto. > (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. > (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support. > (define_insn "*andnot<mode>3"): Ditto. > (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New. > (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto. > (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto. > (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto. > (define_insn "*abs<mode>2"): Remove masking support. > (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New. > (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto. > (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
IMO, it seems much more readable this way. OK for mainline. Thanks, Uros.