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 >