On Tue, Sep 9, 2014 at 1:28 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hello Uroš, > On 28 Aug 20:44, Uros Bizjak wrote: >> On Thu, Aug 28, 2014 at 3:48 PM, Kirill Yukhin <kirill.yuk...@gmail.com> >> wrote: >> Please document these changes as: >> >> [new_pattern_name]: Rename from [old_pattern_name] and use VF_AVXyy >> mode iterator. >> >> > -(define_insn >> > "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" >> > +(define_insn >> > "<sd_mask_codefor>fma_fmsub_noavx512<mode><sd_maskz_name><round_name>" >> >> I'd suggest to put noavx512 at the beginning, so: >> >> "noavx512_<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" >> >> This way, we will have avx512 and noavx512 prefixes. It looks more >> consistent to me. > > I've refactored the patch in order to remove `noavx512' suffix at all. > Patterns are now split by FMA/FMA4 and AVX-512*. > > Bootstrapped. i386.exp testing shows no regressions. > > Updated ChangeLog entry: > > gcc/ > * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New. > (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version. > (define_mode_iterator FMAMODE_AVX512): New. > (define_mode_iterator FMAMODE): Remove conditions. > (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode > iterator. > (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): > Rename > from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use > VF_AVX512VL > mode iterator. > (define_mode_iterator FMAMODE_NOVF512): Remove. > (define_insn "*fma_fmadd_<mode>"): Rename from > "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use > FMAMODE mode iterator. > (define_mode_iterator VF_SF_AVX512VL): New. > (define_insn > "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from > "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from > "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "*fma_fmsub_<mode>"): Rename from > "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use > FMAMODE mode iterator. > (define_insn > "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from > "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from > "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "*fma_fnmadd_<mode>"): Rename from > "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and > use FMAMODE mode iterator. > (define_insn > "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from > "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from > "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "*fma_fnmsub_<mode>"): Rename from > "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and > use > FMAMODE mode iterator. > (define_insn > "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from > "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from > "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"): > Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and > use VF_AVX512VL mode iterator. > (define_insn "*fma_fmaddsub_<mode>"): Rename from > "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and > remove subst usage. > (define_insn > "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from > "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename > from > "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "*fma_fmsubadd_<mode>"): Rename from > "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and > remove usage of subst. > (define_insn > "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"): > Use VF_SF_AVX512VL mode iterator. > (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from > "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode > iterator. > (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename > from > "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode > iterator. > > Is it for trunk?
OK. Thanks, Uros.