| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232055 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219188 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206289 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
see discussion here:
http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00740.html
* config/i386/i386.c (ix86_pragma_target_parse): Restore target
when current target options does not apply.
* config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
* config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
* config/i386/bmiintrin.h: Pass appropriate target attributes to header.
* config/i386/mmintrin.h: Ditto.
* config/i386/nmmintrin.h: Ditto.
* config/i386/avx2intrin.h: Ditto.
* config/i386/fxsrintrin.h: Ditto.
* config/i386/tbmintrin.h: Ditto.
* config/i386/xsaveintrin.h: Ditto.
* config/i386/f16cintrin.h: Ditto.
* config/i386/xtestintrin.h: Ditto.
* config/i386/xsaveoptintrin.h: Ditto.
* config/i386/bmi2intrin.h: Ditto.
* config/i386/lzcntintrin.h: Ditto.
* config/i386/smmintrin.h: Ditto.
* config/i386/wmmintrin.h: Ditto.
* config/i386/x86intrin.h: Remove all header include guards.
* config/i386/prfchwintrin.h: Ditto.
* config/i386/pmmintrin.h: Ditto.
* config/i386/tmmintrin.h: Ditto.
* config/i386/xmmintrin.h: Ditto.
* config/i386/popcntintrin.h: Ditto.
* config/i386/rdseedintrin.h: Ditto.
* config/i386/ammintrin.h: Ditto.
* config/i386/emmintrin.h: Ditto.
* config/i386/immintrin.h: Remove all header include guards.
* config/i386/fma4intrin.h: Ditto.
* config/i386/lwpintrin.h: Ditto.
* config/i386/xopintrin.h: Ditto.
* config/i386/ia32intrin.h: Ditto.
* config/i386/avxintrin.h: Ditto.
* config/i386/rtmintrin.h: Ditto.
* config/i386/fmaintrin.h: Ditto.
* config/i386/mm3dnow.h: Ditto.
* testsuite/gcc.target/i386/intrinsics_1.c: New test.
* testsuite/gcc.target/i386/intrinsics_2.c: Ditto.
* testsuite/gcc.target/i386/intrinsics_3.c: Ditto.
* testsuite/gcc.target/i386/intrinsics_4.c: Ditto.
* testsuite/gcc.target/i386/intrinsics_5.c: Ditto.
* testsuite/gcc.target/i386/intrinsics_6.c: Ditto.
* testsuite/gcc.target/i386/avx-1.c: Provide macros for builtins
needing immediate arguments in f16cintrin.h and rtmintrin.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200349 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145841 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
* config/i386/cpuid.h (bit_AES): New.
(bit_PCLMUL): Likewise.
* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
(override_options): Handle PTA_AES and PTA_PCLMUL. Enable
SSE2 if AES or PCLMUL is enabled.
(ix86_builtins): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
__builtin_ia32_aeskeygenassist128 and
__builtin_ia32_pclmulqdq128.
* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
* config/i386/i386.h (TARGET_AES): New.
(TARGET_PCLMUL): Likewise.
(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
* config/i386/i386.md (UNSPEC_AESENC): New.
(UNSPEC_AESENCLAST): Likewise.
(UNSPEC_AESDEC): Likewise.
(UNSPEC_AESDECLAST): Likewise.
(UNSPEC_AESIMC): Likewise.
(UNSPEC_AESKEYGENASSIST): Likewise.
(UNSPEC_PCLMULQDQ): Likewise.
* config/i386/i386.opt (maes): New.
(mpclmul): Likewise.
* config/i386/sse.md (aesenc): New pattern.
(aesenclast): Likewise.
(aesdec): Likewise.
(aesdeclast): Likewise.
(aesimc): Likewise.
(aeskeygenassist): Likewise.
(pclmulqdq): Likewise.
* config/i386/wmmintrin.h: New.
* doc/extend.texi: Document AES and PCLMUL built-in function.
* doc/invoke.texi: Document -maes and -mpclmul.
gcc/testsuite/
2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
* g++.dg/other/i386-2.C: Include <wmmintrin.h>.
* g++.dg/other/i386-3.C: Likewise.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.
* gcc.target/i386/aes-check.h: New.
* gcc.target/i386/aesdec.c: Likewise.
* gcc.target/i386/aesdeclast.c: Likewise.
* gcc.target/i386/aesenc.c: Likewise.
* gcc.target/i386/aesenclast.c: Likewise.
* gcc.target/i386/aesimc.c: Likewise.
* gcc.target/i386/aeskeygenassist.c: Likewise.
* gcc.target/i386/pclmulqdq.c: Likewise.
* gcc.target/i386/pclmul-check.h: Likewise.
* gcc.target/i386/i386.exp (check_effective_target_aes): New.
(check_effective_target_pclmul): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133902 138bc75d-0d04-0410-961f-82ee72b054a4
|