Commit Graph

24151 Commits

Author SHA1 Message Date
Chris Lattner 02b7e1128a Update a count, this test now passes.
llvm-svn: 27655
2006-04-13 16:52:13 +00:00
Chris Lattner 5879efe0c8 add a note, move an altivec todo to the altivec list.
llvm-svn: 27654
2006-04-13 16:48:00 +00:00
Andrew Lenharth 92cf71f6d7 linear -> constant time
llvm-svn: 27652
2006-04-13 13:43:31 +00:00
Reid Spencer 9857229aba Add the README files to the distribution.
llvm-svn: 27651
2006-04-13 06:39:24 +00:00
Reid Spencer 56fdf9ed40 Add missing things to the distribution.
llvm-svn: 27650
2006-04-13 06:27:20 +00:00
Reid Spencer 04896a7d71 Distribute the Stacker samples directory.
llvm-svn: 27648
2006-04-13 06:16:37 +00:00
Evan Cheng ed3996743f psad, pmax, pmin intrinsics.
llvm-svn: 27647
2006-04-13 06:11:45 +00:00
Evan Cheng 34c6a00813 pmin, pmax, and psad intrinsics.
llvm-svn: 27646
2006-04-13 06:09:41 +00:00
Evan Cheng 58dad55959 Various SSE2 packed integer intrinsics: pmulhuw, pavgw, etc.
llvm-svn: 27645
2006-04-13 05:24:54 +00:00
Evan Cheng e4f97ccf7f X86 SSE2 supports v8i16 multiplication
llvm-svn: 27644
2006-04-13 05:10:25 +00:00
Evan Cheng d2eb662415 Update
llvm-svn: 27643
2006-04-13 05:09:45 +00:00
Evan Cheng 3067453971 pmul*, pmadd*, and pavg* intrinsics.
llvm-svn: 27642
2006-04-13 05:09:06 +00:00
Chris Lattner 24c430c13a one too many l's
llvm-svn: 27641
2006-04-13 04:21:31 +00:00
Andrew Lenharth 01ba382a8f quick update
llvm-svn: 27640
2006-04-13 02:05:30 +00:00
Evan Cheng b3fe00bdc6 padds{b|w}, paddus{b|w}, psubs{b|w}, psubus{b|w} intrinsics.
llvm-svn: 27639
2006-04-13 00:43:35 +00:00
Evan Cheng 0aab735a1a Naming inconsistency.
llvm-svn: 27638
2006-04-13 00:00:23 +00:00
Evan Cheng c88afc36a9 SSE / SSE2 conversion intrinsics.
llvm-svn: 27637
2006-04-12 23:42:44 +00:00
Reid Spencer d76e0a835b Fix a typo in the name of a file.
llvm-svn: 27636
2006-04-12 23:15:10 +00:00
Tanya Lattner 27fba1761d Added the ability to xfail based on llvmgcc version
llvm-svn: 27635
2006-04-12 21:57:40 +00:00
Evan Cheng 33fe29ec84 Update my credits. Can I add "Build breaker" to my entry?
llvm-svn: 27634
2006-04-12 21:28:14 +00:00
Evan Cheng 92232307d0 All "integer" logical ops (pand, por, pxor) are now promoted to v2i64.
Clean up and fix various logical ops issues.

llvm-svn: 27633
2006-04-12 21:21:57 +00:00
Evan Cheng 119266ea92 Promote vector AND, OR, and XOR
llvm-svn: 27632
2006-04-12 21:20:24 +00:00
Reid Spencer 7579237536 Don't dump the llc assembly output to stdout.
llvm-svn: 27631
2006-04-12 21:03:04 +00:00
Reid Spencer 7c8fef2cd1 Make sure CVS versions of yacc and lex files get distributed.
llvm-svn: 27630
2006-04-12 20:57:05 +00:00
Reid Spencer 097122a246 Distribute CVS versions of lex files
llvm-svn: 27629
2006-04-12 20:56:12 +00:00
Reid Spencer d538792a85 Distribute the lex/yacc files from the cvs version.
llvm-svn: 27628
2006-04-12 20:55:23 +00:00
Reid Spencer 6a02282098 Additional files to distribute.
llvm-svn: 27627
2006-04-12 20:54:01 +00:00
Reid Spencer d3d5fc072e Include the win32 and Xcode directories in the distribution.
llvm-svn: 27626
2006-04-12 20:53:14 +00:00
Reid Spencer 13a1a7a4a6 Get rid of a signed/unsigned compare warning.
llvm-svn: 27625
2006-04-12 19:28:15 +00:00
Chris Lattner 147e50e1c5 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

llvm-svn: 27624
2006-04-12 19:07:14 +00:00
Reid Spencer dc830e07b7 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

llvm-svn: 27623
2006-04-12 19:06:14 +00:00
Chris Lattner 226eb56d2f new testcase
llvm-svn: 27622
2006-04-12 19:04:27 +00:00
Reid Spencer 78ede56ed0 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.

llvm-svn: 27621
2006-04-12 18:21:35 +00:00
Chris Lattner b19a5c661b 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.

llvm-svn: 27620
2006-04-12 18:09:35 +00:00
Tanya Lattner bd4a203208 Added llvmgcc version to allow tests to be xfailed by frontend version.
llvm-svn: 27619
2006-04-12 18:08:25 +00:00
Chris Lattner 2122424fc1 These casts should turn into gep instructions
llvm-svn: 27618
2006-04-12 18:07:41 +00:00
Reid Spencer 175d57c4bc Don't emit useless warning messages.
llvm-svn: 27617
2006-04-12 17:56:16 +00:00
Chris Lattner b1dc436a94 Update adding an intrinsic to describe that you can now just plop it into the
target .td file instead of adding SDNodes etc.

llvm-svn: 27616
2006-04-12 17:42:39 +00:00
Andrew Lenharth e45e71a912 make recovering running_Olden data easier when the nightly tester eats the graphs
llvm-svn: 27615
2006-04-12 17:41:19 +00:00
Chris Lattner 74cf9ff761 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

llvm-svn: 27614
2006-04-12 17:37:20 +00:00
Chris Lattner 21d74e7287 two equivalent vsplti*s in different types should be CSEd.
llvm-svn: 27613
2006-04-12 17:36:04 +00:00
Evan Cheng e2157c6e41 Promote v4i32, v8i16, v16i8 load to v2i64 load.
llvm-svn: 27612
2006-04-12 17:12:36 +00:00
Chris Lattner bd766cb681 Rename this file
llvm-svn: 27611
2006-04-12 17:01:11 +00:00
Chris Lattner ef18ab2bca Make this test more interesting by checking that the 0.0 used to implement vector fmul gets cse'd also.
llvm-svn: 27610
2006-04-12 16:57:39 +00:00
Chris Lattner e318a7574e Ensure that zero vectors are always v4i32, which forces them to CSE with
each other.  This implements CodeGen/PowerPC/vxor-canonicalize.ll

llvm-svn: 27609
2006-04-12 16:53:28 +00:00
Chris Lattner e4f274a291 new testcase
llvm-svn: 27608
2006-04-12 16:49:16 +00:00
Reid Spencer 1b8edd2f0c 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

llvm-svn: 27607
2006-04-12 16:44:15 +00:00
Evan Cheng be8a8933e6 Vector type promotion for ISD::LOAD and ISD::SELECT
llvm-svn: 27606
2006-04-12 16:33:18 +00:00
Chris Lattner 0574fca0e5 Provide a default impl of LowerArguments
llvm-svn: 27605
2006-04-12 16:21:12 +00:00
Chris Lattner d3b504ae10 Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload
llvm-svn: 27604
2006-04-12 16:20:43 +00:00