aboutsummaryrefslogtreecommitdiff
path: root/lib/Headers/xmmintrin.h
AgeCommit message (Collapse)Author
2013-03-27[lib/Headers] Break the module import cycle between _Builtin_intrinsics.sse ↵Argyrios Kyrtzidis
and _Builtin_intrinsics.sse2 Module "sse" implicitly exports module "sse2". This is bad because we also have module "sse2" export module "sse" (as intended) so we end up with a cycle in the module import graph: 1. sse2 -> (also imports) sse 2. sse -> (also imports) sse2 To eliminate the cycle remove 2.; importing module "sse2" will also import module "sse", but just importing module "sse" will not also import module "sse2". rdar://13240552 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178117 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-16PR14964: intrinsic headers using non-reserved identifiersDavid Blaikie
Several of the intrinsic headers were using plain non-reserved identifiers. C++11 17.6.4.3.2 [global.names] p1 reservers names containing a double begining with an underscore followed by an uppercase letter for any use. I think I got them all, but open to being corrected. For the most part I didn't bother updating function-like macro parameter names because I don't believe they're subject to any such collission - though some function-like macros already follow this convention (I didn't update them in part because the churn was more significant as several function-like macros use the double underscore prefixed version of the same name as a parameter in their implementation) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172666 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-26X86 SSE Intrinsics: update header for sqrt_ss, rsqrt_ss and rcp_ss.Manman Ren
There intrinsics pass through the upper FP values from the input. rdar://12558838 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166743 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23Fix a typo: _MM_FLUSH_ZERO_OFF has the wrong value. rdar://10716672Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148711 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-24Add AVX2 permute intrinsics. Also add parentheses on some macro arguments in ↵Craig Topper
other intrinsic headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147241 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-05Fix vector macros to correctly check argument types. <rdar://problem/10261670>Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143792 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Tweak *mmintrin.h so that they don't make any bad assumptions about ↵Eli Friedman
alignment (which probably has little effect in practice, but better to get it right). Make the load in _mm_loadh_pi and _mm_loadl_pi a single LLVM IR instruction to make optimizing easier for CodeGen. rdar://10054986 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139874 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13Add 'may_alias' attribute. Noticed by Eli.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131278 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13Represent the unaligned loads natively. These are converted into a call to theBill Wendling
correct unaligned load. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131268 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12LLVM doesn't always optimize away the four loads from this:Bill Wendling
(__m128){ p[0], p[1], p[2], p[3] } which produces really bad code. This could be done in instcombine, but it's probably better to do it in the front-end instead. <rdar://problem/9424836> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-13Remove comment that snuck in there.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129434 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-13Just use a native "load" instead of translating the builtin later. Clang canBill Wendling
take it! I wasn't able to get __builtin_ia32_loaddqu to transform into an unaligned load...I'll have to look into it further. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129427 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-22Undo part of my previous commit to mm_malloc.h, going back to the use ofChandler Carruth
stdlib.h. There were numerous problems with forward declaring 'malloc' and 'free', but the most important is that these are reserved by POSIX and may be implemented via a function-like macro. As suggested by Dale Johannesen, I'm instead guarding the only include of this in our builtin headers with __STDC_HOSTED__, and I've removed the include of the header from the test suite. I'll discuss with folks whether we want to have a hosted section of the test suite or not, and add it (and perhaps other tests) back there if that's the direction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02the mmx intrinsic for pshufw should map to the IR intrinsic, notChris Lattner
to a shufflevector. Otherwise it doesn't turn into a pshufw. This bug was introduced in the mmx rewrite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115423 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-27fix incorrect MM_HINT_ definitions, PR8011Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112283 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08Fix some typos I made when adding alternate intrinsic names.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110545 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22Add alternate names for x86 SIMD intrinsics. These aren't as common, but showChandler Carruth
up enough to be worth supporting properly. Fixes PR7674. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109086 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Headers: Fix quoting of macro arguments in a couple more places.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105331 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-30Make macro safe in the face of users who pass "addr+64". Addition of void* isNick Lewycky
invalid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-15add type casts to _mm_shuffle_ps so the front-end appliesChris Lattner
implicit conversions where needed. This fixes an error reported on cfe-dev, not really worth a testcase though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103864 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22fix PR6658: inline isn't a keyword in C89 mode, use __inline__ instead.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99190 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Migrate typedefs to the top level of xmmintrin.h and remove the sameEric Christopher
one from emmintrin.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99020 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16add two aliases for SSE functions we already have, fixing PR6316.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01fix PR6187: various load functions in xmmintrin.h were missing 'const'.Chris Lattner
emmintrin looks ok. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94998 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-27fix a bug in the _MM_TRANSPOSE4_PS definition, patch by Brian Sumner fromChris Lattner
PR6138 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94669 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-07_mm_xor_ps does a xor not a nxor. The other 'xor' builtins look fine,Chris Lattner
but this one is wrong. Thanks to Tanya for noticing this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-11Following gcc, hide the hack to include the SSE2 intrinsics from Eli Friedman
xmmintrin.h in an ifdef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73200 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07xmmintrin needs to include emmintrin, Darwin system headers seem to depend on itDaniel Dunbar
defining m128[id], at least. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73021 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07Now that LLVM CodeGen can handle the generic variations a bit better, Eli Friedman
get rid of a few more clang vector builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Replace more calls to builtins with generic code.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Fix some casts to work without -flax-vector-conversions.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Misc fixes to MMX/SSE intrinsics: a few small bug fixes, and getting rid Eli Friedman
of calls to builtins for constructs which can be expressed directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02Add aliases for a couple of SSE intrinsics. Patch by Ed Schouten.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72717 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Add 'cmp' SSE builtins and get rid of a bunch of other builtins.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17fix misspelt attribute.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Spell __always_inline__ correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Fix more xmmintrin.h typosAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Add the nodebug attribute to intrinsicsAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-1380col.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11Fix some mistakes I made when I tried to decipher the Intel documentation of ↵Anders Carlsson
the MXCSR register git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64290 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21Fix more bugs I discoveredAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62656 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-20Fix some errors I noticedAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62620 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-27Add a MS specific intrinsic.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61446 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-26OK, all tests pass. Let's start using the SSE2 headerAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61440 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22Fix test failures noticed by Fariborz.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61334 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22Flip the switch and start using the new xmmintrin.hAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61332 91177308-0d34-0410-b5e6-96231b3b80d8