Chandler Carruth
6994040a95
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
...
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-04 01:51:18 +00:00
Dale Johannesen
e713d9340a
long double patch 3 of N. Add to MVT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40793 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-03 20:51:37 +00:00
Christopher Lamb
1fcc4b2ba8
Add support for 3 element 32-bit vector ValueTypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40506 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-26 01:46:52 +00:00
Dan Gohman
6595cb3000
Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-27 16:08:04 +00:00
Dan Gohman
c56b9e9f55
Document the encoding of MVT::ValueType.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-27 15:28:26 +00:00
Dan Gohman
25aceacb29
Simplify the expression for MVT::isExtendedValueType.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37733 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 15:20:04 +00:00
Dan Gohman
798cb2ab82
Renumber the SimpleValueType values to fill in the hole left by
...
removing MVT::Vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37730 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 14:28:59 +00:00
Dan Gohman
7f32156bb9
Generalize MVT::ValueType and associated functions to be able to represent
...
extended vector types. Remove the special SDNode opcodes used for pre-legalize
vector operations, and the special MVT::Vector type used with them. Adjust
lowering and legalize to work with the normal SDNode kinds instead, and to
use the normal MVT functions to work with vector types instead of using the
two special operands that the pre-legalize nodes held.
This allows pre-legalize and post-legalize DAGs, and the code that operates
on them, to be more consistent. Pre-legalize vector operators can be handled
more consistently with scalar operators. And, -view-dag-combine1-dags and
-view-legalize-dags now look prettier for vector code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37719 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-25 16:23:39 +00:00
Dan Gohman
51eaa86758
Rename MVT::getVectorBaseType to MVT::getVectorElementType.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37579 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-14 22:58:02 +00:00
Chris Lattner
bb58b9c3c0
add a way to make this less brittle
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36528 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 05:38:52 +00:00
Christopher Lamb
df1349546f
Fix bug in isFloatingPoint()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36381 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 22:50:40 +00:00
Reid Spencer
86a5a368f8
For PR1297:
...
Add an "iAny" ValueType as a place holder for an integer type of any
bit width. This is used for intrinsics overloading on integer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35538 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 07:17:45 +00:00
Chris Lattner
2df6dc579c
add a method to turn a type into a VT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35526 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-31 04:03:02 +00:00
Chris Lattner
0d3988f408
add a valuetype for v1i64, which is needed by mmx.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35298 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 17:36:26 +00:00
Chris Lattner
08e682ecf4
Move MVT::getVectorType out of line, it is large and shouldn't be inlined.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29195 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-19 00:40:45 +00:00
Reid Spencer
19b7e0e0ca
For PR786:
...
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28453 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24 19:21:13 +00:00
Evan Cheng
78b9ec3820
getVectorTyppe(MVT::i64, 2) ==> MVT::v2i64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27207 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-28 01:59:17 +00:00
Chris Lattner
e1562c82ca
add a new iPTR ValueType for tblgen use
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27187 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27 22:48:00 +00:00
Chris Lattner
78fca69532
Add another helper
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26881 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-20 00:20:30 +00:00
Chris Lattner
074ad68d5a
Add a helper method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26878 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-19 23:41:32 +00:00
Chris Lattner
210721aecc
improve comments, add a new MVT::getVectorBaseType method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26855 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-19 05:26:45 +00:00
Chris Lattner
804d995f99
Add markers for the first and last vector value type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26796 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-16 19:42:44 +00:00
Chris Lattner
378fdf29b1
update comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26491 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03 01:55:49 +00:00
Evan Cheng
70695ab626
- Added v2f32, not used by any target currently. Only for testing purpose.
...
- Minor bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26433 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-01 00:55:26 +00:00
Chris Lattner
410354fe0c
Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.
...
Patch by Martin Partel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26313 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-22 16:23:43 +00:00
Evan Cheng
aea20f50e5
Added x86 integer vector types: 64-bit packed byte integer (v16i8), 64-bit
...
packed word integer (v8i16), and 64-bit packed doubleword integer (v2i32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26294 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-20 22:34:53 +00:00
Chris Lattner
5819342732
Add some happy helper methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26046 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 02:05:45 +00:00
Nate Begeman
a08787faa8
add support for generating v4i32 code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25043 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-30 00:09:56 +00:00
Nate Begeman
f43a3ca26d
First chunk of actually generating vector code for packed types. These
...
changes allow us to generate the following code:
_foo:
li r2, 0
lvx v0, r2, r3
vaddfp v0, v0, v0
stvx v0, r2, r3
blr
for this llvm:
void %foo(<4 x float>* %a) {
entry:
%tmp1 = load <4 x float>* %a
%tmp2 = add <4 x float> %tmp1, %tmp1
store <4 x float> %tmp2, <4 x float>* %a
ret void
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24534 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 08:22:07 +00:00
Nate Begeman
6a648614e8
Add the majority of the vector machien value types we expect to support,
...
and make a few changes to the legalization machinery to support more than
16 types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24511 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-29 05:45:29 +00:00
Nate Begeman
395cba8d41
Teach the type lowering code about turning packed types into vector types.
...
Next step: generating vector dag nodes, and legalizing them into scalar
code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24404 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-17 21:44:42 +00:00
Chris Lattner
a64d4cddf5
add an enum value
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23048 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 17:07:09 +00:00
Misha Brukman
ea61c35872
Remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 20:39:54 +00:00
Chris Lattner
3e68b41872
Add some helper methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19570 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-15 06:52:18 +00:00
Chris Lattner
13259f8b0f
Add required #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19302 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-06 03:25:27 +00:00
Chris Lattner
15afefbe94
Add a useful method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19301 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-06 03:23:59 +00:00
Chris Lattner
b66144c1e1
Add a list end sentinal
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19299 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-05 22:14:14 +00:00
Chris Lattner
fd1cbc095a
Add two helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19208 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 15:58:41 +00:00
Brian Gaeke
d0fde30ce8
Put all LLVM code into the llvm namespace, as per bug 109.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
John Criswell
6fbcc26f14
Added LLVM copyright header (for lack of a better term).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:19:47 +00:00
Chris Lattner
3314d8d656
There was no reason for these to be bit-fields, they just need to be unique.
...
Also, add an isVoid item
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7659 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 00:17:00 +00:00
Chris Lattner
38dbde19cc
Fix copy and paste-o
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7378 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 05:15:44 +00:00
Chris Lattner
ad5e1f8153
Define target value types in a form usable by target-independent code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 05:13:09 +00:00