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]

Missing REDUCE[SD,SS] intrinsics


Hi,

This patch written by Olga Makhotina adds missing intrinsics for REDUCE[SD,SS].

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

gcc/
	* config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
	_mm_maskz_reduce_sd, _mm_mask_reduce_ss, 
	_mm_maskz_reduce_ss): New intrinsics.
	* config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
	__builtin_ia32_reducess_mask): New builtin.
	(__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
	* config/i386/sse.md (reduces<mode>): Renamed to ...
	(reduces<mode><mask_scalar_name>): ... this.
	(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed to ...
	(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
	%0<mask_scalar_operand4>, %1, %2, %3}): ... this.

gcc/testsuite/
	* gcc.target/i386/avx512dq-vreducesd-1.c (_mm_mask_reduce_sd,
	_mm_maskz_reduce_sd): Test new intrinsics.
	* gcc.target/i386/avx512dq-vreducesd-2.c: New.
	* gcc.target/i386/avx512dq-vreducess-1.c (_mm_mask_reduce_ss,
	_mm_maskz_reduce_ss): Test new intrinsics.
	* gcc.target/i386/avx512dq-vreducess-2.c: New.
	* gcc.target/i386/avx-1.c (__builtin_ia32_reducesd,
	__builtin_ia32_reducess): Remove builtin.
	(__builtin_ia32_reducesd_mask,
	__builtin_ia32_reducess_mask): Test new builtin.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

Is it ok for trunk?
 
Thanks,
Sebastian

Attachment: 0001-reduce_ss-reduce_sd.patch
Description: 0001-reduce_ss-reduce_sd.patch


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