Hi Uros and HJ, I have updated the patch according to your remarks as attached. Ok for trunk?
Thanks Wei gcc/ 2018-11-2 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 types and remove useless ones. *config/i386/i386-builtin.def: Update builtin definitions. *config/i386/i386.c: Handle new builtin types and remove useless ones. *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-11-2 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. Uros Bizjak <ubiz...@gmail.com> 于2018年11月2日周五 上午1:27写道: > > 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.
update-vfixupimm-v2.diff
Description: Binary data