Evan Cheng
68b885f50c
Added __builtin_ia32_storelv4si, __builtin_ia32_movqv4si,
...
__builtin_ia32_loadlv4si, __builtin_ia32_loaddqu, __builtin_ia32_storedqu.
llvm-svn: 27599
2006-04-11 22:28:25 +00:00
Nate Begeman
ccd6ea1913
Fix SingleSource/UnitTests/Vector/sumarray-dbl
...
llvm-svn: 27594
2006-04-11 19:44:43 +00:00
Nate Begeman
786d44f822
Fix PR727, correctly handling large stack aligments on ppc
...
llvm-svn: 27593
2006-04-11 19:29:21 +00:00
Chris Lattner
0e63e916b3
we have a shuffle instr, add an example.
...
llvm-svn: 27592
2006-04-11 18:47:03 +00:00
Evan Cheng
c0848b1eaf
gcc lower SSE prefetch into generic prefetch intrinsic. Need to add support
...
later.
llvm-svn: 27591
2006-04-11 18:04:57 +00:00
Evan Cheng
7a9fca11b5
Misc. intrinsics.
...
llvm-svn: 27590
2006-04-11 17:35:57 +00:00
Jim Laskey
1e0cbe4158
Suppress debug label when not debug.
...
llvm-svn: 27588
2006-04-11 08:11:53 +00:00
Evan Cheng
798acd4094
movnt* and maskmovdqu intrinsics
...
llvm-svn: 27587
2006-04-11 06:57:30 +00:00
Evan Cheng
be9f313cd8
Only get Tmp2 for cases where number of operands is > 1. Fixed return void.
...
llvm-svn: 27586
2006-04-11 06:33:39 +00:00
Chris Lattner
651f0655d0
add some todos
...
llvm-svn: 27580
2006-04-11 02:00:08 +00:00
Chris Lattner
e12152a64b
Vector function results go into V2 according to GCC. The darwin ABI doc
...
doesn't say where they go :-/
llvm-svn: 27579
2006-04-11 01:38:39 +00:00
Chris Lattner
d02e72ffc3
Add basic support for legalizing returns of vectors
...
llvm-svn: 27578
2006-04-11 01:31:51 +00:00
Chris Lattner
5d1acb831a
Move some return-handling code from lowerarguments to the ISD::RET handling stuff.
...
No functionality change.
llvm-svn: 27577
2006-04-11 01:21:43 +00:00
Evan Cheng
da283be867
Added support for _mm_move_ss and _mm_move_sd.
...
llvm-svn: 27575
2006-04-11 00:19:04 +00:00
Jim Laskey
54dc261ef6
Use existing information.
...
llvm-svn: 27574
2006-04-10 23:09:19 +00:00
Chris Lattner
ec4fbd3b41
Implement vec_shuffle.ll:test3
...
llvm-svn: 27573
2006-04-10 23:06:36 +00:00
Chris Lattner
42be18f65f
Implement InstCombine/vec_shuffle.ll:test[12]
...
llvm-svn: 27571
2006-04-10 22:45:52 +00:00
Evan Cheng
b7ccf3b282
Remove some bogus patterns; clean up.
...
llvm-svn: 27569
2006-04-10 22:35:16 +00:00
Chris Lattner
2879e2222e
add a note
...
llvm-svn: 27567
2006-04-10 21:51:03 +00:00
Evan Cheng
34dd1c80dd
Remove an entry that is now done.
...
llvm-svn: 27565
2006-04-10 21:42:57 +00:00
Evan Cheng
983d251e3d
Added some missing shuffle patterns.
...
llvm-svn: 27564
2006-04-10 21:42:19 +00:00
Evan Cheng
255a990223
Correct an entry
...
llvm-svn: 27563
2006-04-10 21:41:39 +00:00
Evan Cheng
352e751a9e
movups / movupd
...
llvm-svn: 27562
2006-04-10 21:11:06 +00:00
Andrew Lenharth
b3f434b83d
Add a simple pass to make sure that all (non-library) calls to malloc and free
...
are visible to analysis as intrinsics. That is, make sure someone doesn't pass
free around by address in some struct (as happens in say 176.gcc).
This doesn't get rid of any indirect calls, just ensure calls to free and malloc
are always direct.
llvm-svn: 27560
2006-04-10 19:26:09 +00:00
Evan Cheng
d333e6853c
Missing break
...
llvm-svn: 27559
2006-04-10 18:54:36 +00:00
Evan Cheng
2b6c899eb2
Conditional move of vector types.
...
llvm-svn: 27556
2006-04-10 07:23:14 +00:00
Evan Cheng
5326565791
New entries
...
llvm-svn: 27555
2006-04-10 07:22:03 +00:00
Evan Cheng
4f357911ad
Use movaps to do VR128 reg-to-reg copies for now. It's shorter and available for SSE1.
...
llvm-svn: 27554
2006-04-10 07:21:31 +00:00
Chris Lattner
3c6e4a1dc9
properly mark vector selects as expanded to select_cc
...
llvm-svn: 27544
2006-04-08 22:59:15 +00:00
Chris Lattner
2ffa288a23
Add VRRC select support
...
llvm-svn: 27543
2006-04-08 22:45:08 +00:00
Chris Lattner
2c57f7285e
Add code generator support for VSELECT
...
llvm-svn: 27542
2006-04-08 22:22:57 +00:00
Nate Begeman
6cdc599d05
Disable switch lowering for targets based on the selection dag isel,
...
letting the code generator handle them directly.
llvm-svn: 27539
2006-04-08 19:46:55 +00:00
Chris Lattner
8234bfe18e
Implement PowerPC/CodeGen/vec_splat.ll:spltish to use vsplish instead of a
...
constant pool load.
llvm-svn: 27538
2006-04-08 07:14:26 +00:00
Chris Lattner
e8defcff7d
Change the interface to the predicate that determines if vsplti* can be used.
...
No functionality changes.
llvm-svn: 27536
2006-04-08 06:46:53 +00:00
Reid Spencer
ba94a925b9
Initialize SDOperand values because the gcc 4.0.2 compiler complains about
...
them.
llvm-svn: 27534
2006-04-08 05:38:03 +00:00
Chris Lattner
9e4a289fae
Canonicalize vvector_shuffle(x,x) -> vvector_shuffle(x,undef) to enable patterns
...
to match again :)
llvm-svn: 27533
2006-04-08 05:34:25 +00:00
Chris Lattner
375b72b0a0
Add constant replacement for insertelement/vectorshuffle constant exprs
...
llvm-svn: 27532
2006-04-08 05:09:48 +00:00
Chris Lattner
fc546e1780
Codegen shufflevector as VVECTOR_SHUFFLE
...
llvm-svn: 27529
2006-04-08 04:15:24 +00:00
Chris Lattner
12c1bd4cbc
add a sanity check: LegalizeOp should return a value that is the same type
...
as its input.
llvm-svn: 27528
2006-04-08 04:13:17 +00:00
Chris Lattner
92c219136f
use isValidOperands instead of duplicating checks
...
llvm-svn: 27527
2006-04-08 04:09:19 +00:00
Chris Lattner
254a66e29a
Regenerate
...
llvm-svn: 27526
2006-04-08 04:09:02 +00:00
Chris Lattner
a637f981d7
Use isValidOperands instead of duplicating or eliding checks.
...
llvm-svn: 27525
2006-04-08 04:08:32 +00:00
Chris Lattner
73fc98fdeb
Use the isValidOperands helper instead of duplicating checking code
...
llvm-svn: 27524
2006-04-08 04:07:52 +00:00
Chris Lattner
6610c8ac0c
Add methods to check insertelement/extractelement instructions for validity,
...
check validity when instructions are created.
llvm-svn: 27523
2006-04-08 04:05:48 +00:00
Chris Lattner
03ffb7f3a9
regenerate
...
llvm-svn: 27521
2006-04-08 03:55:17 +00:00
Chris Lattner
6be33112a7
Add insertelement and shufflevector constantexpr support
...
llvm-svn: 27520
2006-04-08 03:53:34 +00:00
Evan Cheng
375bec1961
INSERT_VECTOR_ELT lowering bug:
...
store vector to $esp
store element to $esp + sizeof(VT) * index
load vector from $esp
The bug is VT is the type of the vector element, not the type of the vector!
llvm-svn: 27517
2006-04-08 01:46:37 +00:00
Chris Lattner
c84c3d7c32
Add shufflevector support
...
llvm-svn: 27515
2006-04-08 01:19:47 +00:00
Chris Lattner
234481e1ba
Stub out shufflevector
...
llvm-svn: 27514
2006-04-08 01:19:25 +00:00
Chris Lattner
a0a718c0cc
Add supprot for shufflevector
...
llvm-svn: 27513
2006-04-08 01:19:12 +00:00