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. Jakub