Commit Graph

24303 Commits

Author SHA1 Message Date
Evan Cheng
39fc145995 Do not use movs{h|l}dup for a shuffle with a single non-undef node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27718 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-15 03:13:24 +00:00
Chris Lattner
efb47359ff significant cleanups to code that uses insert/extractelt heavily. This builds
maximal shuffles out of them where possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27717 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-15 01:39:45 +00:00
Evan Cheng
407428e1ea Added SSE (and other) entries to foldMemoryOperand().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27716 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 23:33:27 +00:00
Evan Cheng
9ab1ac5e99 Some clean up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27715 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 23:32:40 +00:00
Chris Lattner
b097aa9353 Allow undef in a shuffle mask
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27714 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 23:19:08 +00:00
Chris Lattner
f95670f6fc Move these ctors out of line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27713 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 22:20:32 +00:00
Chris Lattner
6a56ed48b9 These instructions always return a packed vector. Improve the class definitions to expose this fact.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27712 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 22:20:07 +00:00
Evan Cheng
d953947d26 Last few SSE3 intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27711 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 21:59:03 +00:00
Chris Lattner
de6df88529 Teach scalarrepl to promote unions of vectors and floats, producing
insert/extractelement operations.  This implements
Transforms/ScalarRepl/vector_promote.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27710 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 21:42:41 +00:00
Chris Lattner
d8f5bd3988 New testcase, checking to see we can turn this code:
void test(vector float *F, float f) {
  vector float G = *F + *F;
  *((float*)&G) = f;
  *F = G + G;
}

void test2(vector float *F, float f) {
  vector float G = *F + *F;
  ((float*)&G)[2] = f;
  *F = G + G;
}

void test3(vector float *F, float *f) {
  vector float G = *F + *F;
  *f = ((float*)&G)[2];
}

void test4(vector float *F, float *f) {
  vector float G = *F + *F;
  *f = *((float*)&G);
}

into insert/extract element operations with no memory traffic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27709 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 21:41:54 +00:00
Tanya Lattner
0947429538 Adding back vector instructions to keep in mainline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27704 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 19:24:33 +00:00
Tanya Lattner
36ba6d4d53 Removing unimplemented vector instructions from language referrence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27703 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 19:07:42 +00:00
Reid Spencer
be5e85e9d3 Correct the Superclasses list for GlobalVariable and Function to indicate
that they are "Constant" as they derive from GlobalValue. Also, fix some of
the wording where it mentions this.
Patch inspired by Nai Xia.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27701 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 14:11:48 +00:00
Reid Spencer
43fdfdcfd1 Allow an option, -with-externals, to be specified that provides the location
of the external tests. This turns into --with-externals option to configure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27700 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 13:53:56 +00:00
Evan Cheng
f3e1b1d716 Misc. SSE2 intrinsics: clflush, lfench, mfence
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27699 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 07:43:12 +00:00
Evan Cheng
d9245ca1a1 We were not adjusting the frame size to ensure proper alignment when alloca /
vla are present in the function. This causes a crash when a leaf function
allocates space on the stack used to store / load with 128-bit SSE
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27698 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 07:26:43 +00:00
Evan Cheng
4f51d850da New entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27697 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 07:24:04 +00:00
Reid Spencer
e25fdafef9 Don't print out the install command for Intrinsics.gen unless VERBOSE mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27696 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 06:32:31 +00:00
Chris Lattner
3824e50b1e Make this assertion better
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27695 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 06:08:35 +00:00
Chris Lattner
619b2d23c9 Force a specific config, because this test fails in certain configs otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27694 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 06:06:51 +00:00
Chris Lattner
1a635d617a Move the rest of the PPCTargetLowering::LowerOperation cases out into
separate functions, for simplicity and code clarity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27693 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 06:01:58 +00:00
Chris Lattner
f1b4708950 Pull the VECTOR_SHUFFLE and BUILD_VECTOR lowering code out into separate
functions, which makes the code much cleaner :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27692 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 05:19:18 +00:00
Chris Lattner
0fa07f95b6 Implement value #'ing for vector operations, implementing
Regression/Transforms/GCSE/vectorops.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27691 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 05:10:20 +00:00
Chris Lattner
b04d993d72 new testcase, vector operations should be CSE'd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27690 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 05:09:53 +00:00
Chris Lattner
b04f706044 Remove this test, there is no need to test GCC's bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27689 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 04:47:26 +00:00
Reid Spencer
57d37252b9 Ahem. HEAD -> 1.8cvs not 1.7 (I'm an idiot).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27687 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 03:01:27 +00:00
Reid Spencer
0667f6f327 remove the "cvs" part of the version number for the release branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27686 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 02:55:43 +00:00
Evan Cheng
bb5c43e73d pcmpeq* and pcmpgt* intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27685 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 01:39:53 +00:00
Evan Cheng
0ac8ea9a4f psll*, psrl*, and psra* intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27684 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 00:14:05 +00:00
Reid Spencer
7a1006c3f8 Remove the .cvsignore file so this directory can be pruned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27683 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 22:00:10 +00:00
Reid Spencer
7095ec1792 Remove .cvsignore so that this directory can be pruned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27682 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 21:59:03 +00:00
Chris Lattner
a7143ce29d My addition of the xfail marker threw off the line #. move it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27678 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 21:19:13 +00:00
Reid Spencer
db4264fee1 Use quotes properly so that the possibility of a null variable set is
eliminated. This can happen, for example, if LLVM is configured without
llvm-gcc in which case things like LLVMGCC_VERSION will be empty. In
such cases, deja-gnu fails with:
can't read "llvmgcc_version": no such variable
because it sees:
set llvmgcc_version
instead of:
set llvmgcc_version ""


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27676 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 20:33:59 +00:00
Andrew Lenharth
8cfc9c4a53 from the linux kernel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27674 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 19:50:07 +00:00
Chris Lattner
d8c93163dd Fix this regex to match what llvmgcc4 produces also
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27673 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 19:46:16 +00:00
Andrew Lenharth
99c1942ba7 Handle some kernel code than ends in [0 x sbyte]. I think this is safe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27672 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 19:31:49 +00:00
Reid Spencer
60d07eeffe Expand some code with temporary variables to rid ourselves of the warning
about "dereferencing type-punned pointer will break strict-aliasing rules"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27671 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 18:29:58 +00:00
Chris Lattner
463b4e5f4c Fix an incorrect prototype for this intrinsic, fixing
CFrontend/2003-08-18-SigSetJmp.c  with llvm-gcc3.  This is part of PR733.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27670 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 18:23:48 +00:00
Chris Lattner
3afb81e8f3 Try xfailing this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27669 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 18:15:24 +00:00
Evan Cheng
2b21ac6d4c Doh. PANDrm, etc. are not commutable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27668 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 18:11:28 +00:00
Andrew Lenharth
ab04e8c5ee fix this for the more restrictive linkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27667 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:52:32 +00:00
Chris Lattner
c74757eabb These tests are now xfailed for llvmgcc4. This is PR735, unlikely to be
resolved before 1.7 :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27666 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:35:36 +00:00
Chris Lattner
021696bd7f Only look at .ll files in this directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27665 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:32:53 +00:00
Chris Lattner
5be639eb18 This file is an invalid C file, test that it is properly rejected
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27664 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:32:03 +00:00
Chris Lattner
4d4f52221b Another case where a dead cast was causing the test to spuriously
fail with the new front-end.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27663 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:28:28 +00:00
Chris Lattner
412a0bf58d Don't get confused by dead casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27662 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:26:54 +00:00
Chris Lattner
d9498ebcc3 Fix an accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27661 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:21:49 +00:00
Chris Lattner
d8200069fa This test fails and I don't know why, xfail it until andrew gets a chance to
look at it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27660 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:19:34 +00:00
Chris Lattner
166effdc23 Oops, move misplaced test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27659 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:18:42 +00:00
Chris Lattner
e7997ad085 These are only XFAILs with llvmgcc3, they pass with llvmgcc4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27658 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 17:16:21 +00:00