OSDN Git Service

Add FMA intrinsics and testcases.
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Aug 2011 14:02:53 +0000 (14:02 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Aug 2011 14:02:53 +0000 (14:02 +0000)
commit65463cb8b65ad4f577a9b66297b7803ec53c4321
tree175e06db22b216944eb8ef409716322c278cd349
parent0f3b1f498dad81f17b5421ccd60854d87d04b9dd
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178311 138bc75d-0d04-0410-961f-82ee72b054a4
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