[PATCH i386 AVX512] [31/n] Update float unspec namely storeu,rcp14,rsqrt14,scalef,getexp,fixupimm,rndscale,getmant.

Uros Bizjak ubizjak@gmail.com
Sat Aug 30 08:14:00 GMT 2014


On Fri, Aug 29, 2014 at 3:23 PM, Kirill Yukhin <kirill.yukhin@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.



More information about the Gcc-patches mailing list