| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 141293
|
|
|
|
|
|
| |
This is the first step towards splitting LLVM and Clang's tblgen executables.
llvm-svn: 140951
|
|
|
|
|
|
|
|
|
|
| |
It turns out that the use of "__extension__" in these macros was disabling
the expected "incompatible pointer" warnings, so these type checks were not
doing anything anyway. They introduced a serious bug by evaluating some
macro arguments twice, which is a big problem for arguments with side effects.
I'll have to find another way to get the right type checking. Radar 9947657.
llvm-svn: 137680
|
|
|
|
|
|
|
|
| |
Sorry, this was a bad idea. Within clang these builtins are in a separate
"ARM" namespace, but the actual builtin names should clearly distinguish that
they are target specific.
llvm-svn: 133832
|
|
|
|
| |
llvm-svn: 133825
|
|
|
|
|
|
|
| |
TableGen had diagnostic printers sprinkled about in a few places. Pull them
together into a single location in Error.cpp.
llvm-svn: 133568
|
|
|
|
|
|
| |
Radar 9558930.
llvm-svn: 132782
|
|
|
|
|
|
|
| |
This is needed so the front-end can see "aligned" attributes on the type
for the pointer arguments. Radar 9311427.
llvm-svn: 129964
|
|
|
|
| |
llvm-svn: 128591
|
|
|
|
|
|
| |
This was suggested by Edmund Grimley Evans in pr8411.
llvm-svn: 123043
|
|
|
|
| |
llvm-svn: 122015
|
|
|
|
|
|
|
| |
This isn't currently used for anything but I ran into it when experimenting
with some changes, and it might be useful in the future.
llvm-svn: 121911
|
|
|
|
|
|
| |
This is still a WIP. It's already good enough to expose a few bugs, though.
llvm-svn: 121868
|
|
|
|
|
|
|
|
|
|
|
| |
Some quad-register intrinsics with lane operands only take a double-register
operand for the vector containing the lane. The valid range of lane numbers
is then half as big as you would expect from the quad-register type.
Note: This currently has no effect because those intrinsics are now handled
entirely in the header file using __builtin_shufflevector, which does its own
range checking, but I want to use this for generating tests.
llvm-svn: 121867
|
|
|
|
| |
llvm-svn: 121469
|
|
|
|
| |
llvm-svn: 121395
|
|
|
|
|
|
|
|
|
| |
Remove the previous header. I don't think we need to expose to end users
that we use TableGen to produce our version of arm_neon.h, and that header
was also using doubleslash comments which could be a problem when using it
in strict C89 compilations.
llvm-svn: 121390
|
|
|
|
|
|
| |
so they can be implemented without separate clang builtins.
llvm-svn: 121299
|
|
|
|
| |
llvm-svn: 121287
|
|
|
|
| |
llvm-svn: 121286
|
|
|
|
| |
llvm-svn: 121276
|
|
|
|
|
|
| |
so they can be implemented without clang builtins.
llvm-svn: 121213
|
|
|
|
|
|
| |
so they can be implemented without clang builtins.
llvm-svn: 121209
|
|
|
|
|
|
| |
so they can be used in the implementations of other intrinsics.
llvm-svn: 121208
|
|
|
|
| |
llvm-svn: 121190
|
|
|
|
| |
llvm-svn: 121187
|
|
|
|
|
|
|
| |
so they can be implemented without requiring clang builtins.
Radar 8446238.
llvm-svn: 121173
|
|
|
|
|
|
|
|
| |
An OpReinterpret entry is handled by translating it to OpCast intrinsics for
all combinations of source and destination types with the same total size.
This will be used to generate all the vreinterpret intrinsics.
llvm-svn: 121087
|
|
|
|
| |
llvm-svn: 121086
|
|
|
|
| |
llvm-svn: 120891
|
|
|
|
|
|
| |
instead of just converting the record name to lowercase.
llvm-svn: 120809
|
|
|
|
| |
llvm-svn: 120764
|
|
|
|
|
|
|
|
| |
Intrinsics implemented with Clang builtins could already be implemented as
either inline functions or macros, but intrinsics implemented directly
(without builtins) could only be inline functions.
llvm-svn: 120763
|
|
|
|
|
|
|
| |
For most intrinsics, there is no need to allocate a temporary to hold the
result value; just return it directly.
llvm-svn: 120695
|
|
|
|
|
|
|
|
| |
Since we're casting them for the calls to the builtins, we need this to
make sure their types get checked in the same way they would if the intrinsics
were implemented as inline functions.
llvm-svn: 120693
|
|
|
|
|
|
|
| |
This is in preparation for adding assignments to temporaries to ensure
that the proper type checking is done.
llvm-svn: 120649
|
|
|
|
| |
llvm-svn: 120641
|
|
|
|
|
|
|
| |
The bitwise operations are always done with unsigned values, but the result may
be signed.
llvm-svn: 120640
|
|
|
|
| |
llvm-svn: 120639
|
|
|
|
|
|
| |
We should not rely on lax-vector-conversions for these intrinsics to work.
llvm-svn: 120638
|
|
|
|
| |
llvm-svn: 120632
|
|
|
|
| |
llvm-svn: 120631
|
|
|
|
|
|
| |
This avoids warnings with -Wvector-conversions. Radar 8228022.
llvm-svn: 120597
|
|
|
|
| |
llvm-svn: 120596
|
|
|
|
| |
llvm-svn: 120595
|
|
|
|
| |
llvm-svn: 120033
|
|
|
|
|
|
|
|
| |
This makes it symmetric with the 'u' modifier that forces an unsigned type.
This is needed for unsigned vector shifts, where the shift amount still needs
to be signed. PR8482 (Radar 8603521).
llvm-svn: 119742
|
|
|
|
| |
llvm-svn: 119406
|
|
|
|
| |
llvm-svn: 119405
|
|
|
|
|
|
| |
No functional change.
llvm-svn: 119404
|