- Sep 09, 2016
-
-
Albert Gutowski authored
Reviewers: thakis, Prazek, compnerd, rnk Subscribers: majnemer, cfe-commits Differential Revision: https://reviews.llvm.org/D24311 llvm-svn: 280997
-
- Sep 07, 2016
-
-
Reid Kleckner authored
Summary: There was no definition for __nop function - added inline assembly. Patch by Albert Gutowski! Reviewers: rnk, thakis Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24286 llvm-svn: 280826
-
- Aug 16, 2016
-
-
Reid Kleckner authored
This reverts commit r278783. It breaks usage of _xgetbv on Windows. llvm-svn: 278814
-
Marina Yatsina authored
commit on behalf of guyblank Differential Revision: https://reviews.llvm.org/D21959 llvm-svn: 278783
-
- Aug 06, 2016
-
-
Saleem Abdulrasool authored
This fixes compiling with headers from the Windows SDK for ARM, where the YieldProcessor function (in winnt.h) refers to _ARM_BARRIER_ISHST. The actual MSVC armintr.h contains a lot more definitions, but this is enough to build code that uses the Windows SDK but doesn't use ARM intrinsics directly. An alternative would to just keep the addition to intrin.h (to include armintr.h), but not actually ship armintr.h, instead having clang's intrin.h include armintr.h from MSVC's include directory. (That one works fine with clang, at least for building code that uses the Windows SDK.) Patch by Martin Storsjö! llvm-svn: 277928
-
- Jun 28, 2016
-
-
David Majnemer authored
This fixes PR28326. llvm-svn: 273986
-
- Jun 14, 2016
-
-
Hans Wennborg authored
llvm-svn: 272702
-
Nico Weber authored
llvm-svn: 272701
-
- May 27, 2016
-
-
David Majnemer authored
No functional change is intended. llvm-svn: 270952
-
- Feb 20, 2016
-
-
David Majnemer authored
This fixes PR26675. llvm-svn: 261388
-
- Oct 14, 2015
-
-
Hans Wennborg authored
llvm-svn: 250301
-
- Oct 13, 2015
-
-
Amjad Aboud authored
Add intrinsics for the XSAVE instructions (XSAVE/XSAVE64/XRSTOR/XRSTOR64) XSAVEOPT instructions (XSAVEOPT/XSAVEOPT64) XSAVEC instructions (XSAVEC/XSAVEC64) XSAVES instructions (XSAVES/XSAVES64/XRSTORS/XRSTORS64) Differential Revision: http://reviews.llvm.org/D13014 llvm-svn: 250158
-
- Sep 22, 2015
-
-
Nico Weber authored
Before, clang's internal assembler would reject the inline asm in clang's Intrin.h. To make sure this doesn't happen for other Intrin.h functions using __asm__ blocks, add 32-bit and 64-bit codegen tests for Intrin.h. Sadly, these tests discovered that __readcr3 and __writecr3 have bad implementations in 64-bit builds. This will have to be fixed in a follow-up. llvm-svn: 248234
-
- Aug 25, 2015
-
-
Simon Pilgrim authored
As discussed in PR23648 - the intrinsics _m_from_int, _m_to_int and _m_prefetch are defined in mmintrin.h and prfchwintrin.h so we don't need to in Intrin.h Added tests for _m_from_int and _m_to_int D11338 already added a test for _m_prefetch Differential Revision: http://reviews.llvm.org/D12272 llvm-svn: 245975
-
Michael Kuperstein authored
llvm-svn: 245929
-
Michael Kuperstein authored
_rotl, _rotwl and _lrotl (and their right-shift counterparts) are official x86 intrinsics, and should be supported regardless of environment. This is in contrast to _rotl8, _rotl16, and _rotl64 which are MS-specific. Note that the MS documentation for _lrotl is different from the Intel documentation. Intel explicitly documents it as a 64-bit rotate, while for MS, since sizeof(unsigned long) for MSVC is always 4, a 32-bit rotate is implied. Differential Revision: http://reviews.llvm.org/D12271 llvm-svn: 245923
-
- Jul 16, 2015
-
-
David Majnemer authored
_ReadBarrier, _WriteBarrier, and _ReadWriteBarrier are essentially memory barriers of one form or another. Model these as atomic_signal_fence(ATOMIC_SEQ_CST). __faststorefence is a curious intrinsic. It's single purpose seems to an alternative to mfence when that instruction is slow. However, mfence is not always slow and is, in general, preferable to a 'lock or' sequence on certain CPUs. Give the compiler freedom to select the best sequence to get a fence. llvm-svn: 242378
-
- Jul 14, 2015
-
-
David Majnemer authored
No functionality change is intended. llvm-svn: 242087
-
David Majnemer authored
No functionality change intended. llvm-svn: 242086
-
- Jul 13, 2015
-
-
David Majnemer authored
The program is permitted to have stuff like '#define x' in it so avoid using identifiers not reserved for the implementation. llvm-svn: 242010
-
David Majnemer authored
Three things: - The atomic intrinsics mandate memory barriers, let's start emitting some. - We don't need to manually create RMW operations, we can just do __atomic_fetch_foo instead of performing __atomic_foo_fetch and undoing foo. - Don't use inline assembly, we don't need it for these intrinsics. This fixes PR24101. llvm-svn: 242009
-
- Jun 30, 2015
-
-
Michael Kuperstein authored
llvm-svn: 241065
-
Michael Kuperstein authored
Add intrinsics for the FXSR instructions (FXSAVE/FXSAVE64/FXRSTOR/FXRSTOR64) These were previously declared in Intrin.h for MSVC compatibility, but now that we have them implemented, these declarations can be removed. llvm-svn: 241053
-
- Jun 16, 2015
-
-
Eric Christopher authored
Saves some typing and if someone wants to change them it makes it much easier. llvm-svn: 239782
-
- Jun 05, 2015
-
-
David Majnemer authored
This change was unrelated to r239170. llvm-svn: 239176
-
David Majnemer authored
We would crash in the DeclPrinter trying to pretty-print the static_assert message. C++1z-style assertions don't have a message so we would crash. This fixes PR23756. llvm-svn: 239170
-
- Feb 04, 2015
-
-
David Majnemer authored
Instead of using 'unavailable', use '__unavailable__' llvm-svn: 228087
-
- Jan 28, 2015
-
-
Hans Wennborg authored
Users expect to be able to use this with _xgetbv. llvm-svn: 227270
-
- Dec 04, 2014
-
-
Reid Kleckner authored
Use the same approach as _umul128, but just return the high half. llvm-svn: 223316
-
- Dec 03, 2014
-
-
David Majnemer authored
llvm-svn: 223179
-
David Majnemer authored
llvm-svn: 223176
-
David Majnemer authored
Implement _umul128; it provides the high and low halves of a 128-bit multiply. We can simply use our __int128 arithmetic to implement this, we generate great code for it: movq %rdx, %rax mulq %rcx movq %rdx, (%r8) retq Differential Revision: http://reviews.llvm.org/D6486 llvm-svn: 223175
-
- Nov 03, 2014
-
-
Craig Topper authored
llvm-svn: 221130
-
Craig Topper authored
Remove definitions from Intrin.h that already exist in one of the other x86 intrinsic headers. Add a run line with Broadwell as the cpu type to ms-intrin.cpp test to catch some of these in the future. llvm-svn: 221127
-
- Oct 29, 2014
-
-
Saleem Abdulrasool authored
The Windows NT SDK uses __readfsdword and declares it as a compiler provided builtin (#pragma intrinsic(__readfsword). Because intrin.h is not referenced by winnt.h, it is not possible to provide an out-of-line definition for the intrinsic. Provide a proper compiler builtin definition. llvm-svn: 220859
-
- Jul 08, 2014
-
-
Nico Weber authored
Also provide _setjmpex(). r200243 put in _setjmp() and _setjmpex() behind a comment since jmp_buf wasn't available. r200344 added jmp_buf and put in _setjmp(), but missed _setjmpex(). llvm-svn: 212557
-
Saleem Abdulrasool authored
Protect MMX specific declarations under a __MMX__ guard. This header can be included on non-x86 architectures (e.g. ARM) which do not support the MMX ISA. Use the preprocessor to prevent these declarations from being processed. llvm-svn: 212512
-
- Jun 25, 2014
-
-
Saleem Abdulrasool authored
Conditionally include x86intrin.h if we are building for x86 or x86_64. Conditionalise definition of inline assembly routines which use x86 or x86_64 inline assembly. This is needed as clang can target Windows on ARM where these definitions may be included into user code. llvm-svn: 211716
-
- Jun 18, 2014
-
-
Saleem Abdulrasool authored
Add support for _InterlockedCompareExchangePointer, _InterlockExchangePointer, _InterlockExchange. These are available as a compiler intrinsic on ARM and x86. These are used directly by the Windows SDK headers without use of the intrin header. llvm-svn: 211216
-
- May 13, 2014
-
-
Timur Iskhodzhanov authored
llvm-svn: 208699
-