Commit Graph

24092 Commits

Author SHA1 Message Date
Evan Cheng
f99898453d X86 SSE2 supports v8i16 multiplication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27644 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 05:10:25 +00:00
Evan Cheng
fc7c17abb5 Update
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27643 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 05:09:45 +00:00
Evan Cheng
9df21dc0d2 pmul*, pmadd*, and pavg* intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27642 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 05:09:06 +00:00
Chris Lattner
7f71e21972 one too many l's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27641 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 04:21:31 +00:00
Andrew Lenharth
63223c93d8 quick update
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27640 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 02:05:30 +00:00
Evan Cheng
49ac1bf1c4 padds{b|w}, paddus{b|w}, psubs{b|w}, psubus{b|w} intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 00:43:35 +00:00
Evan Cheng
a50a086341 Naming inconsistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27638 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 00:00:23 +00:00
Evan Cheng
d2a6d54f26 SSE / SSE2 conversion intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27637 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 23:42:44 +00:00
Reid Spencer
42aa3a59c9 Fix a typo in the name of a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 23:15:10 +00:00
Tanya Lattner
9727555859 Added the ability to xfail based on llvmgcc version
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:57:40 +00:00
Evan Cheng
fc32dcbdda Update my credits. Can I add "Build breaker" to my entry?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27634 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:28:14 +00:00
Evan Cheng
2c3ae37213 All "integer" logical ops (pand, por, pxor) are now promoted to v2i64.
Clean up and fix various logical ops issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27633 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:21:57 +00:00
Evan Cheng
cc9876124e Promote vector AND, OR, and XOR
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27632 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:20:24 +00:00
Reid Spencer
67263ba611 Don't dump the llc assembly output to stdout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27631 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:03:04 +00:00
Reid Spencer
536c006249 Make sure CVS versions of yacc and lex files get distributed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 20:57:05 +00:00
Reid Spencer
59524a5287 Distribute CVS versions of lex files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27629 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 20:56:12 +00:00
Reid Spencer
898f44b06a Distribute the lex/yacc files from the cvs version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27628 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 20:55:23 +00:00
Reid Spencer
db4f336165 Additional files to distribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27627 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 20:54:01 +00:00
Reid Spencer
0c82def715 Include the win32 and Xcode directories in the distribution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27626 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 20:53:14 +00:00
Reid Spencer
ad2072643a Get rid of a signed/unsigned compare warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27625 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 19:28:15 +00:00
Chris Lattner
ac225ca051 Add a new way to match vector constants, which make it easier to bang bits of
different types.

Codegen spltw(0x7FFFFFFF) and spltw(0x80000000) without a constant pool load,
implementing PowerPC/vec_constants.ll:test1.  This compiles:

typedef float vf __attribute__ ((vector_size (16)));
typedef int vi __attribute__ ((vector_size (16)));
void test(vi *P1, vi *P2, vf *P3) {
  *P1 &= (vi){0x80000000,0x80000000,0x80000000,0x80000000};
  *P2 &= (vi){0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF};
  *P3 = vec_abs((vector float)*P3);
}

to:

_test:
        mfspr r2, 256
        oris r6, r2, 49152
        mtspr 256, r6
        vspltisw v0, -1
        vslw v0, v0, v0
        lvx v1, 0, r3
        vand v1, v1, v0
        stvx v1, 0, r3
        lvx v1, 0, r4
        vandc v1, v1, v0
        stvx v1, 0, r4
        lvx v1, 0, r5
        vandc v0, v1, v0
        stvx v0, 0, r5
        mtspr 256, r2
        blr

instead of (with two constant pool entries):

_test:
        mfspr r2, 256
        oris r6, r2, 49152
        mtspr 256, r6
        li r6, lo16(LCPI1_0)
        lis r7, ha16(LCPI1_0)
        li r8, lo16(LCPI1_1)
        lis r9, ha16(LCPI1_1)
        lvx v0, r7, r6
        lvx v1, 0, r3
        vand v0, v1, v0
        stvx v0, 0, r3
        lvx v0, r9, r8
        lvx v1, 0, r4
        vand v1, v1, v0
        stvx v1, 0, r4
        lvx v1, 0, r5
        vand v0, v1, v0
        stvx v0, 0, r5
        mtspr 256, r2
        blr

GCC produces (with 2 cp entries):

_test:
        mfspr r0,256
        stw r0,-4(r1)
        oris r0,r0,0xc00c
        mtspr 256,r0
        lis r2,ha16(LC0)
        lis r9,ha16(LC1)
        la r2,lo16(LC0)(r2)
        lvx v0,0,r3
        lvx v1,0,r5
        la r9,lo16(LC1)(r9)
        lwz r12,-4(r1)
        lvx v12,0,r2
        lvx v13,0,r9
        vand v0,v0,v12
        stvx v0,0,r3
        vspltisw v0,-1
        vslw v12,v0,v0
        vandc v1,v1,v12
        stvx v1,0,r5
        lvx v0,0,r4
        vand v0,v0,v13
        stvx v0,0,r4
        mtspr 256,r12
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27624 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 19:07:14 +00:00
Reid Spencer
d853fd6b6d Add the llvm-config directory to the EXTRA_DIST line so it gets distributed
even though its not being built currently. This prevents dist-check from
failing because configure can't find llvm-config.in.in


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27623 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 19:06:14 +00:00
Chris Lattner
324047847e new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27622 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 19:04:27 +00:00
Reid Spencer
bbd5e430f1 Make sure that the C Frontend's runtime library directory is included as
a -L option to gccld whenever we're building a bytecode module or archive.
This gets around the "Cannot find library 'crtend'" warning messages.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27621 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 18:21:35 +00:00
Chris Lattner
9fb9213083 Turn casts into getelementptr's when possible. This enables SROA to be more
aggressive in some cases where LLVMGCC 4 is inserting casts for no reason.

This implements InstCombine/cast.ll:test27/28.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27620 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 18:09:35 +00:00
Tanya Lattner
1c62195c98 Added llvmgcc version to allow tests to be xfailed by frontend version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27619 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 18:08:25 +00:00
Chris Lattner
23405aa73d These casts should turn into gep instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27618 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 18:07:41 +00:00
Reid Spencer
403d43a1a9 Don't emit useless warning messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27617 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:56:16 +00:00
Chris Lattner
35dd5b0f58 Update adding an intrinsic to describe that you can now just plop it into the
target .td file instead of adding SDNodes etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27616 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:42:39 +00:00
Andrew Lenharth
65c1e46ebd make recovering running_Olden data easier when the nightly tester eats the graphs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27615 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:41:19 +00:00
Chris Lattner
e87192a854 Rename get_VSPLI_elt -> get_VSPLTI_elt
Canonicalize BUILD_VECTOR's that match VSPLTI's into a single type for each
form, eliminating a bunch of Pat patterns in the .td file and allowing us to
CSE stuff more aggressively.  This implements
PowerPC/buildvec_canonicalize.ll:VSPLTI


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27614 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:37:20 +00:00
Chris Lattner
fd4297fa0f two equivalent vsplti*s in different types should be CSEd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27613 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:36:04 +00:00
Evan Cheng
91b740da12 Promote v4i32, v8i16, v16i8 load to v2i64 load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27612 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:12:36 +00:00
Chris Lattner
c010c13f36 Rename this file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27611 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 17:01:11 +00:00
Chris Lattner
88d3c24196 Make this test more interesting by checking that the 0.0 used to implement vector fmul gets cse'd also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27610 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:57:39 +00:00
Chris Lattner
2b1c3258d6 Ensure that zero vectors are always v4i32, which forces them to CSE with
each other.  This implements CodeGen/PowerPC/vxor-canonicalize.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27609 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:53:28 +00:00
Chris Lattner
8e7401e52f new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27608 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:49:16 +00:00
Reid Spencer
ace44dbbab Make sure both member variables are initialized in the default constructor
for SDOperand. This gets rid of numerous warnings in lib/CodeGen and
lib/Target when compiled with GCC 4.0.2


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27607 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:44:15 +00:00
Evan Cheng
41f6cbbeb2 Vector type promotion for ISD::LOAD and ISD::SELECT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27606 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:33:18 +00:00
Chris Lattner
b878151b1e Provide a default impl of LowerArguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27605 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:21:12 +00:00
Chris Lattner
fdfded5588 Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27604 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 16:20:43 +00:00
Evan Cheng
d03db7a36c Various SSE2 conversion intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27603 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 05:20:24 +00:00
Chris Lattner
9d956250f5 Don't memoize vloads in the load map! Don't memoize them anywhere here, let
getNode do it.  This fixes CodeGen/Generic/2006-04-11-vecload.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27602 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 03:25:41 +00:00
Chris Lattner
3678dbf69d new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27601 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 03:24:46 +00:00
Reid Spencer
5ff0dc790c Remove extraneous building in target dist-check. There is no reason that
a distribution should need to be able to make a distribution so eliminate
the "make dist" from the list of targets attempted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27600 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 03:07:02 +00:00
Evan Cheng
397edeff50 Added __builtin_ia32_storelv4si, __builtin_ia32_movqv4si,
__builtin_ia32_loadlv4si, __builtin_ia32_loaddqu, __builtin_ia32_storedqu.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27599 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-11 22:28:25 +00:00
Reid Spencer
852239c20a Don't overload anchor names, silly browser's can't handle it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27598 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-11 22:02:18 +00:00
Reid Spencer
2425e4c4c9 Add the contents of my email about distribution targets as a new section.
Attribute John as an author.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27597 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-11 21:59:37 +00:00
Chris Lattner
681ee1c1c3 new dag node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27596 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-11 21:30:42 +00:00
John Criswell
fe48c80bf7 First pass over Reid's document.
Changed the order of operations so that more of the fine tuning is
performed in the release branch.  This should free up mainline sooner to
resume development.
Removed information on the special release Makefile targets as I've never
used them for a release; Tanya is investigating their integration, and they
can be re-added if she uses them.
Added an outline for building the LLVM GCC binary distributions.  I will
be filling that section out later (but before the 1.7 release).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27595 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-11 20:24:28 +00:00