summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/fmaintrin.h
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Use separate builtins for fma4 scalar intrinsics. Use negations to ↵Craig Topper2017-11-251-6/+6
| | | | | | | | | | 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
* [X86] Reduce the number of FMA builtins needed by the frontend by adding ↵Craig Topper2017-11-101-16/+16
| | | | | | | | | | | | negates to operands of the fmadd and fmaddsub builtins. The backend should be able to combine the negates to create fmsub, fnmadd, and fnmsub. faddsub converting to fsubadd still needs work I think, but should be very doable. This matches what we already do for the masked builtins. This only covers the packed builtins. Scalar builtins will be done after FMA4 is fixed. llvm-svn: 317873
* [X86] Rename the VEX scalar fma builtins to end with a '3' to match gccCraig Topper2017-11-091-8/+8
| | | | | | | | I think we need to use different builtins for the FMA4 instructions since those instructions zero the upper bits and FMA3 instructions pass the bits through. So this moves the existing builtins to be the FMA3 versions. New versions will be added for FMA4. llvm-svn: 317766
* [X86] Add typecasts to remove most assumptions about what __m128i/__m256i is ↵Craig Topper2016-05-161-32/+32
| | | | | | defined as. Add similar typecasts for the fp types as well. llvm-svn: 269632
* [X86] Rename DEFAULT_FN_ATTR macro to __DEFAULT_FN_ATTRMichael Kuperstein2015-06-301-34/+34
| | | | llvm-svn: 241065
* Update the intel intrinsic headers to use the target attribute support.Eric Christopher2015-06-171-7/+1
| | | | | | | | | | | | | | | | | | | This involved removing the conditional inclusion and replacing them with target attributes matching the original conditional inclusion and checks. The testcase update removes the macro checks for each file and replaces them with usage of the __target__ attribute, e.g.: int __attribute__((__target__(("sse3")))) foo(int a) { _mm_mwait(0, 0); return 4; } This usage does require the enclosing function have the requisite __target__ attribute for inlining and code generation - also for any macro intrinsic uses in the enclosing function. There's no change for existing uses of the intrinsic headers. llvm-svn: 239883
* Use a define for per-file function attributes for the Intel intrinsic headers.Eric Christopher2015-06-171-32/+37
| | | | | | | This is a precursor to changing them to use the new target attribute code. llvm-svn: 239882
* Add fma3 intrinsic header file.Craig Topper2012-06-041-0/+229
llvm-svn: 157913
OpenPOWER on IntegriCloud