Commit Graph

24280 Commits

Author SHA1 Message Date
Evan Cheng
72cd9a9439 Handle v2i64 BUILD_VECTOR custom lowering correctly. v2i64 is a legal type,
but i64 is not. If possible, change a i64 op to a f64 (e.g. load, constant)
and then cast it back.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27849 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 00:11:39 +00:00
Reid Spencer
1014ab4470 Allow OpenBSD to be recognized as a UNIX platform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27848 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 23:47:16 +00:00
Evan Cheng
94fe5eb14a isSplatMask() bug: first element can be an undef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27847 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 23:28:59 +00:00
Chris Lattner
89a1b380a4 Simplify some code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27846 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 23:17:50 +00:00
Evan Cheng
80d428c370 - Added support to do aribitrary 4 wide shuffle with no more than three
instructions.
- Fixed a commute vector_shuff bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27845 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 22:48:17 +00:00
Evan Cheng
fd111b5be5 Prefer {p}unpack* and mov*dup over {p}shuf* as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27844 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 21:15:24 +00:00
Evan Cheng
f5e1dc278b Renamed AddedCost to AddedComplexity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27843 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 20:38:28 +00:00
Evan Cheng
2dadaea5d2 - Renamed AddedCost to AddedComplexity.
- Added more movhlps and movlhps patterns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27842 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 20:37:34 +00:00
Evan Cheng
c81d2a041d Rename AddedCost to AddedComplexity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27841 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 20:36:09 +00:00
Evan Cheng
533a0aa9ba Commute vector_shuffle to match more movlhps, movlp{s|d} cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27840 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 20:35:22 +00:00
Chris Lattner
3a00a3e573 Final piece to get relinked .o files buildable universal on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27839 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:45:29 +00:00
Chris Lattner
b6f93411e0 Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27838 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:38:19 +00:00
Chris Lattner
806103de15 When on darwin, compiler_flags need to be percolated down to the 'gcc -r'
command line so that relinked .o files can be built universal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27837 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:34:41 +00:00
Evan Cheng
f66a094cac More mov{h|l}p{d|s} patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27836 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:20:17 +00:00
Evan Cheng
cc0e98c8ed - More mov{h|l}ps patterns.
- Increase cost (complexity) of patterns which match mov{h|l}ps ops. These
  are preferred over shufps in most cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27835 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:11:52 +00:00
Evan Cheng
5941320c0d Allow "let AddedCost = n in" to increase pattern complexity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27834 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 18:07:24 +00:00
Chris Lattner
0c760dc224 Alpha too!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27833 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 17:20:48 +00:00
Chris Lattner
8cc5ffb27f add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27832 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 16:22:38 +00:00
Andrew Lenharth
9df47b5928 Another simple case type merge case to try
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27831 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:34:34 +00:00
Andrew Lenharth
613926904f deal with memchr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:34:02 +00:00
Andrew Lenharth
5e091f3e32 friendlier error message
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27829 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:33:35 +00:00
Chris Lattner
bf9b3716ed add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27828 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 05:55:06 +00:00
Chris Lattner
ff5cdc2ccd Add a note.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27827 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 05:53:27 +00:00
Chris Lattner
f4b575b381 grammaro
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27826 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 04:21:57 +00:00
Chris Lattner
657408b4f3 Fix a bug owen noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27825 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 04:21:16 +00:00
Chris Lattner
cf797e9205 Change wording
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27824 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 04:12:01 +00:00
Chris Lattner
c71173a2f7 add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27823 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 04:05:21 +00:00
Chris Lattner
1c1a85c659 add some more notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27822 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 04:02:47 +00:00
Andrew Lenharth
92e2196f0b stupid stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27821 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 03:45:25 +00:00
Andrew Lenharth
0cafa92371 fix printing call graphs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27820 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 23:45:19 +00:00
Andrew Lenharth
1c212dec24 I understand now. Shoot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27819 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 22:36:11 +00:00
Evan Cheng
f0d4e3d7c0 - PEXTRW cannot take a memory location as its first source operand.
- PINSRWrmi encoding bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27818 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:59:43 +00:00
Evan Cheng
f463f51161 SHUFP{S|D}, PSHUF* encoding bugs. Left out the mask immediate operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27817 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:56:36 +00:00
Evan Cheng
b7a5c527ae Name change for clarity sake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27816 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:55:35 +00:00
Evan Cheng
a52b214f56 Encoding bug: CMPPSrmi, CMPPDrmi dropped operand 2 (condtion immediate).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27815 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:31:08 +00:00
Evan Cheng
7b7bd57abd Name change for clarity sake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27814 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:29:50 +00:00
Evan Cheng
fb2a3b2964 Left a pattern out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27813 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 21:29:08 +00:00
Andrew Lenharth
a544266db7 llvm.memc* improvements. helps PA a lot in some specmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27812 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 20:59:52 +00:00
Andrew Lenharth
2dbf23afb4 llvm.memc* improvements. helps PA a lot in some specmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27811 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 19:54:11 +00:00
Chris Lattner
80f362a48f These are correctly encoded by the JIT. I checked :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27810 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 19:03:38 +00:00
Chris Lattner
87140126e8 add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27809 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 18:30:19 +00:00
Chris Lattner
0090120c2b Fix a crash on:
void foo2(vector float *A, vector float *B) {
  vector float C = (vector float)vec_cmpeq(*A, *B);
  if (!vec_any_eq(*A, *B))
    *B = (vector float){0,0,0,0};
  *A = C;
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27808 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 18:28:22 +00:00
Evan Cheng
df2a1908b2 Fixed an encoding bug: movd from XMM to R32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27807 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 18:19:00 +00:00
Chris Lattner
f70f8d91a7 pretty print node name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27806 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 18:05:58 +00:00
Chris Lattner
90564f26d1 Implement an important entry from README_ALTIVEC:
If an altivec predicate compare is used immediately by a branch, don't
use a (serializing) MFCR instruction to read the CR6 register, which requires
a compare to get it back to CR's.  Instead, just branch on CR6 directly. :)

For example, for:
void foo2(vector float *A, vector float *B) {
  if (!vec_any_eq(*A, *B))
    *B = (vector float){0,0,0,0};
}

We now generate:

_foo2:
        mfspr r2, 256
        oris r5, r2, 12288
        mtspr 256, r5
        lvx v2, 0, r4
        lvx v3, 0, r3
        vcmpeqfp. v2, v3, v2
        bne cr6, LBB1_2 ; UnifiedReturnBlock
LBB1_1: ; cond_true
        vxor v2, v2, v2
        stvx v2, 0, r4
        mtspr 256, r2
        blr
LBB1_2: ; UnifiedReturnBlock
        mtspr 256, r2
        blr

instead of:

_foo2:
        mfspr r2, 256
        oris r5, r2, 12288
        mtspr 256, r5
        lvx v2, 0, r4
        lvx v3, 0, r3
        vcmpeqfp. v2, v3, v2
        mfcr r3, 2
        rlwinm r3, r3, 27, 31, 31
        cmpwi cr0, r3, 0
        beq cr0, LBB1_2 ; UnifiedReturnBlock
LBB1_1: ; cond_true
        vxor v2, v2, v2
        stvx v2, 0, r4
        mtspr 256, r2
        blr
LBB1_2: ; UnifiedReturnBlock
        mtspr 256, r2
        blr

This implements CodeGen/PowerPC/vec_br_cmp.ll.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27804 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 17:59:36 +00:00
Chris Lattner
99590420de new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27803 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 17:56:30 +00:00
Chris Lattner
3be29059ab move some stuff around, clean things up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27802 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 17:52:36 +00:00
Chris Lattner
993c897390 Teach the codegen about instructions used for SSE spill code, allowing it
to optimize cases where it has to spill a lot


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27801 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 16:44:51 +00:00
Nate Begeman
6baa2b7220 Fix a copy & paste error from long ago.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27800 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 16:03:18 +00:00
Chris Lattner
738bd3031c Add some more notes, many still missing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27799 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 06:32:08 +00:00