[PATCH] Remove redundant builtins for avx512f scalar instructions.

Hongyu Wang wwwhhhyyy333@gmail.com
Wed Jan 15 02:55:00 GMT 2020


For sure.

Jeff Law <law@redhat.com> 于2020年1月15日周三 上午4:48写道:
>
> On Tue, 2019-12-24 at 13:31 +0800, Hongyu Wang wrote:
> > Hi:
> >   For avx512f scalar instructions, current builtin function like
> > __builtin_ia32_*{sd,ss}_round can be replaced by
> > __builtin_ia32_*{sd,ss}_mask_round with mask parameter set to -1. This
> > patch did the replacement and remove the corresponding redundant
> > builtins.
> >
> >   Bootstrap is ok, make-check ok for i386 target.
> >   Ok for trunk?
> >
> > Changelog
> >
> > gcc/
> >         * config/i386/avx512fintrin.h
> >         (_mm_add_round_sd, _mm_add_round_ss): Use
> >          __builtin_ia32_adds?_mask_round builtins instead of
> >         __builtin_ia32_adds?_round.
> >         (_mm_sub_round_sd, _mm_sub_round_ss,
> >         _mm_mul_round_sd, _mm_mul_round_ss,
> >         _mm_div_round_sd, _mm_div_round_ss,
> >         _mm_getexp_sd, _mm_getexp_ss,
> >         _mm_getexp_round_sd, _mm_getexp_round_ss,
> >         _mm_getmant_sd, _mm_getmant_ss,
> >         _mm_getmant_round_sd, _mm_getmant_round_ss,
> >         _mm_max_round_sd, _mm_max_round_ss,
> >         _mm_min_round_sd, _mm_min_round_ss,
> >         _mm_fmadd_round_sd, _mm_fmadd_round_ss,
> >         _mm_fmsub_round_sd, _mm_fmsub_round_ss,
> >         _mm_fnmadd_round_sd, _mm_fnmadd_round_ss,
> >         _mm_fnmsub_round_sd, _mm_fnmsub_round_ss): Likewise.
> >         * config/i386/i386-builtin.def
> >         (__builtin_ia32_addsd_round, __builtin_ia32_addss_round,
> >         __builtin_ia32_subsd_round, __builtin_ia32_subss_round,
> >         __builtin_ia32_mulsd_round, __builtin_ia32_mulss_round,
> >         __builtin_ia32_divsd_round, __builtin_ia32_divss_round,
> >         __builtin_ia32_getexpsd128_round, __builtin_ia32_getexpss128_round,
> >         __builtin_ia32_getmantsd_round, __builtin_ia32_getmantss_round,
> >         __builtin_ia32_maxsd_round, __builtin_ia32_maxss_round,
> >         __builtin_ia32_minsd_round, __builtin_ia32_minss_round,
> >         __builtin_ia32_vfmaddsd3_round,
> >         __builtin_ia32_vfmaddss3_round): Remove.
> >         * config/i386/i386-expand.c
> >         (ix86_expand_round_builtin): Remove corresponding case.
> This doesn't really look like a bugfix to me.  Can it wait for gcc-11?
>
> jeff
> >
>



More information about the Gcc-patches mailing list