Changelog: 2011-08-25 Ilya Tocar * config/i386/fmaintrin.h: New. * config.gcc: Add fmaintrin.h. * config/i386/i386.c * (IX86_BUILTIN_VFMADDSS3): New. (IX86_BUILTIN_VFMADDSD3): Likewise. * config/i386/sse.md (fmai_vmfmadd_): New. (*fmai_fmadd_): Likewise. (*fmai_fmsub_): Likewise. (*fmai_fnmadd_): Likewise. (*fmai_fnmsub_): Likewise. * config/i386/x86intrin.h: Add fmaintrin.h. And Changelog for testsuite: 2011-08-25 Ilya Tocar * 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. * gcc.target/i386/sse-13.c: Likewise. * g++.dg/other/i386-2.c: Likewise. * g++.dg/other/i386-2.c: Likewise. 2011/8/24 Uros Bizjak : > On Wed, Aug 24, 2011 at 2:39 PM, Ilya Tocar wrote: > >>>>> Also, why is fmaintrin.h including immintrin.h?  You can't include fmaintrin.h >>>>> directly and x86intrin.h has already included it before including fmaintrin.h. >>>> Makes sense. Removed it. >>> >>> Do we need to add -mfma to gcc.target/i386/sse-{12,13,14,22,23}.c and >>> g++.dg/other/i386-{2,3}.C to activate and test new intrinsics? >>> >>> Uros. >>> >> I think yes, otherwise fmaintrin.h won't be included and intrinsics >> won't be tested. >> Added -mfma to those tests. > > The patch is OK for mainline with the proper ChangeLog. > > Thanks, > Uros. >