[X86] Use separate builtins for fma4 scalar intrinsics. Use negations to remove some...
authorCraig Topper <craig.topper@intel.com>
Sat, 25 Nov 2017 19:32:12 +0000 (19:32 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 25 Nov 2017 19:32:12 +0000 (19:32 +0000)
commit9e032ed55aae8cfd0e72b3b73dbf2f0402a27435
treeb318c3ab030a8f02bafd04921720234292180550
parente485631cd148e18701254634a3003e6bb5797eb2
[X86] Use separate builtins for fma4 scalar intrinsics. Use negations to remove some of the scalar fma3 builtins.

fma4 instructions zero the upper bits of the xmm register. fma3 instructions leave the bits unmodified. This requires separate builtins for the different semantics.

While we're cleaning up the scalar builtins this also removes the fma3 fmsub/fnmadd/fnmsub builtins by using negates in the header file.

llvm-svn: 318985
clang/include/clang/Basic/BuiltinsX86.def
clang/lib/Headers/fma4intrin.h
clang/lib/Headers/fmaintrin.h
clang/test/CodeGen/fma-builtins.c
clang/test/CodeGen/fma4-builtins.c