On Thu, Oct 9, 2014 at 1:07 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hello, > This patch extends vpmullw, vpacksdw and pmaddwd > insn patterns. > > Bootstrapped. > AVX-512* tests on top of patch-set all pass > under simulator. > > Is it ok for trunk? > > gcc/ > * config/i386/sse.md > (define_c_enum "unspec"): Add UNSPEC_PMADDWD512. > (define_mode_iterator VI2_AVX2): Add V32HI mode. > (define_expand "mul<mode>3<mask_name>"): Add masking. > (define_insn "*mul<mode>3<mask_name>"): Ditto. > (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto. > (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto. > (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New. > (define_mode_attr SDOT_PMADD_SUF): Ditto. > (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>. > (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking. > (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto. > (define_insn "avx2_packusdw"): Delete. > (define_insn "sse4_1_packusdw"): Ditto. > (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
OK. > + "TARGET_SSE2 > + && ix86_binary_operator_ok (MULT, <MODE>mode, operands) > + && <mask_mode512bit_condition> && <mask_avx512bw_condition>" > > Just noticed, that need to swap target check with operads check. No need to worry for minor issues now, but looking at the sse.md, it looks to me like a case for a quick cleanup patch to correct these inconsistencies. Thanks, Uros.