Add FMA intrinsics and testcases.
authorIlya Tocar <ilya.tocar@intel.com>
Tue, 30 Aug 2011 14:02:53 +0000 (14:02 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Tue, 30 Aug 2011 14:02:53 +0000 (07:02 -0700)
commit2ddd46d69b09a88fb82832285b69090fa08bddc2
tree175e06db22b216944eb8ef409716322c278cd349
parentc199ccf75867fa7287570ff1ec19ef76cc9d5ea6
Add FMA intrinsics and testcases.

gcc/

2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>

* config/i386/fmaintrin.h: New.
* config.gcc: Add fmaintrin.h.
* config/i386/i386.c
(enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
<IX86_BUILTIN_VFMADDSD3>: Likewise.
* config/i386/sse.md (fmai_vmfmadd_<mode>): New.
(*fmai_fmadd_<mode>): Likewise.
(*fmai_fmsub_<mode>): Likewise.
(*fmai_fnmadd_<mode>): Likewise.
(*fmai_fnmsub_<mode>): Likewise.
* config/i386/immintrin.h: Add fmaintrin.h.

gcc/testsuite/

2011-08-30  Ilya Tocar <ilya.tocar@intel.com>

* gcc.target/i386/fma-check.h: New.
* gcc.target/i386/fma-256-fmaddXX.c: New testcase.
* gcc.target/i386/fma-256-fmaddsubXX.c: Likewise.
* gcc.target/i386/fma-256-fmsubXX.c: Likewise.
* gcc.target/i386/fma-256-fmsubaddXX.c: Likewise.
* gcc.target/i386/fma-256-fnmaddXX.c: Likewise.
* gcc.target/i386/fma-256-fnmsubXX.c: Likewise.
* gcc.target/i386/fma-fmaddXX.c: Likewise.
* gcc.target/i386/fma-fmaddsubXX.c: Likewise.
* gcc.target/i386/fma-fmsubXX.c: Likewise.
* gcc.target/i386/fma-fmsubaddXX.c: Likewise.
* gcc.target/i386/fma-fnmaddXX.c: Likewise.
* gcc.target/i386/fma-fnmsubXX.c: Likewise.
* gcc.target/i386/fma-compile.c: Likewise.
* gcc.target/i386/i386.exp (check_effective_target_fma): New.
* gcc.target/i386/sse-12.c: Add -mfma.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.
* gcc.target/i386/sse-22.c: Likewise.
* gcc.target/i386/sse-23.c: Likewise.
* g++.dg/other/i386-2.C: Likewise.
* g++.dg/other/i386-3.C: Likewise.

From-SVN: r178311
29 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/fmaintrin.h [new file with mode: 0644]
gcc/config/i386/i386.c
gcc/config/i386/immintrin.h
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/i386-2.C
gcc/testsuite/g++.dg/other/i386-3.C
gcc/testsuite/gcc.target/i386/fma-256-fmaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-256-fmaddsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-256-fmsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-256-fmsubaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-256-fnmaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-256-fnmsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-check.h [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-compile.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fmaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fmaddsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fmsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fmsubaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fnmaddXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/fma-fnmsubXX.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/i386.exp
gcc/testsuite/gcc.target/i386/sse-12.c
gcc/testsuite/gcc.target/i386/sse-13.c
gcc/testsuite/gcc.target/i386/sse-14.c
gcc/testsuite/gcc.target/i386/sse-22.c
gcc/testsuite/gcc.target/i386/sse-23.c