Craig Topper
1f2460ad43
Add AVX2 intrinsics for max, min, sign extend, and zero extend.
...
llvm-svn: 147141
2011-12-22 09:18:58 +00:00
Craig Topper
a73baa8050
Add a few more AVX2 intrinsics and fix the type strings on a couple SSE intrinsics.
...
llvm-svn: 147048
2011-12-21 08:35:05 +00:00
Craig Topper
3fe5ac40db
Add AVX2 horizontal add/sub intrinsics.
...
llvm-svn: 147047
2011-12-21 08:17:40 +00:00
Craig Topper
a89747dd1e
Add AVX2 intrinsics for pavg, pblend, and pcmp instructions. Also remove unneeded builtins for SSE pcmp. Change SSE pcmpeqq and pcmpgtq to not use builtins and just use vector == and >.
...
llvm-svn: 146969
2011-12-20 09:55:26 +00:00
Craig Topper
a557e1c122
Add AVX2 intrinsics for and, andn, or, and xor.
...
llvm-svn: 146862
2011-12-19 09:03:48 +00:00
Craig Topper
94aba2c260
More AVX2 intrinsic support including saturating add/sub and palignr.
...
llvm-svn: 146857
2011-12-19 07:03:25 +00:00
Craig Topper
dec792ebb5
Begin adding AVX2 intrinsics. Necessitated increasing the number of bits used to store builtinID when serializing identifier table.
...
llvm-svn: 146855
2011-12-19 05:04:33 +00:00
Chad Rosier
7caca84ce4
Fix _mm_permute_ps and _mm256_permute_ps AVX intrinsics to use "I" (ICE)
...
markings. Fix avxintrin.h to take them into account.
Part of rdar://10595450
llvm-svn: 146810
2011-12-17 01:51:05 +00:00
Chad Rosier
93375d5fa5
Revert r146797, which was a partial revert of r146791; It was correct in the
...
first place. The permutevar_* (note the *var*) intrinsics use ymm/mem.
llvm-svn: 146807
2011-12-17 01:39:56 +00:00
Chad Rosier
0adfe7aa2f
Fix _mm256_extractf128_* AVX intrinsics to use "I" (ICE) markings. Fix
...
avxintrin.h to take them into account.
Part of rdar://10595450
llvm-svn: 146804
2011-12-17 01:22:27 +00:00
Chad Rosier
3648646b2b
Partial revert of r146791; vpermilps/vpermilpd instructions accepts ymm/mem/imm8.
...
llvm-svn: 146797
2011-12-17 00:50:42 +00:00
Chad Rosier
060d03be1c
Fix _mm256_round_pd, _mm256_round_ps, _mm_permute_pd and _mm256_permute_pd AVX
...
intrinsics to use "I" (ICE) markings. Fix avxintrin.h to take them into
account.
Part of rdar://10595450
llvm-svn: 146791
2011-12-17 00:15:26 +00:00
Chad Rosier
33d22d8def
Fix vinsertf128_* AVX intrinsics to use "I" (ICE) markings. Fix avxintrin.h to
...
take them into account.
rdar://10590282
llvm-svn: 146758
2011-12-16 21:40:31 +00:00
Chad Rosier
9138fea25e
Fix vperm2f128_* AVX intrinsics to use "I" (ICE) markings. Fix avxintrin.h to
...
take them into account.
rdar://10576962
llvm-svn: 146757
2011-12-16 21:07:34 +00:00
Bob Wilson
16c4195548
Fix obvious error in _mm_test_all_zeros. PR11565.
...
Patch by Mathias Gaunard!
llvm-svn: 146565
2011-12-14 17:17:16 +00:00
Chandler Carruth
222c66db38
Fix a blatant typo or cut/paste-o reported by users of this header.
...
llvm-svn: 146251
2011-12-09 09:23:55 +00:00
Rafael Espindola
7a284b2e78
Use default visibility in the the symbols declared in unwind.h. This matches
...
the behavior of gcc's unwind.h.
llvm-svn: 146208
2011-12-09 00:08:01 +00:00
Rafael Espindola
18c7920d6b
Add a minimal unwind.h that knows how to forward to the system one in systems
...
that have it in /usr/include (only OS X Lion so far).
llvm-svn: 146140
2011-12-08 05:01:39 +00:00
Daniel Dunbar
e946e361ab
Headers: wmmintrin.h only needs xmmintrin.h.
...
- Fixes <rdar://problem/10261246> clang -maes option is not sufficient to
include <wmmintrin.h>
llvm-svn: 145939
2011-12-06 16:17:54 +00:00
Rafael Espindola
488ea473db
Install cpuid.h when building with cmake too.
...
llvm-svn: 145935
2011-12-06 15:46:47 +00:00
Rafael Espindola
49118520de
Fix comment.
...
llvm-svn: 145271
2011-11-28 20:05:27 +00:00
Rafael Espindola
0618d14edf
Error on non x86 architectures.
...
llvm-svn: 145185
2011-11-27 15:21:33 +00:00
Rafael Espindola
fd03d0b733
Fix file name in comments.
...
llvm-svn: 145184
2011-11-27 15:13:54 +00:00
Rafael Espindola
d086573a4d
Add the minimum implementation of cpuid.h. This works on "modern" intel cpus
...
and on clang, which seams to handled "=b" correctly even when ebx is the
PIC register.
llvm-svn: 145149
2011-11-26 20:53:19 +00:00
Eli Friedman
f16beb3942
Fix some additional x86 intrinsics to use "I" (ICE) markings. Fix *mmintrin.h to take them into account.
...
<rdar://problem/10341145>
llvm-svn: 144246
2011-11-10 00:11:13 +00:00
Eli Friedman
9586cdb01e
Misc fixes to pcmp*stri.
...
llvm-svn: 144073
2011-11-08 04:13:51 +00:00
Bob Wilson
c9b97cc1da
Fix vector macros to correctly check argument types. <rdar://problem/10261670>
...
llvm-svn: 143792
2011-11-05 06:08:06 +00:00
Eli Friedman
89c11337ba
Add _mm_comige_sd to emmintrin.h, since I apparently forgot to do this in r138769.
...
<rdar://problem/10230751>
llvm-svn: 141310
2011-10-06 20:31:50 +00:00
Peter Collingbourne
d937a99465
Clang-side build system infrastructure for multiple tblgens.
...
llvm-svn: 141267
2011-10-06 01:52:10 +00:00
Peter Collingbourne
2f3cf4b158
Add support for alignment-specifiers in C1X and C++11, remove
...
support for the C++0x draft [[align]] attribute and add the C1X
standard header file stdalign.h
llvm-svn: 140796
2011-09-29 18:04:28 +00:00
Eli Friedman
9bb51adcce
Tweak *mmintrin.h so that they don't make any bad assumptions about 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
llvm-svn: 139874
2011-09-15 23:15:27 +00:00
Eric Christopher
bd202c0496
Remove WCHAR_MIN and WCHAR_MAX from limits.h. According to posix and c99
...
these should be in stdint.h - and they already are.
Fixes rdar://10097036.
llvm-svn: 139332
2011-09-08 23:25:25 +00:00
Eli Friedman
f8cb480528
Add missing function _mm_ucomige_sd to emmintrin.h. PR10803.
...
llvm-svn: 138769
2011-08-29 21:26:24 +00:00
Bruno Cardoso Lopes
7a98a7e681
Fix _mm256_shuffle_ps mask! Example, for mask=203, Instead of:
...
<i32 3, i32 2, i32 8, i32 11, i32 3, i32 6, i32 12, i32 15>
generate:
<i32 3, i32 2, i32 8, i32 11, i32 7, i32 6, i32 12, i32 15>
llvm-svn: 138411
2011-08-23 23:29:45 +00:00
Howard Hinnant
854a3966d4
http://llvm.org/bugs/show_bug.cgi?id=10472
...
llvm-svn: 135927
2011-07-25 18:09:56 +00:00
Nick Lewycky
c3218637bd
Fix typo.
...
llvm-svn: 135473
2011-07-19 08:48:08 +00:00
Alexis Hunt
8cb46bb51c
Implement a __WCHAR_UNSIGNED__ macro and use it to include WCHAR_MIN and
...
WCHAR_MAX in limits.h, thus solving the problem where the system header
thinks it knows better.
llvm-svn: 135455
2011-07-19 00:50:57 +00:00
NAKAMURA Takumi
a185c78d4d
lib/Headers/mm_malloc.h: Use __mingw_aligned_malloc() in _mm_malloc() on mingw.
...
By default, mingw does not have _mm_alloc() nor _aligned_malloc().
llvm-svn: 135388
2011-07-18 11:13:50 +00:00
Douglas Gregor
c9c40ce861
Teach Clang's <float.h> to also include MinGW's <float.h>, which provides additional system definitions, from Ruben Van Boxem
...
llvm-svn: 134407
2011-07-05 14:17:04 +00:00
Douglas Gregor
21ad5dfc69
Define va_copy when in C++0x mode; C++0x picked it up from C99.
...
llvm-svn: 133438
2011-06-20 15:03:22 +00:00
Bill Wendling
03e7e430c3
Add 'may_alias' attribute. Noticed by Eli.
...
llvm-svn: 131278
2011-05-13 01:24:00 +00:00
Bill Wendling
502931fad9
Represent the unaligned loads natively. These are converted into a call to the
...
correct unaligned load.
llvm-svn: 131268
2011-05-13 00:11:39 +00:00
Bill Wendling
e106c34817
LLVM doesn't always optimize away the four loads from this:
...
(__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>
llvm-svn: 131237
2011-05-12 19:02:15 +00:00
Eli Friedman
8ba29d8e7f
PR9866: Fix the implementation of _mm_loadl_pd and _mm_loadh_pd to not make
...
bad assumptions about the alignment of the double* argument.
llvm-svn: 131052
2011-05-07 18:59:31 +00:00
Eli Friedman
cb59baaa20
PR9849: Fix _mm_setr_pi32 and friends to actually work correctly. They broke with the MMX rewrite a while back.
...
llvm-svn: 130945
2011-05-05 20:21:54 +00:00
Eli Friedman
fe0739dffb
Some small improvements to the builtin (-ffreestanding) stdint.h; in
...
particular, make sure to handle WCHAR_MIN correctly.
llvm-svn: 130618
2011-04-30 19:02:59 +00:00
Chris Lattner
f03406f103
don't use compound literals in MM macros, since they will be instantiated
...
into user code which may warn about them with -pedantic. Patch by Jonathan Sauer!
llvm-svn: 130149
2011-04-25 20:42:40 +00:00
Eli Friedman
4547752402
PR9772: Fix the definition of WINT_MIN and WINT_MAX on Linux -ffreestanding.
...
llvm-svn: 129907
2011-04-21 05:45:45 +00:00
Michael J. Spencer
1737c9e0b5
Add mm3dnow.h.
...
llvm-svn: 129572
2011-04-15 15:11:21 +00:00
Chris Lattner
57540c5be0
fix a bunch of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129559
2011-04-15 05:22:18 +00:00