This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [patch][i386, AVX] Adding missing mask[z]_scalef_round_s[d,s] intrinsics


Hi,

Attachment got lost by accident. Attaching it again.

Thanks,
Olga

-----Original Message-----
From: Makhotina, Olga 
Sent: Tuesday, November 14, 2017 10:49 AM
To: gcc-patches@gcc.gnu.org
Cc: Uros Bizjak <ubizjak@gmail.com>; Kirill Yukhin <kirill.yukhin@gmail.com>; Makhotina, Olga <olga.makhotina@intel.com>; Peryt, Sebastian <sebastian.peryt@intel.com>
Subject: [patch][i386, AVX] Adding missing mask[z]_scalef_round_s[d,s] intrinsics

Hi,

This patch adds missing intrinsics for _mm_mask[z]_scalef_round_[sd,ss].

14.11.2017  Olga Makhotina  <olga.makhotina@intel.com>

gcc/
	* config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd,
	_mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, 
	_mm_maskz_scalef_round_ss): New intrinsics.
	(__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix.
	* config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round,
	__builtin_ia32_scalefss_round): Remove.
	(__builtin_ia32_scalefsd_mask_round,
	__builtin_ia32_scalefss_mask_round): New intrinsics.
	* config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ...
	(vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this.
	((match_operand:VF_128 2 "<round_nimm_predicate>" 
	"<round_constraint>")): Changed to ...
	((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" 
	"<round_scalar_constraint>")): ... this.
	("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|
	%0, %1, %2<round_op3>}"): Changed to ...
	("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, 
	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, 
	%2<round_scalar_mask_op3>}"): ... this.
	* config/i386/subst.md (round_scalar_nimm_predicate): New.

14.11.2017  Olga Makhotina  <olga.makhotina@intel.com>

gcc/testsuite/
	* gcc.target/i386/avx512f-vscalefsd-1.c (_mm_mask_scalef_round_sd,
	_mm_maskz_scalef_round_sd): Test new intrinsics.
	* gcc.target/i386/avx512f-vscalefsd-2.c (_mm_scalef_round_sd,
	_mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd): Test new intrinsics.
	* gcc.target/i386/avx512f-vscalefss-1.c (_mm_mask_scalef_round_ss,
	_mm_maskz_scalef_round_ss): Test new intrinsics.
	* gcc.target/i386/avx512f-vscalefss-2.c (_mm_scalef_round_ss,
	_mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): Test new intrinsics.
	* gcc.target/i386/avx-1.c (__builtin_ia32_scalefsd_round,
	__builtin_ia32_scalefss_round): Remove builtin.
	(__builtin_ia32_scalefsd_mask_round,
	__builtin_ia32_scalefss_mask_round): Test new builtin.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

Is it ok for trunk?
 
Thanks,
Olga

Attachment: 0001-mask-z-_scalef_round_s-s-d.patch
Description: 0001-mask-z-_scalef_round_s-s-d.patch


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]