On Fri, Aug 29, 2014 at 3:23 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hello, > Patch in the bottom updates few UNSPEC insn patterns w/ new > mode iterator. Additionally names were slightly changed. > > Bootstrapped. > AVX-512* tests on top of patch-set all pass > under simulator. > > Is it ok for trunk? > > gcc/ > * config/i386/i386.c > (avx512f_getmantv2df_round): Rename to ... > (avx512f_vgetmantv2df_round): this. > (avx512f_getmantv4sf_round): Rename to ... > (avx512f_vgetmantv4sf_round): this. > (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask, > avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask, > avx512vl_getmantv2df_mask. > (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round, > avx512f_vgetmantv4sf_round. > * config/i386/sse.md > (define_insn "avx512f_storeu<ssemodesuffix>512_mask"): Delete. > (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"): > New. > (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL. > (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto. > (define_insn "avx512f_scalef<mode><mask_name><round_name>"): Delete. > (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): New. > (define_insn "avx512f_getexp<mode><mask_name><round_saeonly_name>"): > Delete. > (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"): > New. > (define_expand > "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Delete. > (define_expand > "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): New. > (define_insn > "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Delete. > (define_insn > "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): New. > (define_insn "avx512f_fixupimm<mode>_mask<round_saeonly_name>"): > Delete. > (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): New. > (define_insn "avx512f_rndscale<mode><mask_name><round_saeonly_name>"): > Delete. > (define_insn > "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): New. > (define_insn "avx512f_getmant<mode><mask_name><round_saeonly_name>"): > Delete. > (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"): > New. > (define_insn "avx512f_getmant<mode><round_saeonly_name>"): Rename to > ... > (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): this.
Please change ChangeLog entries to mention that these patterns are *renamed*, not *deleted*. So, something like: ("new pattern"): Rename from "old pattern" and use VF_AVX512VL mode iterator. Otherwise, nice patch that actually shows the power of mode iterators and mode attributes! OK with updated ChangeLog. Thanks, Uros.