oota-llvm.git
18 years agoThis may be overconservative, but it lets the new cfe compile
Andrew Lenharth [Thu, 6 Apr 2006 23:18:45 +0000 (23:18 +0000)]
This may be overconservative, but it lets the new cfe compile

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27471 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd an item
Chris Lattner [Thu, 6 Apr 2006 23:16:19 +0000 (23:16 +0000)]
Add an item

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27470 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure to return the result in the right type.
Chris Lattner [Thu, 6 Apr 2006 23:12:19 +0000 (23:12 +0000)]
Make sure to return the result in the right type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27469 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMove this to lib/Analysis.
Andrew Lenharth [Thu, 6 Apr 2006 22:58:58 +0000 (22:58 +0000)]
Move this to lib/Analysis.
This reduces Core size, yay.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27468 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMatch vpku[hw]um(x,x).
Chris Lattner [Thu, 6 Apr 2006 22:28:36 +0000 (22:28 +0000)]
Match vpku[hw]um(x,x).
Convert vsldoi(x,x) to work the same way other (x,x) cases work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27467 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd testcases for vpku[hw]um(x,x)
Chris Lattner [Thu, 6 Apr 2006 22:27:59 +0000 (22:27 +0000)]
Add testcases for vpku[hw]um(x,x)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27466 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd the variable llvmgccmajvers to the site.exp file. This will contain
Reid Spencer [Thu, 6 Apr 2006 22:22:08 +0000 (22:22 +0000)]
Add the variable llvmgccmajvers to the site.exp file. This will contain
the major version number of llvm-gcc, as configured.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27465 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAvoid building the runtime libraries if llvm-gcc version 4 is detected.
Reid Spencer [Thu, 6 Apr 2006 22:15:51 +0000 (22:15 +0000)]
Avoid building the runtime libraries if llvm-gcc version 4 is detected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27464 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support for matching vmrg(x,x) patterns
Chris Lattner [Thu, 6 Apr 2006 22:02:42 +0000 (22:02 +0000)]
Add support for matching vmrg(x,x) patterns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27463 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd vmrg(x,x) tests
Chris Lattner [Thu, 6 Apr 2006 22:02:11 +0000 (22:02 +0000)]
Add vmrg(x,x) tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27462 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor support of new GCC v4, obtain the full and major versions of the
Reid Spencer [Thu, 6 Apr 2006 22:00:36 +0000 (22:00 +0000)]
For support of new GCC v4, obtain the full and major versions of the
llvm-gcc command. This will help distinguish which version is being used
so the makefiles can accommodate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27461 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix some linking problems with the new gcc
Andrew Lenharth [Thu, 6 Apr 2006 21:26:32 +0000 (21:26 +0000)]
fix some linking problems with the new gcc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27460 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd tests for vmrg[hl]*
Chris Lattner [Thu, 6 Apr 2006 21:19:37 +0000 (21:19 +0000)]
Add tests for vmrg[hl]*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27459 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoThese intrinsics are now lowered by the FE.
Chris Lattner [Thu, 6 Apr 2006 21:12:48 +0000 (21:12 +0000)]
These intrinsics are now lowered by the FE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27458 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPattern match vmrg* instructions, which are now lowered by the CFE into shuffles.
Chris Lattner [Thu, 6 Apr 2006 21:11:54 +0000 (21:11 +0000)]
Pattern match vmrg* instructions, which are now lowered by the CFE into shuffles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27457 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoInfer element types for shuffle masks
Chris Lattner [Thu, 6 Apr 2006 20:36:51 +0000 (20:36 +0000)]
Infer element types for shuffle masks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27456 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorename a method, to avoid confusion with llvm intrinsics.
Chris Lattner [Thu, 6 Apr 2006 20:19:52 +0000 (20:19 +0000)]
rename a method, to avoid confusion with llvm intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27455 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agotest vperm promotion
Chris Lattner [Thu, 6 Apr 2006 19:21:02 +0000 (19:21 +0000)]
test vperm promotion

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27454 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove two done items
Chris Lattner [Thu, 6 Apr 2006 19:19:38 +0000 (19:19 +0000)]
remove two done items

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27453 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoLower vperm(x,y, mask) -> shuffle(x,y,mask) if mask is constant. This allows
Chris Lattner [Thu, 6 Apr 2006 19:19:17 +0000 (19:19 +0000)]
Lower vperm(x,y, mask) -> shuffle(x,y,mask) if mask is constant.  This allows
us to compile oh-so-realistic stuff like this:

 vec_vperm(A, B, (vector unsigned char){14});

to:
        vspltb v0, v0, 14

instead of:

        vspltisb v0, 14
        vperm v0, v2, v1, v0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27452 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agothis is no longer an intrinsic.
Chris Lattner [Thu, 6 Apr 2006 18:29:17 +0000 (18:29 +0000)]
this is no longer an intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27451 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSupport pattern matching vsldoi(x,y) and vsldoi(x,x), which allows the f.e. to
Chris Lattner [Thu, 6 Apr 2006 18:26:28 +0000 (18:26 +0000)]
Support pattern matching vsldoi(x,y) and vsldoi(x,x), which allows the f.e. to
lower it and LLVM to have one fewer intrinsic.  This implements
CodeGen/PowerPC/vec_shuffle.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27450 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew testcase
Chris Lattner [Thu, 6 Apr 2006 18:26:13 +0000 (18:26 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27449 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoCompile the vpkuhum/vpkuwum intrinsics into vpkuhum/vpkuwum instead of into
Chris Lattner [Thu, 6 Apr 2006 17:23:16 +0000 (17:23 +0000)]
Compile the vpkuhum/vpkuwum intrinsics into vpkuhum/vpkuwum instead of into
vperm with a perm mask lvx'd from the constant pool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27448 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support for building the LLVM libraries and tools as a Mac OS/X
Chris Lattner [Thu, 6 Apr 2006 06:30:15 +0000 (06:30 +0000)]
Add support for building the LLVM libraries and tools as a Mac OS/X
universal binary, by specifying UNIVERSAL=1 on the make command line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27447 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPOR encoded as PAND, yikes.
Evan Cheng [Thu, 6 Apr 2006 01:49:20 +0000 (01:49 +0000)]
POR encoded as PAND, yikes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27446 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAn entry about comi / ucomi intrinsics.
Evan Cheng [Wed, 5 Apr 2006 23:46:04 +0000 (23:46 +0000)]
An entry about comi / ucomi intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27445 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSupport for comi / ucomi intrinsics.
Evan Cheng [Wed, 5 Apr 2006 23:38:46 +0000 (23:38 +0000)]
Support for comi / ucomi intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27444 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded comi and ucomi SSE intrinsics.
Evan Cheng [Wed, 5 Apr 2006 23:37:18 +0000 (23:37 +0000)]
Added comi and ucomi SSE intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27443 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd all of the data stream intrinsics and instructions. woo
Chris Lattner [Wed, 5 Apr 2006 22:27:14 +0000 (22:27 +0000)]
Add all of the data stream intrinsics and instructions.  woo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27442 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd altivec ds* intrinsics
Chris Lattner [Wed, 5 Apr 2006 22:18:01 +0000 (22:18 +0000)]
add altivec ds* intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27441 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a typo
Chris Lattner [Wed, 5 Apr 2006 20:15:25 +0000 (20:15 +0000)]
Fix a typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27440 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix CodeGen/PowerPC/2006-04-05-splat-ish.ll
Chris Lattner [Wed, 5 Apr 2006 17:39:25 +0000 (17:39 +0000)]
Fix CodeGen/PowerPC/2006-04-05-splat-ish.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27439 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew testcase that was miscompiled to vspltisb
Chris Lattner [Wed, 5 Apr 2006 17:38:50 +0000 (17:38 +0000)]
new testcase that was miscompiled to vspltisb

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27438 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoHandle canonical form of e.g.
Evan Cheng [Wed, 5 Apr 2006 07:20:06 +0000 (07:20 +0000)]
Handle canonical form of e.g.
vector_shuffle v1, v1, <0, 4, 1, 5, 2, 6, 3, 7>

This is turned into
vector_shuffle v1, <undef>, <0, 0, 1, 1, 2, 2, 3, 3>
by dag combiner.

It would match a {p}unpckl on x86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27437 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake a vector live across blocks have the correct Vec type. This fixes
Chris Lattner [Wed, 5 Apr 2006 06:54:42 +0000 (06:54 +0000)]
Make a vector live across blocks have the correct Vec type.  This fixes
CodeGen/X86/2006-04-04-CrossBlockCrash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27436 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew testcase
Chris Lattner [Wed, 5 Apr 2006 06:54:14 +0000 (06:54 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27435 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoBogus assert
Evan Cheng [Wed, 5 Apr 2006 06:11:20 +0000 (06:11 +0000)]
Bogus assert

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27434 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFallthrough to expand if a VECTOR_SHUFFLE cannot be custom lowered.
Evan Cheng [Wed, 5 Apr 2006 06:09:26 +0000 (06:09 +0000)]
Fallthrough to expand if a VECTOR_SHUFFLE cannot be custom lowered.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27433 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoExapnd a VECTOR_SHUFFLE to a BUILD_VECTOR if target asks for it to be expanded
Evan Cheng [Wed, 5 Apr 2006 06:07:11 +0000 (06:07 +0000)]
Exapnd a VECTOR_SHUFFLE to a BUILD_VECTOR if target asks for it to be expanded
or custom lowering fails.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27432 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix more tablegen depedency issues in Visual Studio.
Jeff Cohen [Wed, 5 Apr 2006 05:19:18 +0000 (05:19 +0000)]
Fix more tablegen depedency issues in Visual Studio.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27431 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSeparate out to 2 test cases
Evan Cheng [Wed, 5 Apr 2006 04:40:55 +0000 (04:40 +0000)]
Separate out to 2 test cases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27430 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomake this test less exacting
Andrew Lenharth [Wed, 5 Apr 2006 03:31:45 +0000 (03:31 +0000)]
make this test less exacting

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27429 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorevert this, this is safe, if conservative. leave a note to that effect
Andrew Lenharth [Wed, 5 Apr 2006 02:42:36 +0000 (02:42 +0000)]
revert this, this is safe, if conservative.  leave a note to that effect

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27428 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoHandle v8i16 shuffle that must be broken into a pair of pshufhw / pshuflw.
Evan Cheng [Wed, 5 Apr 2006 01:47:37 +0000 (01:47 +0000)]
Handle v8i16 shuffle that must be broken into a pair of pshufhw / pshuflw.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27427 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a new shuffle test case that requires pshuflw / pshufhw pair.
Evan Cheng [Wed, 5 Apr 2006 01:44:57 +0000 (01:44 +0000)]
Add a new shuffle test case that requires pshuflw / pshufhw pair.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27426 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd vsl
Chris Lattner [Wed, 5 Apr 2006 01:16:22 +0000 (01:16 +0000)]
add vsl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27425 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoGet the types right, third time is the charm. Add vsl.
Chris Lattner [Wed, 5 Apr 2006 01:15:54 +0000 (01:15 +0000)]
Get the types right, third time is the charm.  Add vsl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27424 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd vmladduhm
Chris Lattner [Wed, 5 Apr 2006 00:49:48 +0000 (00:49 +0000)]
add vmladduhm

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27423 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agocorrect the type of two intrinsics, add int_ppc_altivec_vmladduhm
Chris Lattner [Wed, 5 Apr 2006 00:49:14 +0000 (00:49 +0000)]
correct the type of two intrinsics, add int_ppc_altivec_vmladduhm

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27422 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd m[tf]vscr instructions.
Chris Lattner [Wed, 5 Apr 2006 00:03:57 +0000 (00:03 +0000)]
Add m[tf]vscr instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27421 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd m[tf]vscr intrinsics.
Chris Lattner [Wed, 5 Apr 2006 00:03:03 +0000 (00:03 +0000)]
Add m[tf]vscr intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27420 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a note
Chris Lattner [Tue, 4 Apr 2006 23:45:11 +0000 (23:45 +0000)]
add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27419 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd missing byte merges.
Chris Lattner [Tue, 4 Apr 2006 23:43:56 +0000 (23:43 +0000)]
Add missing byte merges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27418 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd FP -> Int Conversions
Chris Lattner [Tue, 4 Apr 2006 23:25:02 +0000 (23:25 +0000)]
Add FP -> Int Conversions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27417 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd average intrinsics
Chris Lattner [Tue, 4 Apr 2006 23:14:00 +0000 (23:14 +0000)]
add average intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27416 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd average intrinsics.
Chris Lattner [Tue, 4 Apr 2006 23:13:21 +0000 (23:13 +0000)]
add average intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27415 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a note
Chris Lattner [Tue, 4 Apr 2006 22:43:55 +0000 (22:43 +0000)]
add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27414 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix some broken logic that would cause us to codegen {2147483647,2147483647,214748364...
Chris Lattner [Tue, 4 Apr 2006 22:28:35 +0000 (22:28 +0000)]
Fix some broken logic that would cause us to codegen {2147483647,2147483647,2147483647,2147483647} as 'vspltisb v0, -1'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27413 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded pslldq and psrldq.
Evan Cheng [Tue, 4 Apr 2006 21:49:39 +0000 (21:49 +0000)]
Added pslldq and psrldq.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27412 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded intrinsics to match __builtin_ia32_pslldqi128 and
Evan Cheng [Tue, 4 Apr 2006 21:48:31 +0000 (21:48 +0000)]
Added intrinsics to match __builtin_ia32_pslldqi128 and
__builtin_ia32_psrldqi128.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27411 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMinor fixes + naming changes.
Evan Cheng [Tue, 4 Apr 2006 19:12:30 +0000 (19:12 +0000)]
Minor fixes + naming changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27410 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoHow could this ever have worked?
Chris Lattner [Tue, 4 Apr 2006 19:05:42 +0000 (19:05 +0000)]
How could this ever have worked?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27409 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPSHUF* encoding bugs.
Evan Cheng [Tue, 4 Apr 2006 18:40:36 +0000 (18:40 +0000)]
PSHUF* encoding bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27405 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure to consider alignment of variable sized objects.
Chris Lattner [Tue, 4 Apr 2006 17:39:56 +0000 (17:39 +0000)]
Make sure to consider alignment of variable sized objects.
This, along with the previous dag combiner fix, fixes
CodeGen/Alpha/2006-04-04-zextload.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27403 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDo not create ZEXTLOAD's unless we are before legalize or the operation is
Chris Lattner [Tue, 4 Apr 2006 17:39:18 +0000 (17:39 +0000)]
Do not create ZEXTLOAD's unless we are before legalize or the operation is
legal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27402 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoNew testcase
Chris Lattner [Tue, 4 Apr 2006 17:38:31 +0000 (17:38 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27401 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAsk legalize to promote all vector shuffles to be v16i8 instead of having to
Chris Lattner [Tue, 4 Apr 2006 17:25:31 +0000 (17:25 +0000)]
Ask legalize to promote all vector shuffles to be v16i8 instead of having to
handle all 4 PPC vector types.   This simplifies the matching code and allows
us to eliminate a bunch of patterns.  This also adds cases we were missing,
such as CodeGen/PowerPC/vec_splat.ll:splat_h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27400 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago* Add supprot for SCALAR_TO_VECTOR operations where the input needs to be
Chris Lattner [Tue, 4 Apr 2006 17:23:26 +0000 (17:23 +0000)]
* Add supprot for SCALAR_TO_VECTOR operations where the input needs to be
  promoted/expanded (e.g. SCALAR_TO_VECTOR from i8/i16 on PPC).
* Add support for targets to request that VECTOR_SHUFFLE nodes be promoted
  to a canonical type, for example, we only want v16i8 shuffles on PPC.
* Move isShuffleLegal out of TLI into Legalize.
* Teach isShuffleLegal to allow shuffles that need to be promoted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27399 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMove isShuffleLegal from TLI to Legalize.
Chris Lattner [Tue, 4 Apr 2006 17:21:22 +0000 (17:21 +0000)]
Move isShuffleLegal from TLI to Legalize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27398 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew testcase
Chris Lattner [Tue, 4 Apr 2006 17:20:45 +0000 (17:20 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27397 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSigned shr by a constant is not the same as sdiv by 2^k
Chris Lattner [Tue, 4 Apr 2006 06:11:42 +0000 (06:11 +0000)]
Signed shr by a constant is not the same as sdiv by 2^k

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27395 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agocmpps / cmppd encoding bug
Evan Cheng [Tue, 4 Apr 2006 03:04:07 +0000 (03:04 +0000)]
cmpps / cmppd encoding bug

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27393 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix the types for these intrinsics.
Chris Lattner [Tue, 4 Apr 2006 01:40:06 +0000 (01:40 +0000)]
Fix the types for these intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27392 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoConstant fold bitconvert(undef)
Chris Lattner [Tue, 4 Apr 2006 01:02:22 +0000 (01:02 +0000)]
Constant fold bitconvert(undef)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27391 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAllow targets to have fine grained control over which types various ops get
Chris Lattner [Tue, 4 Apr 2006 00:25:10 +0000 (00:25 +0000)]
Allow targets to have fine grained control over which types various ops get
promoted to, if they desire.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27389 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoCompact some intrinsic definitions.
Evan Cheng [Tue, 4 Apr 2006 00:10:53 +0000 (00:10 +0000)]
Compact some intrinsic definitions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27388 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPlug in the byte and short splats
Chris Lattner [Tue, 4 Apr 2006 00:05:13 +0000 (00:05 +0000)]
Plug in the byte and short splats

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27387 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRevert accidentally committed hunks.
Chris Lattner [Mon, 3 Apr 2006 23:58:04 +0000 (23:58 +0000)]
Revert accidentally committed hunks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27386 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure to mark unsupported SCALAR_TO_VECTOR operations as expand.
Chris Lattner [Mon, 3 Apr 2006 23:55:43 +0000 (23:55 +0000)]
Make sure to mark unsupported SCALAR_TO_VECTOR operations as expand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27385 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSome SSE1 intrinsics: min, max, sqrt, etc.
Evan Cheng [Mon, 3 Apr 2006 23:49:17 +0000 (23:49 +0000)]
Some SSE1 intrinsics: min, max, sqrt, etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27384 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorevert previous patch
Chris Lattner [Mon, 3 Apr 2006 23:14:49 +0000 (23:14 +0000)]
revert previous patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27383 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse movlpd to: store lower f64 extracted from v2f64.
Evan Cheng [Mon, 3 Apr 2006 22:30:54 +0000 (22:30 +0000)]
Use movlpd to: store lower f64 extracted from v2f64.
Use movhpd to: store upper f64 extracted from v2f64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27382 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoForce use of a frame-pointer if there is anything on the stack that is aligned
Chris Lattner [Mon, 3 Apr 2006 22:03:29 +0000 (22:03 +0000)]
Force use of a frame-pointer if there is anything on the stack that is aligned
more than the OS keeps the stack aligned.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27381 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoThe stack alignment is now computed dynamically, just verify it is correct.
Chris Lattner [Mon, 3 Apr 2006 21:39:57 +0000 (21:39 +0000)]
The stack alignment is now computed dynamically, just verify it is correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27380 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove unused method
Chris Lattner [Mon, 3 Apr 2006 21:39:03 +0000 (21:39 +0000)]
Remove unused method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27379 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoKeep track of max stack alignment as objects are added. Remove an obsolete method.
Chris Lattner [Mon, 3 Apr 2006 21:38:39 +0000 (21:38 +0000)]
Keep track of max stack alignment as objects are added.  Remove an obsolete method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27378 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago- More efficient extract_vector_elt with shuffle and movss, movsd, movd, etc.
Evan Cheng [Mon, 3 Apr 2006 20:53:28 +0000 (20:53 +0000)]
- More efficient extract_vector_elt with shuffle and movss, movsd, movd, etc.
- Some bug fixes and naming inconsistency fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27377 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAlign vectors to the size in bytes, not bits.
Chris Lattner [Mon, 3 Apr 2006 19:28:50 +0000 (19:28 +0000)]
Align vectors to the size in bytes, not bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27376 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a missing check, this fixes UnitTests/Vector/sumarray.c
Chris Lattner [Mon, 3 Apr 2006 17:29:28 +0000 (17:29 +0000)]
Add a missing check, this fixes UnitTests/Vector/sumarray.c

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27375 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a missing check, which broke a bunch of vector tests.
Chris Lattner [Mon, 3 Apr 2006 17:21:50 +0000 (17:21 +0000)]
Add a missing check, which broke a bunch of vector tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27374 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoshrinkify intrinsics more by using some local classes
Chris Lattner [Mon, 3 Apr 2006 17:20:06 +0000 (17:20 +0000)]
shrinkify intrinsics more by using some local classes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27373 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd the full set of min/max instructions
Chris Lattner [Mon, 3 Apr 2006 15:58:28 +0000 (15:58 +0000)]
Add the full set of min/max instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27372 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd some classes to make it easier to define intrinsics. Add min/max intrinsics.
Chris Lattner [Mon, 3 Apr 2006 15:43:07 +0000 (15:43 +0000)]
Add some classes to make it easier to define intrinsics.  Add min/max intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27371 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosupport x * (c1 + c2) where c1 and c2 are pow2s. special case for c2 == 4
Andrew Lenharth [Mon, 3 Apr 2006 04:19:17 +0000 (04:19 +0000)]
support x * (c1 + c2) where c1 and c2 are pow2s.  special case for c2 == 4

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27370 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agotest powers of 2
Andrew Lenharth [Mon, 3 Apr 2006 04:14:39 +0000 (04:14 +0000)]
test powers of 2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27369 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomul by const conversion sequences. more coming soon
Andrew Lenharth [Mon, 3 Apr 2006 03:18:59 +0000 (03:18 +0000)]
mul by const conversion sequences.  more coming soon

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27368 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoback this out
Andrew Lenharth [Mon, 3 Apr 2006 03:16:50 +0000 (03:16 +0000)]
back this out

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27367 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agotest some more mul by constant removal
Andrew Lenharth [Mon, 3 Apr 2006 03:16:09 +0000 (03:16 +0000)]
test some more mul by constant removal

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27366 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure mul by constant 5 is turned into a s4addq
Andrew Lenharth [Sun, 2 Apr 2006 21:47:07 +0000 (21:47 +0000)]
Make sure mul by constant 5 is turned into a s4addq

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27365 91177308-0d34-0410-b5e6-96231b3b80d8