On Tue, Oct 30, 2018 at 10:12 AM Wei Xiao <wei.william.x...@gmail.com> wrote: > > Hi, > > The attached patch updates VFIXUPIMM* Intrinsics to align with the > latest Intel® 64 and IA-32 Architectures Software Developer’s Manual > (SDM). > Tested with GCC regression test on x86, no regression.
A couple of remarks: -_mm512_fixupimm_round_pd (__m512d __A, __m512d __B, __m512i __C, +_mm512_fixupimm_round_pd (__m512d __B, __m512i __C, _mm512_mask_fixupimm_round_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512i __C, const int __imm, const int __R) Some kind of the convention in avx512fintrin.h is that arguments are named like this: [ __m512. __W,] __mmask. __U, __m512x __A, __m512x __B, ..., const int _imm, const int __R]. Can we please keep the same approach here? I' mostly concerned that argument names don't start with __A. -BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_fixupimmv4df_mask, "__builtin_ia32_fixupimmpd256_mask", IX86_BUILTIN_FIXUPIMMPD256_MASK, UNKNOWN, (int) V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI) ... You are removing the only users of e.g. V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI (and other definitions). If there are no users left, can you also remove the relevant definitions? > Is it ok? Please repost the patch with above remarks addressed. These builtins are mostly Intel affair, so in the hope that extensive testsuite in this area catches all issues, I will just just rubber-stamp the updated patch OK and leave the final approval to HJ. Uros. > Thanks > Wei > > gcc/ > 2018-10-30 Wei Xiao <wei3.x...@intel.com> > > *config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. > (_mm512_fixupimm_round_pd): Update parameters and builtin. > (_mm512_maskz_fixupimm_round_pd): Ditto. > (_mm512_fixupimm_round_ps): Ditto. > (_mm512_maskz_fixupimm_round_ps): Ditto. > (_mm_fixupimm_round_sd): Ditto. > (_mm_maskz_fixupimm_round_sd): Ditto. > (_mm_fixupimm_round_ss): Ditto. > (_mm_maskz_fixupimm_round_ss): Ditto. > (_mm512_fixupimm_pd): Ditto. > (_mm512_maskz_fixupimm_pd): Ditto. > (_mm512_fixupimm_ps): Ditto. > (_mm512_maskz_fixupimm_ps): Ditto. > (_mm_fixupimm_sd): Ditto. > (_mm_maskz_fixupimm_sd): Ditto. > (_mm_fixupimm_ss): Ditto. > (_mm_maskz_fixupimm_ss): Ditto. > (_mm512_mask_fixupimm_round_pd): Update builtin. > (_mm512_mask_fixupimm_round_ps): Ditto. > (_mm_mask_fixupimm_round_sd): Ditto. > (_mm_mask_fixupimm_round_ss): Ditto. > (_mm512_mask_fixupimm_pd): Ditto. > (_mm512_mask_fixupimm_ps): Ditto. > (_mm_mask_fixupimm_sd): Ditto. > (_mm_mask_fixupimm_ss): Ditto. > *config/i386/avx512vlintrin.h: > (_mm256_fixupimm_pd): Update parameters and builtin. > (_mm256_maskz_fixupimm_pd): Ditto. > (_mm256_fixupimm_ps): Ditto. > (_mm256_maskz_fixupimm_ps): Ditto. > (_mm_fixupimm_pd): Ditto. > (_mm_maskz_fixupimm_pd): Ditto. > (_mm_fixupimm_ps): Ditto. > (_mm_maskz_fixupimm_ps): Ditto. > (_mm256_mask_fixupimm_pd): Update builtin. > (_mm256_mask_fixupimm_ps): Ditto. > (_mm_mask_fixupimm_pd): Ditto. > (_mm_mask_fixupimm_ps): Ditto. > *config/i386/i386-builtin-types.def: Add new builtin types. > *config/i386/i386-builtin.def: Update builtin definitions. > *config/i386/i386.c: Handle new builtin types. > *config/i386/sse.md: Update VFIXUPIMM* patterns. > (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. > (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. > (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. > (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. > (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. > (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. > *config/i386/subst.md: > (round_saeonly_sd_mask_operand4): Add new subst_attr. > (round_saeonly_sd_mask_op4): Ditto. > (round_saeonly_expand_operand5): Ditto. > (round_saeonly_expand): Update. > > gcc/testsuite > 2018-10-30 Wei Xiao <wei3.x...@intel.com> > > *gcc.target/i386/avx-1.c: Update tests for VFIXUPIMM* intrinsics. > *gcc.target/i386/avx512f-vfixupimmpd-1.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmpd-2.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmps-1.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmsd-1.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmss-1.c: Ditto. > *gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto. > *gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto. > *gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto. > *gcc.target/i386/sse-13.c: Ditto. > *gcc.target/i386/sse-14.c: Ditto. > *gcc.target/i386/sse-22.c: Ditto. > *gcc.target/i386/sse-23.c: Ditto. > *gcc.target/i386/testimm-10.c: Ditto. > *gcc.target/i386/testround-1.c: Ditto.