[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