Chris Lattner
3f0b7ff39f
add average intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27416 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 23:14:00 +00:00
Chris Lattner
8d1aa57429
add average intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27415 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 23:13:21 +00:00
Chris Lattner
298b684229
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27414 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 22:43:55 +00:00
Chris Lattner
098e699f21
Fix some broken logic that would cause us to codegen {2147483647,2147483647,2147483647,2147483647} as 'vspltisb v0, -1'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27413 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 22:28:35 +00:00
Evan Cheng
ff65e38aaf
Added pslldq and psrldq.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27412 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 21:49:39 +00:00
Evan Cheng
f01cf60ed7
Added intrinsics to match __builtin_ia32_pslldqi128 and
...
__builtin_ia32_psrldqi128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27411 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 21:48:31 +00:00
Evan Cheng
8703be4ab6
Minor fixes + naming changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27410 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 19:12:30 +00:00
Chris Lattner
d1adbc09a9
How could this ever have worked?
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27409 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 19:05:42 +00:00
Evan Cheng
5333b7b8e2
PSHUF* encoding bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27405 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 18:40:36 +00:00
Chris Lattner
5cdf4bd55c
Make sure to consider alignment of variable sized objects.
...
This, along with the previous dag combiner fix, fixes
CodeGen/Alpha/2006-04-04-zextload.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27403 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:39:56 +00:00
Chris Lattner
e44be60ee9
Do not create ZEXTLOAD's unless we are before legalize or the operation is
...
legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27402 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:39:18 +00:00
Chris Lattner
cecc3ebcc8
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27401 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:38:31 +00:00
Chris Lattner
7ff7e67458
Ask legalize to promote all vector shuffles to be v16i8 instead of having to
...
handle all 4 PPC vector types. This simplifies the matching code and allows
us to eliminate a bunch of patterns. This also adds cases we were missing,
such as CodeGen/PowerPC/vec_splat.ll:splat_h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27400 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:25:31 +00:00
Chris Lattner
4352cc9e21
* Add supprot for SCALAR_TO_VECTOR operations where the input needs to be
...
promoted/expanded (e.g. SCALAR_TO_VECTOR from i8/i16 on PPC).
* Add support for targets to request that VECTOR_SHUFFLE nodes be promoted
to a canonical type, for example, we only want v16i8 shuffles on PPC.
* Move isShuffleLegal out of TLI into Legalize.
* Teach isShuffleLegal to allow shuffles that need to be promoted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27399 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:23:26 +00:00
Chris Lattner
c45420ddd2
Move isShuffleLegal from TLI to Legalize.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27398 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:21:22 +00:00
Chris Lattner
2ffc00a1d5
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27397 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 17:20:45 +00:00
Chris Lattner
1f239300d3
Signed shr by a constant is not the same as sdiv by 2^k
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27395 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 06:11:42 +00:00
Evan Cheng
21760460b9
cmpps / cmppd encoding bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27393 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 03:04:07 +00:00
Chris Lattner
12f859335c
Fix the types for these intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27392 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 01:40:06 +00:00
Chris Lattner
08da55eeff
Constant fold bitconvert(undef)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27391 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 01:02:22 +00:00
Chris Lattner
e6bfffbae2
Allow targets to have fine grained control over which types various ops get
...
promoted to, if they desire.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27389 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 00:25:10 +00:00
Evan Cheng
6e96740c6c
Compact some intrinsic definitions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27388 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 00:10:53 +00:00
Chris Lattner
684ad7702f
Plug in the byte and short splats
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27387 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 00:05:13 +00:00
Chris Lattner
b68314480d
Revert accidentally committed hunks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27386 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 23:58:04 +00:00
Chris Lattner
01cae0799d
Make sure to mark unsupported SCALAR_TO_VECTOR operations as expand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27385 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 23:55:43 +00:00
Evan Cheng
97ac5fadb7
Some SSE1 intrinsics: min, max, sqrt, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27384 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 23:49:17 +00:00
Chris Lattner
0aab36f5b2
revert previous patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27383 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 23:14:49 +00:00
Evan Cheng
20e3ed102b
Use movlpd to: store lower f64 extracted from v2f64.
...
Use movhpd to: store upper f64 extracted from v2f64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27382 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 22:30:54 +00:00
Chris Lattner
4f91a4c497
Force use of a frame-pointer if there is anything on the stack that is aligned
...
more than the OS keeps the stack aligned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27381 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 22:03:29 +00:00
Chris Lattner
4672f71ac4
The stack alignment is now computed dynamically, just verify it is correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27380 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 21:39:57 +00:00
Chris Lattner
7dca8e2d73
Remove unused method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27379 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 21:39:03 +00:00
Chris Lattner
208aa29feb
Keep track of max stack alignment as objects are added. Remove an obsolete method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27378 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 21:38:39 +00:00
Evan Cheng
11e15b38e9
- More efficient extract_vector_elt with shuffle and movss, movsd, movd, etc.
...
- Some bug fixes and naming inconsistency fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27377 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 20:53:28 +00:00
Chris Lattner
630ebaf1f2
Align vectors to the size in bytes, not bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27376 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 19:28:50 +00:00
Chris Lattner
97c2073270
Add a missing check, this fixes UnitTests/Vector/sumarray.c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27375 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 17:29:28 +00:00
Chris Lattner
a4c5d8c6b4
Add a missing check, which broke a bunch of vector tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27374 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 17:21:50 +00:00
Chris Lattner
03017c75c7
shrinkify intrinsics more by using some local classes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27373 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 17:20:06 +00:00
Chris Lattner
c461a51234
Add the full set of min/max instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27372 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 15:58:28 +00:00
Chris Lattner
846f7ce945
Add some classes to make it easier to define intrinsics. Add min/max intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27371 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 15:43:07 +00:00
Andrew Lenharth
f87e7931fd
support x * (c1 + c2) where c1 and c2 are pow2s. special case for c2 == 4
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27370 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 04:19:17 +00:00
Andrew Lenharth
87e021de4f
test powers of 2
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27369 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 04:14:39 +00:00
Andrew Lenharth
afe3f49815
mul by const conversion sequences. more coming soon
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27368 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 03:18:59 +00:00
Andrew Lenharth
cf4fb61f6c
back this out
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27367 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 03:16:50 +00:00
Andrew Lenharth
0fb79fa078
test some more mul by constant removal
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27366 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-03 03:16:09 +00:00
Andrew Lenharth
f80d2f61af
Make sure mul by constant 5 is turned into a s4addq
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27365 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 21:47:07 +00:00
Andrew Lenharth
50a0d426e8
This should be a win of every arch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27364 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 21:42:45 +00:00
Andrew Lenharth
ccd9f98bcb
This makes McCat/12-IOtest go 8x faster or so
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27363 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 21:08:39 +00:00
Andrew Lenharth
ed5d1afffb
This will be needed soon
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27362 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 20:13:57 +00:00
Reid Spencer
0c5f7931d9
For PR722:
...
Change the check for llvm-gcc from using LLVMGCCDIR to LLVMGCC. This checks
for the actual tool rather than the directory in which the tool resides. In
the case of this bug, it is possible that the directory exists but that the
tools in that directory do not. This fix should avoid the makefile from
erroneously proceeding without the actual tools being available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27361 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 14:34:26 +00:00
Chris Lattner
220d2b89d6
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27360 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 07:20:00 +00:00