On 6/3/19 5:06 AM, Jakub Jelinek wrote: > On Mon, Jun 03, 2019 at 06:01:40PM +0800, Hongtao Liu wrote: >> The following patch adds forgotten avx512f fpclass instrinsics for >> masked scalar operations. >> >> Bootstrapped/regtested on x86_64-linux and i686-linux (on skylake-avx512), >> ok for trunk? >> >> Changelog: >> >> gcc/ >> +2019-03-24 Hongtao Liu <hongtao....@intel.com> >> + >> + PR target/89803 >> + * config/i386/avx512dqintrin.h >> + (_mm_mask_fpclass_ss_mask,_mm_mask_fpclass_sd_mask): >> + New intrinsics. >> + * config/i386/i386-builtin.def >> + (__builtin_ia32_fpclassss_mask, _builtin_ia32_fpclasssd_mask): >> + New builtins. >> + * config/i386/sse.md >> + (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>): >> + Modified with mask. > > Given that the __builtin_ia32_fpclasss[sd] builtins are AVX512DQ only, > wouldn't it make more sense to remove the __builtin_ia32_fpclasss[sd] > builtins rather than keep them, adjust _mm_mask_fpclass_ss/_mm_mask_fpclass_sd > so that they use these new builtins instead of old and pass in -1 and > make sure we emit the same code as before for those intrinsics? > > We have way too many ia32 builtins. Can't argue with the too many ia32 builtins. If we easily collapse things the way you suggest, it'd be better.
jeff