Chris Lattner
ee8df8f167
fix PR7192 by defining wchar_t in a more conventional way. The
...
type of L"x" can change based on command line arguments.
llvm-svn: 113127
2010-09-05 23:29:49 +00:00
Chris Lattner
212a492063
fix incorrect MM_HINT_ definitions, PR8011
...
llvm-svn: 112283
2010-08-27 20:10:06 +00:00
Eric Christopher
2a9898f0a2
Move some type defines from smmintrin.h to emmintrin.h to match where
...
gcc defines them.
llvm-svn: 112146
2010-08-26 02:09:25 +00:00
Nick Lewycky
0b84914da0
Add x86intrin.h which is generic x86 intrinsics for more than just Intel. Thus
...
far, this just #include's immintrin.h for compatibility.
llvm-svn: 111785
2010-08-22 20:38:05 +00:00
Benjamin Kramer
6f35f3cd80
Disallow direct inclusion of avxintrin.h. Users should include immintrin.h instead. This matches GCC's behavior.
...
llvm-svn: 111692
2010-08-20 23:00:03 +00:00
Benjamin Kramer
65b9f7b255
Add immintrin meta header.
...
- This is the official way to get AVX intrinsics, we might want to disallow
direct inclusion of avxintrin.h, just like GCC does.
llvm-svn: 111660
2010-08-20 18:04:07 +00:00
Chris Lattner
1b55b75e24
alphabeticalize
...
llvm-svn: 111654
2010-08-20 17:24:02 +00:00
Chris Lattner
21a597a31d
hopefully unbreak the msvc buildbot.
...
llvm-svn: 111653
2010-08-20 17:23:33 +00:00
Benjamin Kramer
ae8ea1f715
Fix header comments.
...
llvm-svn: 111645
2010-08-20 16:47:17 +00:00
Chris Lattner
9052c35479
fix some vector extractions to return properly zero extended values
...
(instead of sign extending) to match ICC. GCC is changing this in
a series of their own PRs (e.g. 41323).
llvm-svn: 111637
2010-08-20 16:08:33 +00:00
Anton Yartsev
583a1cf7b5
support for predicates with bool/pixel arguments
...
llvm-svn: 111515
2010-08-19 11:57:49 +00:00
Anton Yartsev
fc83c60755
support for the rest of AltiVec functions with bool/pixel arguments and return values (except predicates)
...
llvm-svn: 111511
2010-08-19 03:21:36 +00:00
Anton Yartsev
9e96898032
support for vec_perm and all dependent functions (vec_mergeh, vec_mergel, vec_pack, vec_sld, vec_splat) with bool/pixel arguments and return values
...
llvm-svn: 111509
2010-08-19 03:00:09 +00:00
Anton Yartsev
2cc136d4e3
support for vec_add, vec_adds, vec_and, vec_andc with bool arguments
...
llvm-svn: 111141
2010-08-16 16:22:12 +00:00
Anton Yartsev
bfd0f96e79
first test commit
...
llvm-svn: 110941
2010-08-12 18:51:55 +00:00
Bruno Cardoso Lopes
8c333153e0
Fix define inserting a comma :)
...
llvm-svn: 110839
2010-08-11 18:45:43 +00:00
Bruno Cardoso Lopes
65954ffc69
Remove 256-bit cast built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110771
2010-08-11 02:14:38 +00:00
Bruno Cardoso Lopes
a4f1930b75
Remove 256-bit unpack built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110768
2010-08-11 01:43:24 +00:00
Bruno Cardoso Lopes
e712a135b7
Remove 256-bit shuffle built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110766
2010-08-11 01:17:34 +00:00
Bruno Cardoso Lopes
3d3fc1d075
Make replicate intrinsics use shufflevector instead of dup builtins, also remove the dup builtins
...
llvm-svn: 110646
2010-08-10 02:23:54 +00:00
Chandler Carruth
42cf818be1
Fix a few more typos. Amusingly, GCC made the same mistake around version 3.2.
...
llvm-svn: 110546
2010-08-08 08:44:32 +00:00
Chandler Carruth
7579c008ec
Fix some typos I made when adding alternate intrinsic names.
...
llvm-svn: 110545
2010-08-08 08:30:05 +00:00
Bruno Cardoso Lopes
3d19889ca8
Fix AVX 256-bit intrinsics headers by using the right cast type while dealing with logical ops
...
llvm-svn: 110389
2010-08-05 23:04:58 +00:00
Bruno Cardoso Lopes
fc2320fd73
Logical AVX instrinsics can be matched directly, no need to use builtins here.
...
llvm-svn: 110271
2010-08-04 22:56:42 +00:00
Bruno Cardoso Lopes
7c4b513a3f
Add AVX intrinsics header
...
llvm-svn: 110253
2010-08-04 22:03:36 +00:00
Chris Lattner
38321174e0
add a hack for visual studio, fixing PR7796
...
llvm-svn: 110161
2010-08-03 22:13:56 +00:00
Chandler Carruth
96f2e9e418
Add alternate names for x86 SIMD intrinsics. These aren't as common, but show
...
up enough to be worth supporting properly. Fixes PR7674.
llvm-svn: 109086
2010-07-22 06:47:28 +00:00
Daniel Dunbar
43d74a3b02
build: Make sure arm_neon.h gets installed.
...
llvm-svn: 109073
2010-07-22 01:19:36 +00:00
Eli Friedman
07c89c6b3e
PR7588: Fix the _mm_shufflehi_epi16 macro. (The issue was an oversight
...
involving operator precedence.)
llvm-svn: 107902
2010-07-08 20:09:45 +00:00
Daniel Dunbar
540e8b1dcd
Headers: Change [u]intmax_t to be defined in terms of __[U]INTMAX_TYPE__, instead of intN_t.
...
llvm-svn: 107254
2010-06-30 06:30:50 +00:00
Bob Wilson
f11a38dcce
Add a missing dependency to try to fix a buildbot failure.
...
It complained with:
llvm[5]: Building Clang arm_neon.h.inc with tblgen
cp: cannot create regular file `/build/buildbot-llvm/clang-x86_64-linux-selfhost-rel/llvm.obj.2/Release/lib/clang/2.0/include/arm_neon.h': No such file or directory
llvm-svn: 106922
2010-06-26 00:03:23 +00:00
Daniel Dunbar
283fe3d07a
build: Get CLANG_VERSION from Version.inc instead of depending on VER file directly.
...
llvm-svn: 106864
2010-06-25 17:33:49 +00:00
Anton Korobeynikov
cc50b7d7d5
More AltiVec support.
...
Patch by Anton Yartsev!
llvm-svn: 106387
2010-06-19 09:47:18 +00:00
Douglas Gregor
0552291859
Update CMake build system for ARM NEON generation.
...
llvm-svn: 106220
2010-06-17 15:17:41 +00:00
Nate Begeman
35f4c1c6b1
Generate arm_neon.inc in include/clang/Basic, which provides:
...
1. builtins definitions for BuiltinsARM.def
2. intrinsic validation code for SemaChecking
Unsure as to whether this is the best way to handle the make dependencies or not.
llvm-svn: 106208
2010-06-17 04:17:01 +00:00
Alexis Hunt
0684e33ba5
MinGW requires that wint_t be defined in stddef.h. In order to accomodate, we
...
won't define it unless specifically requested via the use of __need_wint_t.
llvm-svn: 105985
2010-06-15 02:36:48 +00:00
Nate Begeman
91e1feab7a
Add some missing shifts
...
Fix multiplies by scalar
Add SemaChecking code for all immediates
Add SemaChecking-gen support to arm_neon.td
llvm-svn: 105930
2010-06-14 05:21:25 +00:00
Nate Begeman
dd715805ab
vbsl, vrev* is implemented via arm_neon.h
...
llvm-svn: 105875
2010-06-12 03:11:41 +00:00
Nate Begeman
4a04b467d9
support _lane ops, and multiplies by scalar.
...
llvm-svn: 105770
2010-06-10 00:17:56 +00:00
Nate Begeman
d90aa43bdf
Implement codegen for hadd, hsub, max, min, mlal, movl, movn, padal, mov_n
...
Make note about how to handle the dozen or so multiply by scalar ops.
llvm-svn: 105734
2010-06-09 18:04:15 +00:00
Nate Begeman
5548309fa7
Implement transpose/zip/unzip & table lookup.
...
Test out some basic constant-checking.
llvm-svn: 105667
2010-06-09 01:10:23 +00:00
Daniel Dunbar
e6c1daa8fd
Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
...
- This eliminates most dependencies on how Clang is installed relative to LLVM.
llvm-svn: 105637
2010-06-08 20:34:18 +00:00
Nate Begeman
16372afeab
Implement ARM NEON up through vcvt, alphabetically.
...
llvm-svn: 105590
2010-06-08 00:17:19 +00:00
Nate Begeman
6736cc89d0
Initial support for ARM NEON builtins, codegen up next
...
llvm-svn: 105489
2010-06-04 21:36:27 +00:00
Nate Begeman
821079d42d
Classify NEON intrinsics by overloading-type for codegen
...
Add a few missing instructions
llvm-svn: 105417
2010-06-03 21:36:23 +00:00
Daniel Dunbar
f5e075d392
Headers: Fix quoting of macro arguments in a couple more places.
...
llvm-svn: 105331
2010-06-02 16:35:01 +00:00
Nate Begeman
661ba6d847
Fix vget_lane/vset_lane
...
llvm-svn: 105317
2010-06-02 07:15:01 +00:00
Nate Begeman
464d280b3c
Checkpoint arm_neon.h generation with tablegen
...
llvm-svn: 105306
2010-06-02 00:34:41 +00:00
Nick Lewycky
71eac6e114
Make macro safe in the face of users who pass "addr+64". Addition of void* is
...
invalid.
llvm-svn: 105172
2010-05-30 18:26:21 +00:00
Nate Begeman
b9ed185e33
Implement remaining items in neon td file. Still need to modify emitter to generate a proper header.
...
llvm-svn: 105058
2010-05-28 23:15:59 +00:00
Douglas Gregor
1f1be08645
Add CMake goop to get arm_neon.h generated
...
llvm-svn: 104934
2010-05-28 04:22:06 +00:00
Nate Begeman
07f9b0c784
Convert arm_neon.h into arm_neon.td, from which arm_neon.h will be built
...
Add Makefile support for building arm_neon.h from arm_neon.td
Need to figure out an appropriate cmake rule for this.
llvm-svn: 104928
2010-05-28 02:20:47 +00:00
Chris Lattner
8b3b145342
fix _mm_shuffle_pd too, thanks to Joel Falcou for pointing this out.
...
llvm-svn: 103873
2010-05-15 16:54:46 +00:00
Chris Lattner
6625c7028e
add type casts to _mm_shuffle_ps so the front-end applies
...
implicit conversions where needed. This fixes an error reported
on cfe-dev, not really worth a testcase though.
llvm-svn: 103864
2010-05-15 05:53:53 +00:00
Nate Begeman
4a623eed26
logical ops, unary ops, pairwise ops
...
llvm-svn: 102681
2010-04-30 00:46:57 +00:00
Nate Begeman
723169d8ec
Comparisons.
...
llvm-svn: 102669
2010-04-29 23:36:09 +00:00
Nate Begeman
23a2f2ff79
Start stamping out the __builtin_neon stuff.
...
llvm-svn: 102638
2010-04-29 17:37:19 +00:00
Nate Begeman
a8a9d6a1f0
A bit more neon work, adds work (but the ABI is wrong), types mostly stamped out.
...
llvm-svn: 102549
2010-04-28 22:37:01 +00:00
Nate Begeman
cb2563f0c3
Stub out NEON support, more to come.
...
llvm-svn: 102512
2010-04-28 18:37:32 +00:00
Daniel Dunbar
cfc12ddb0a
Headers: Hide intptr_t and uintptr_t definitions behind _INTPTR_T and _UINTPTR_T
...
defines, for increased compatibility with Darwin gcc.
- This is a bit of a hack, since platform compatibility issues don't belong
here, but I don't think this hurts anyone either.
llvm-svn: 102264
2010-04-24 20:32:12 +00:00
Eric Christopher
1bbc7086ff
Rewrite handling of 64-bit palignr intrinsics to be vector shuffles.
...
Stop multiplying constant by 8 accordingly in the header and change
intrinsic definition for what types we expect.
Add to existing palignr test to check that we're emitting the correct things.
llvm-svn: 101332
2010-04-15 01:43:08 +00:00
Chris Lattner
dd6697b4fa
improve altivec c++ support by adding casts, patch by
...
Anton Yartsev!
llvm-svn: 101281
2010-04-14 20:35:39 +00:00
Chris Lattner
dad4062b4d
implement altivec.h and a bunch of support code, patch by Anton Yartsev!
...
llvm-svn: 101215
2010-04-14 03:54:58 +00:00
Chris Lattner
4b73cfabac
rename llvm::llvm_report_error -> llvm::report_fatal_error
...
llvm-svn: 100708
2010-04-07 22:58:06 +00:00
Eric Christopher
2fbd4050e9
Fix typo.
...
llvm-svn: 100079
2010-04-01 03:07:20 +00:00
Eric Christopher
5464e5ae00
First start at wmmintrin.h file with Intel AES-NI instructions.
...
llvm-svn: 100077
2010-04-01 03:03:35 +00:00
Daniel Dunbar
6a6199de67
Fix 80 col violations.
...
llvm-svn: 99648
2010-03-26 20:17:17 +00:00
Eric Christopher
bd9a3aecd6
This is just a simple v4si * v4si, make it so.
...
llvm-svn: 99587
2010-03-26 00:51:28 +00:00
Anders Carlsson
91e18c93c4
Make the license header in smmintrin.h match the other SSE headers.
...
llvm-svn: 99384
2010-03-24 05:31:31 +00:00
Chris Lattner
7eac805bb0
fix PR6658: inline isn't a keyword in C89 mode, use __inline__ instead.
...
llvm-svn: 99190
2010-03-22 18:14:12 +00:00
Eric Christopher
08f135274d
Add sse4.2 header and builtin support.
...
llvm-svn: 99051
2010-03-20 07:43:28 +00:00
Eric Christopher
86af0bae8a
Add a newline at the end of the file.
...
llvm-svn: 99026
2010-03-20 01:19:04 +00:00
Eric Christopher
6ed351ab2d
For legacy compatibility add a varargs.h header.
...
llvm-svn: 99025
2010-03-20 01:18:30 +00:00
Eric Christopher
33124e20c7
Migrate typedefs to the top level of xmmintrin.h and remove the same
...
one from emmintrin.h.
llvm-svn: 99020
2010-03-20 01:08:47 +00:00
Eric Christopher
8c6f61394f
Add remaining sse4.1 intrinsics and builtins.
...
llvm-svn: 98587
2010-03-15 23:22:58 +00:00
Eric Christopher
6932b2e8b7
Add SSE4 packed integer comparisons and corresponding intrinsics.
...
llvm-svn: 98323
2010-03-12 01:22:33 +00:00
Eric Christopher
e486f68b59
Integer array extraction for sse4.1.
...
llvm-svn: 98305
2010-03-11 23:50:18 +00:00
Eric Christopher
e7594305bc
Add packed integer array insertion.
...
llvm-svn: 98299
2010-03-11 23:36:29 +00:00
Eric Christopher
1dca62055a
Add insert/extract_ps and related random macros.
...
llvm-svn: 98114
2010-03-10 00:50:58 +00:00
Ted Kremenek
0a4a8326c1
Add preprocessor guards to the definitions of size_t and wchar_t, and #undef NULL before defining it.
...
This addresses potential issues with system headers reported in <rdar://problem/7727159>.
llvm-svn: 98006
2010-03-08 23:23:45 +00:00
Ted Kremenek
4c9862ca1d
Place the definition of 'va_list' within a preprocessor guard. This matches the behavior of GCC, and avoids potential conflicts with system headers (e.g., stdio.h). Fixes <rdar://problem/7727145>.
...
llvm-svn: 98003
2010-03-08 23:13:05 +00:00
Eric Christopher
4c70358296
Add sse4.1 packed min and max intrinsics.
...
llvm-svn: 97907
2010-03-07 07:00:42 +00:00
Eric Christopher
7288890b51
Add load hint instruction intrinsic.
...
llvm-svn: 97904
2010-03-07 06:29:09 +00:00
Eric Christopher
87990fe5df
Add in support for dword multiply and fp dot product intrinsics.
...
llvm-svn: 97902
2010-03-07 06:17:19 +00:00
Eric Christopher
b0759be4d0
Fix _MM_FROUND_NEARBYINT and move rounding intrinsics to macros.
...
llvm-svn: 97874
2010-03-06 10:31:44 +00:00
Eric Christopher
94567c04bb
First start on smmintrin.h, rounding and blending.
...
llvm-svn: 97717
2010-03-04 02:56:19 +00:00
Chris Lattner
e983eae273
add two aliases for SSE functions we already have, fixing PR6316.
...
llvm-svn: 96363
2010-02-16 18:21:25 +00:00
Chris Lattner
b18093e467
fix PR6187: various load functions in xmmintrin.h were missing 'const'.
...
emmintrin looks ok.
llvm-svn: 94998
2010-02-01 20:14:14 +00:00
Chris Lattner
0afd3a23cd
fix a bug in the _MM_TRANSPOSE4_PS definition, patch by Brian Sumner from
...
PR6138
llvm-svn: 94669
2010-01-27 07:54:50 +00:00
Chris Lattner
4debb32fdd
_mm_xor_ps does a xor not a nxor. The other 'xor' builtins look fine,
...
but this one is wrong. Thanks to Tanya for noticing this.
llvm-svn: 92881
2010-01-07 00:36:41 +00:00
Nate Begeman
67dfd4236a
Revert mmx palignr to use an intrinsic, since mmx shuffle patterns are missing.
...
llvm-svn: 91269
2009-12-14 05:15:02 +00:00
Nate Begeman
72ec6bc6f4
Support x86's PALIGNR instruction without the use of a palignr intrinsic.
...
llvm-svn: 91264
2009-12-14 04:57:03 +00:00
Chris Lattner
399df12fb1
minimal fix for PR5743
...
llvm-svn: 91032
2009-12-10 01:38:15 +00:00
Douglas Gregor
df72af5935
Pick up MB_LEN_MAX as defined by the system <limits.h>, when it's provided there
...
llvm-svn: 90879
2009-12-08 21:35:00 +00:00
Ken Dyck
f540ae5ab3
Define SIG_ATOMIC_MIN and SIG_ATOMIC_MAX in terms of __SIG_ATOMIC_WIDTH__.
...
llvm-svn: 89598
2009-11-22 15:47:12 +00:00
Ken Dyck
33211d9658
Avoid unwanted expansion in macros that paste together INT<n>_C(v) and
...
UINT<n>_C(v) macros.
llvm-svn: 89461
2009-11-20 16:49:10 +00:00
Ken Dyck
8dcc21420b
Avoid unwanted expansion in macros that paste together INT<n>_MIN, INT<n>_MAX,
...
and UINT<n>_MAX defintions.
llvm-svn: 89460
2009-11-20 16:44:38 +00:00
Ken Dyck
764a5f3881
Avoid unwanted macro expansion in macros that paste together int<n>_t and
...
uint<n>_t definitions.
llvm-svn: 89459
2009-11-20 16:37:35 +00:00
Ken Dyck
aff01ceb95
Define WCHAR_MIN and WCHAR_MAX in terms of __WCHAR_WIDTH__ for consistency with
...
other limit macros.
llvm-svn: 89355
2009-11-19 15:53:08 +00:00
Ken Dyck
f0b343f5b7
Parameterize WINT_MIN and WINT_MAX with __WINT_WIDTH__ to support arbitrary
...
widths. This corrects the values of these definitions for MSP430 and PIC16.
llvm-svn: 89350
2009-11-19 14:35:19 +00:00
Ken Dyck
279ed5189c
Construct definition of SIZE_MAX from __SIZE_WIDTH__ to support targets of
...
arbitrary widths.
llvm-svn: 89347
2009-11-19 14:03:24 +00:00
Ken Dyck
8af6035ac9
Construct the macro body of PTRDIFF_MAX and PTRDIFF_MIN from __PTRDIFF_WIDTH__.
...
llvm-svn: 89343
2009-11-19 12:33:01 +00:00
Ken Dyck
68fa5afada
Construct INTPTR_MIN, INTPTR_MAX, and UINTPTR_MAX from the exact-width limit
...
macros corresponding to __INTPTR_WIDTH__.
llvm-svn: 89239
2009-11-18 20:36:29 +00:00
Ken Dyck
2d4371d666
Define intptr_t and uintptr_t in terms of their equivalent exact-width types.
...
llvm-svn: 89237
2009-11-18 20:24:13 +00:00
Ken Dyck
ac11b7b625
Define INTMAX_C and UINTMAX_C in terms of the corresponding exact-width
...
INTn_C and UINTn_C macros.
llvm-svn: 89226
2009-11-18 19:42:57 +00:00
Ken Dyck
63c8ef8256
Define INTMAX_MIN, INTMAX_MAX, and UINTMAX_MAX in terms of the limit macros for
...
their corresponding exact-width type.
llvm-svn: 89224
2009-11-18 19:22:15 +00:00
Ken Dyck
47181584f1
Define intmax_t and uintmax_t as the [u]intN_t type corresponding to
...
__INTMAX_WIDTH__.
llvm-svn: 89221
2009-11-18 18:57:04 +00:00
Ken Dyck
19ac306c2c
Replace (-INT8_C(128)), which uses an illegally out-of-range argument for
...
INT8_C, with (-INT8_C(127)-1) in the definition of INT8_MIN. Apply similar
changes to the definitions of INT16_MIN and INT24_MIN.
llvm-svn: 89120
2009-11-17 18:29:12 +00:00
Ken Dyck
f78dc738a5
Use the INTn_C integer constant macros to generate limit constants with correct
...
suffixes. This corrects the suffixes for the limit constants of the 32-bit
types on MSP430 and PIC16, and the 64-bit types on PPC64, SystemZ, X86_64.
llvm-svn: 89101
2009-11-17 16:26:27 +00:00
Ken Dyck
e115235705
Remove unnecessary parens around the bodies of integer constant macros. C99
...
requires that their arguments be decimal, hex, octal constants---no signs
allowed---making the parens unnecessary.
llvm-svn: 89095
2009-11-17 13:54:02 +00:00
Ken Dyck
2dc8d5fa3e
Parameterize the constant-generating macros in stdint.h with new built-in
...
__INTn_C_SUFFIX__ macros that are defined for types with corresponding
constant suffixes (i.e. long and long long).
llvm-svn: 88914
2009-11-16 16:36:33 +00:00
Chris Lattner
55c9877b66
Generalize stdint.h for non-8-bit-multiple types, patch by
...
Ken Dyck!
"This adds definitions for types of 8-bit multiples
from 8 to 64 to stdint.h and rationalizes the selection of types
for the exact-width definitions in InitPreprocessor.cpp."
llvm-svn: 86977
2009-11-12 08:08:27 +00:00
Chris Lattner
b0966de585
A simple reordering of the definitions in stdint.h and
...
introduces no new function changes. Patch by Ken Dyck!
llvm-svn: 86062
2009-11-04 23:03:18 +00:00
John Thompson
ac0b098d4d
Added __has_include and __has_include_next.
...
llvm-svn: 85834
2009-11-02 22:28:12 +00:00
Oscar Fuentes
843c828ed5
CMake: Respect LLVM_LIBDIR_SUFFIX for clang-specific headers under
...
${libdir}/clang
Patch by Ingmar Vanhassel!
llvm-svn: 85308
2009-10-27 21:15:21 +00:00
Anders Carlsson
327c8df90c
Make our char vector types not be explicitly signed to match GCC and to fix compilation with C++ and -fno-lax-vector-conversions
...
llvm-svn: 82254
2009-09-18 19:18:19 +00:00
Anders Carlsson
dfa3117085
Fix PR4923.
...
Fix error in _mm_set_pd/_mm_setr_pd and add _mm_set_epi64x/_mm_set1_epi64x. Patch by Laurent Morichetti!
llvm-svn: 82228
2009-09-18 17:03:55 +00:00
Mike Stump
b4bed3a497
Collapse more clang version numbers down into fewer places.
...
llvm-svn: 81983
2009-09-16 01:26:05 +00:00
Mike Stump
e18856dad1
Back to 1.1 we go.
...
llvm-svn: 81944
2009-09-15 23:04:22 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Douglas Gregor
33870d908f
CMake: Improve installation of Clang
...
- Install clang-cc into libexec
- Install headers into lib/clang/<version>/include
- Don't install other clang-based tools (clang-wpa, clang-index, etc.)
llvm-svn: 79827
2009-08-23 05:28:29 +00:00
Eli Friedman
5173349565
Switch some functions from using x86 builtins to using vector
...
operations.
llvm-svn: 76753
2009-07-22 17:08:01 +00:00
Douglas Gregor
9b5f9cd2f7
Make sure install Clang headers when building clang-cc
...
llvm-svn: 74163
2009-06-25 05:07:31 +00:00
Douglas Gregor
274a6b4f2d
Update Clang to include the InitializeAllTargets and
...
InitializeAllAsmPrinters LLVM headers. Also includes some minor fixes
for the CMake-based build with Xcode.
llvm-svn: 73544
2009-06-16 20:13:51 +00:00
Eli Friedman
9d79bdaaad
Following gcc, hide the hack to include the SSE2 intrinsics from
...
xmmintrin.h in an ifdef.
llvm-svn: 73200
2009-06-11 18:50:02 +00:00
Eli Friedman
e9ff191459
Remove a few more vector builtins.
...
llvm-svn: 73022
2009-06-07 09:32:56 +00:00
Daniel Dunbar
fcec758f4e
xmmintrin needs to include emmintrin, Darwin system headers seem to depend on it
...
defining m128[id], at least.
llvm-svn: 73021
2009-06-07 08:33:23 +00:00
Eli Friedman
5a996fc0fc
Now that LLVM CodeGen can handle the generic variations a bit better,
...
get rid of a few more clang vector builtins.
llvm-svn: 73015
2009-06-07 07:12:56 +00:00
Douglas Gregor
e183993ffa
CMake: Install Clang's headers into the right place in the build tree, for regression testing
...
llvm-svn: 73014
2009-06-07 07:09:23 +00:00
Eli Friedman
4d8d7d3263
Replace more calls to builtins with generic code.
...
llvm-svn: 72995
2009-06-06 08:08:06 +00:00
Eli Friedman
f5f303f92f
Fix obvious typo.
...
llvm-svn: 72994
2009-06-06 07:42:17 +00:00
Eli Friedman
d00fd2885e
Fix some casts to work without -flax-vector-conversions.
...
llvm-svn: 72981
2009-06-06 03:45:06 +00:00
Eli Friedman
ebd9314f32
Misc fixes to MMX/SSE intrinsics: a few small bug fixes, and getting rid
...
of calls to builtins for constructs which can be expressed directly.
llvm-svn: 72979
2009-06-06 02:13:04 +00:00
Eli Friedman
f83c258eae
Add aliases for a couple of SSE intrinsics. Patch by Ed Schouten.
...
llvm-svn: 72717
2009-06-02 05:55:48 +00:00
Anders Carlsson
2081200b8c
Add 'cmp' SSE builtins and get rid of a bunch of other builtins.
...
llvm-svn: 72032
2009-05-18 19:16:46 +00:00
Eli Friedman
7df3447c10
Fix for PR3841: follow gcc's example and fall back to the system
...
stdint.h unless we are freestanding.
Any suggestions here are welcome.
llvm-svn: 70806
2009-05-03 23:00:48 +00:00
Anders Carlsson
9603143c5d
Fix tyop in SSSE3 header (6808876).
...
llvm-svn: 69623
2009-04-20 20:31:10 +00:00
Chris Lattner
61639745b6
glibc plays some weird games with multiple different definitions of
...
int8_t and games it with strange *_defined macros. Emulate its weirdness
for better compatibility with linux etc. Problem pointed out by anders
johnson.
llvm-svn: 69458
2009-04-18 19:11:11 +00:00
Chris Lattner
ff8a9e6ee4
fix misspelt attribute.
...
llvm-svn: 69362
2009-04-17 17:55:23 +00:00
Chris Lattner
33d840cc8f
define __va_copy unconditionally, but va_copy only in c99 or non-ansi mode.
...
Fixes rdar://6759546, some code that actually used __va_copy because they
thought it was "more portable".
llvm-svn: 68503
2009-04-07 05:12:42 +00:00
Anders Carlsson
57640939c2
Fix typo.
...
llvm-svn: 68466
2009-04-06 21:55:22 +00:00
Chris Lattner
f16f90b4fd
add support for the LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX limits.h GNU extensions.
...
rdar://6740292
llvm-svn: 68169
2009-04-01 00:44:37 +00:00
Daniel Dunbar
2e8536cfaa
Only intptr_t is protected by __intptr_t_defined.
...
llvm-svn: 67018
2009-03-15 03:16:47 +00:00
Chris Lattner
5a5194fec3
fix inverted conditional, rdar://6633188
...
llvm-svn: 65704
2009-02-28 18:53:33 +00:00
Daniel Dunbar
3283ff5088
Put compiler headers in <prefix>/lib/clang/1.0/include (vs
...
<prefix>/Headers, gross).
llvm-svn: 65247
2009-02-21 20:52:41 +00:00
Howard Hinnant
9c788c081c
testing (reverted)
...
llvm-svn: 64991
2009-02-19 00:27:58 +00:00
Howard Hinnant
2d12fbdc2e
testing
...
llvm-svn: 64990
2009-02-19 00:25:33 +00:00
Douglas Gregor
ac3865c387
Remove pointless backslash
...
llvm-svn: 64965
2009-02-18 22:24:55 +00:00
Douglas Gregor
c5c0488338
Add an unavailable __tg_promote function to attract incorrect uses of type-generic macros, rom Howard Hinnant.
...
llvm-svn: 64919
2009-02-18 17:23:05 +00:00
Chris Lattner
abbd427cd0
initial reimplement tgmath.h, written by Howard Hinnant!
...
llvm-svn: 64826
2009-02-17 22:14:32 +00:00
Daniel Dunbar
c9feeb54a5
Spell __always_inline__ correctly.
...
llvm-svn: 64757
2009-02-17 07:57:58 +00:00
Anders Carlsson
b317efdf81
Add SSSE3 header
...
llvm-svn: 64735
2009-02-17 03:05:04 +00:00
Chris Lattner
325dec7343
remove dead macros
...
llvm-svn: 64725
2009-02-17 02:42:31 +00:00
Chris Lattner
2ca19c7ee7
explicitly cast integers to double. This a) silences any
...
possible future "data loss" warnings, and b) makes it intensely
obvious to the user what the impl of these functions do in a
ambiguity error.
llvm-svn: 64724
2009-02-17 02:41:36 +00:00
Chris Lattner
0021110773
asin support. No we don't care about complex int :)
...
llvm-svn: 64723
2009-02-17 02:37:35 +00:00
Chris Lattner
dd0c64b102
hand macro expand this to make "candidate" set printing more useful. However,
...
Now no candidates are printed because the 'notes' are in a system header. :(
#include <tgmath-sofar.h>
double foo2(short *x) {
return acos(x);
}
t.c:10:10: error: no matching function for call to '__tg_acos'; candidates are:
return acos(x);
^~~~
1 diagnostic generated.
llvm-svn: 64722
2009-02-17 02:30:54 +00:00
Chris Lattner
bde5bd46b3
add support for integers to tgmath functions. I apparently need to provide
...
all the integer types other than char/short to avoid overload ambiguities.
llvm-svn: 64721
2009-02-17 02:22:33 +00:00
Chris Lattner
4e843feddc
start converting over to attr(overloadable). Unfortunately, this
...
produces really horrible diagnostics when overload ambiguities
happen:
t.c:10:10: error: call to '__tg_acos' is ambiguous; candidates are:
return acos(x);
^~~~
In file included from t.c:1:
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
A possible fix is to just not use macros for this, which I'll probably go for,
but it would be nice to emit the type at the call, so we know what we asked for!
llvm-svn: 64720
2009-02-17 02:14:31 +00:00
Mike Stump
eff0cc98cf
Fix 80col violations.
...
llvm-svn: 64559
2009-02-14 18:02:21 +00:00
Anders Carlsson
11352f9d63
Fix more xmmintrin.h typos
...
llvm-svn: 64537
2009-02-14 04:01:38 +00:00
Anders Carlsson
30c22d86e8
Fix an error in _mm_loaddup_pd that Eli noticed.
...
llvm-svn: 64522
2009-02-14 01:06:58 +00:00
Anders Carlsson
823c02eaab
Add the nodebug attribute to intrinsics
...
llvm-svn: 64519
2009-02-14 01:00:11 +00:00
Chris Lattner
39bb0182bd
anders johnson points out that some software depends on the
...
definition of __intptr_t_defined when stdint.h defines intptr_t.
llvm-svn: 64497
2009-02-13 22:43:13 +00:00
Chris Lattner
7e4c81c8c6
Give TargetInfo a new IntPtrType to hold the intptr_t type for
...
a target.
Make Preprocessor.cpp define a new __INTPTR_TYPE__ macro based on this.
On linux/32, set intptr_t to int, instead of long. This fixes PR3563.
llvm-svn: 64495
2009-02-13 22:28:55 +00:00
Mike Stump
5b31ed3ff0
80col.
...
llvm-svn: 64450
2009-02-13 14:24:50 +00:00
Mike Stump
6b63074de9
Fix limits.h for linux, as glibc does a #include_next unless
...
_GCC_LIMITS_H_ is defined, when __GNUC__ is defined.
Also, we need to stay away from possible conflicts with header guards.
We should use CLANG_ to prefix all header guards.
llvm-svn: 64408
2009-02-12 23:06:31 +00:00
Anders Carlsson
d0d8c540ca
Add pmmintrin.h header.
...
llvm-svn: 64291
2009-02-11 06:39:50 +00:00
Anders Carlsson
5bc94e625b
Fix some mistakes I made when I tried to decipher the Intel documentation of the MXCSR register
...
llvm-svn: 64290
2009-02-11 06:29:32 +00:00
Anders Carlsson
7325b61e74
Fix an #ifndef that should be an #ifdef instead.
...
llvm-svn: 64206
2009-02-10 06:18:19 +00:00
Chris Lattner
4293c8935a
C++ really shouldn't check these #defines, thanks to Howard
...
for pointing this out!
llvm-svn: 64037
2009-02-07 22:21:31 +00:00
Chris Lattner
6726d42059
remove two eroneous suffixes, these promote to int. Thanks to Neil
...
for pointing this out.
llvm-svn: 64011
2009-02-07 08:49:37 +00:00
Chris Lattner
04441a10a5
add note, weirdness.
...
llvm-svn: 64010
2009-02-07 07:13:51 +00:00
Chris Lattner
a7cc1267cf
fix some missing parens, thanks for Eli's review!
...
Obviously I make a miserable header developer :)
llvm-svn: 64009
2009-02-07 06:42:04 +00:00
Chris Lattner
14bc3528f5
fix a typo that Sebastian noticed!
...
llvm-svn: 64008
2009-02-07 06:38:41 +00:00
Chris Lattner
5455db4273
make sure that UINTMAX_MAX has an unsigned type. This assumes that
...
uintmax_t is unsigned long long, which is not optimal, but is assumed
elsewhere already.
llvm-svn: 64007
2009-02-07 06:38:06 +00:00
Chris Lattner
6bda45cec0
make various MAX/MIN constants be preprocessor constants, not C constants.
...
Thanks to Eli for pointing this out.
llvm-svn: 64006
2009-02-07 06:33:44 +00:00
Chris Lattner
19179ad680
start of tgmath, yuck.
...
llvm-svn: 63990
2009-02-07 00:47:29 +00:00
Chris Lattner
01af63beb4
Apparently it is important to define intptr_t and uintptr_t to
...
long instead of int. This is because system heaers like to redefine
typedefs and that is an error if they don't exactly match. Use long
for intptr_t on all systems where long is the right size.
llvm-svn: 63984
2009-02-07 00:23:17 +00:00
Sebastian Redl
ad41b83816
Fix some errors in the new stdint.h.
...
llvm-svn: 63982
2009-02-06 23:57:52 +00:00
Chris Lattner
6fbf3a07bc
only define MB_LEN_MAX if the system <limits.h> doesn't.
...
don't typecast CHAR_MIN to char, this makes it not a PP constant
and gives it the wrong unpromoted type. Thanks to Sebastian for
pointing this out!
llvm-svn: 63980
2009-02-06 23:29:39 +00:00
Chris Lattner
404c2fb9cc
add a stdint.h header.
...
llvm-svn: 63977
2009-02-06 22:59:47 +00:00
Chris Lattner
0b0cfbcb62
correct description
...
llvm-svn: 63947
2009-02-06 18:45:59 +00:00
Chris Lattner
1cee17aa5f
first hack at limits.h
...
llvm-svn: 63945
2009-02-06 18:34:27 +00:00
Mike Stump
f7444aa8df
Avoid creating .dir files in the installation area.
...
llvm-svn: 62744
2009-01-22 02:53:03 +00:00
Anders Carlsson
43c2bab6d3
Fix more bugs I discovered
...
llvm-svn: 62656
2009-01-21 01:49:39 +00:00
Anders Carlsson
7322ea25a5
Fix some errors I noticed
...
llvm-svn: 62620
2009-01-20 21:51:44 +00:00
Anders Carlsson
bfd47a3c00
Add mm_malloc.h, patch by Sam Weinig.
...
llvm-svn: 61954
2009-01-08 23:30:09 +00:00
Anders Carlsson
f562b39e80
Add a MS specific intrinsic.
...
llvm-svn: 61446
2008-12-27 04:26:15 +00:00
Anders Carlsson
a7e0e61b9d
Eli noticed that I had forgotten some #defines. Add them.
...
llvm-svn: 61445
2008-12-26 22:49:10 +00:00
Anders Carlsson
70f8da06d3
Add float.h header. Eli, please review :)
...
llvm-svn: 61444
2008-12-26 17:10:18 +00:00
Anders Carlsson
88b53663fb
Fix implementation of _mm_pause.
...
llvm-svn: 61441
2008-12-26 02:22:10 +00:00
Anders Carlsson
19ef5d49d4
OK, all tests pass. Let's start using the SSE2 header
...
llvm-svn: 61440
2008-12-26 00:57:11 +00:00
Anders Carlsson
37ba1a5927
Fix formatting
...
llvm-svn: 61435
2008-12-26 00:50:47 +00:00
Anders Carlsson
37c2371a88
Add _mm_pause and _MM_SHUFFLE
...
llvm-svn: 61434
2008-12-26 00:49:43 +00:00
Anders Carlsson
85eb1247a3
More SSE2 intrinsics
...
llvm-svn: 61433
2008-12-26 00:45:50 +00:00
Anders Carlsson
a0d5ca2773
More SSE2 intrinsics
...
llvm-svn: 61432
2008-12-25 23:48:58 +00:00
Anders Carlsson
51beccbd0b
Make _mm_add_si64 inlined
...
llvm-svn: 61428
2008-12-25 07:07:08 +00:00
Anders Carlsson
a283f91a67
Add integer arithmetic intrinsics
...
llvm-svn: 61412
2008-12-24 02:41:00 +00:00
Anders Carlsson
b08ac0b2b0
Add store/set/load intrisics
...
llvm-svn: 61411
2008-12-24 02:11:54 +00:00
Anders Carlsson
f15e71d170
Start implementing some SSE2 instructions
...
llvm-svn: 61410
2008-12-24 01:45:22 +00:00