This is the mail archive of the gcc-cvs@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]

r156778 - in /trunk/gcc: ChangeLog config/i386/...


Author: spop
Date: Mon Feb 15 17:21:21 2010
New Revision: 156778

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156778
Log:
Add support for vpermil2p* in XOP.

2010-02-13  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386-builtin-types.def
	(V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
	(V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
	(V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
	(V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
	* config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
	IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
	IX86_BUILTIN_VPERMIL2PS256.
	(MULTI_ARG_4_DF2_DI_I): Defined.
	(MULTI_ARG_4_DF2_DI_I1): Defined.
	(MULTI_ARG_4_SF2_SI_I): Defined.
	(MULTI_ARG_4_SF2_SI_I1): Defined.
	(bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
	__builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
	__builtin_ia32_vpermil2ps256.
	(ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
	MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
	MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
	(ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
	MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
	MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
	CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
	CODE_FOR_xop_vpermil2v8sf3.
	* config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
	* config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
	* config/i386/xopintrin.h (_mm_permute2_pd): New.
	(_mm256_permute2_pd): New.
	(_mm_permute2_ps): New.
	(_mm256_permute2_ps): New.

	* gcc.target/i386/sse-14.c: Add tests for _mm_permute2_pd,
	_mm256_permute2_pd, _mm_permute2_ps, and _mm256_permute2_ps.
	* gcc.target/i386/xop-vpermil2pd-1.c: New.
	* gcc.target/i386/xop-vpermil2pd-256-1.c: New.
	* gcc.target/i386/xop-vpermil2ps-1.c: New.
	* gcc.target/i386/xop-vpermil2ps-256-1.c: New.

Added:
    trunk/gcc/testsuite/gcc.target/i386/xop-vpermil2pd-1.c
    trunk/gcc/testsuite/gcc.target/i386/xop-vpermil2pd-256-1.c
    trunk/gcc/testsuite/gcc.target/i386/xop-vpermil2ps-1.c
    trunk/gcc/testsuite/gcc.target/i386/xop-vpermil2ps-256-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386-builtin-types.def
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/config/i386/sse.md
    trunk/gcc/config/i386/xopintrin.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/i386/sse-14.c


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